|
Hello Christian,
Let me see if I understand this fully. It is possible to use hooking in order to get into 3rd party software applications but the result 100% happy ending.
I have also realized that there are TWO approaches for hooking:
1-API's hooking
2-kernel hooking
Will I be correct to say either hooking is not 100% guaranteed?
I have also noticed sometimes when I use API hooking to get into the window properties of software application; I can successfully play with the window’s properties. But I am unable to access the individual buttons which are placed in the window.
Would you be able to tell me why that is?
By the way, I am not trying to be heard-aheaded o9n this subject. I am just trying to undrestand how far I can do with this hooking business.
Thanx again for all these information
Khoramdin
|
|
|
|
|
To add the Christian's reply, the application may have been designed with extension in mind. For example, it may have a documented plug-in architecture.
Steve
|
|
|
|
|
Hello Steve,
Thank you for the info. As you mentioned in your reply it is almost a stright-forward bussiness if the application have been developed with the intension to have extra option and future improvement In past, I have done programming to create DLL files and mainly added the extra personal options to a software application.
My question was targeting rather the software application which were not designed for such. Let's say I buy a DVD Player Software (WinDVD), surly they are not designed with the intension to add extra buttons with different functionality. The question is, would it be possible to get into these software applications and add the extra personalized option?
Thank you for taking the time and helping out.
Khoramdin
|
|
|
|
|
In that case Christian's reply is best. It depends. While anything is possible more specific information would be needed before one could comment on the techniques required and the difficulty of the task.
Steve
|
|
|
|
|
Hello Steve,
I guess you and Christine are right about the hooking and its uncertainties. I guess I have learnt a lot form you guys and I better bring this hooking discussion to the end.
Do you know of any step by step tutorial sort of stuff for hooking?
Thanx so much for taking the time and share with me your knowledge.
Khoramdin
|
|
|
|
|
Hi All,
Is there any function in (standard) c++ that convert integer value to std:string object?
Such as,
...
int n = 123;
string str_n = itos(n);
...
or some efficient way?
Thanks!
Yonggoo
|
|
|
|
|
I would use
str_n.Format ("%d", n)
|
|
|
|
|
lucy wrote: I would use
str_n.Format ("%d", n)
CString needed, not string
|
|
|
|
|
lucy wrote: str_n.Format ("%d", n)
I think that std::string has not such Format method. Maybe you're writing about CString , Aren't you?
By the way, I think the OP can use a stringstream object, for instance:
std::stringstream ss;
std::string s;
ss << 5;
ss >> s;
But I don't know how efficient this way is.
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
|
|
|
|
|
I think you use of CString
|
|
|
|
|
|
How can a 2-digit exponential notation be generated in a printf?
The following code:
sprintf(str, "%.10e ", value);
is producing different results for one of my users:
6.385698e-01
or
6.3856980000e-001
????
I'm thinking it's some kind of system difference, like Regional Settings or possibly different run-time libraries, although we distribute the MFC libs with our app. This user is in Japan.
I use VC++ 6.0 and everytime I run the program on my machine I get the 3-digit-exponential-notation (6.3856980000e-001).
|
|
|
|
|
Hi,
I'm maintaining an MFC ISAPI dll, and need to:- access the HINSTANCE of the dll to be able to:
- get the full path of the dll through GetModuleFileName, to be able to:
- register the dll to be able to add Event Log messages.
I've tried accessing theApp.m_hInstance, but it's NULL. I've also tried calling AfxGetInstanceHandle( ), which also returns NULL. I've tried adding the AFX_MANAGE_STATE( AfxGetStaticModuleState( ) ) to the top of the function which tries to locate the HINSTANCE, but to no avail. Since this is an MFC ISAPI extension, I don't have access to the DllMain function, otherwise I would probably just store it in a global variable...
Any ideas?
Regards,
Daníel
Wenn ist das Nunstück git und Slotermeyer? Ja! Beierhund das oder die Flipperwaldt gersput!
|
|
|
|
|
Does GetModuleHandle() help?
|
|
|
|
|
N.B. You can pass a NULL to get information on the current module - this is how code in an EXE can get the location of the EXE. I do not know if you call that from within the DLL if you will get the path of the DLL or the hosting EXE, but it might work...
Can you store the HINSTANCE passed to DllMain(...) ? If not, you may be able to use GetModuleHandle(...) to get the DLL's instance (HINSTANCE and HMODULE for a DLL are basically the same and can be interchanged in most cases).
Peace!
-=- James Please rate this message - let me know if I helped or not!<HR> If you think it costs a lot to do it right, just wait until you find out how much it costs to do it wrong! Avoid driving a vehicle taller than you and remember that Professional Driver on Closed Course does not mean your Dumb Ass on a Public Road! See DeleteFXPFiles
|
|
|
|
|
James R. Twine wrote: N.B. You can pass a NULL to get information on the current module - this is how code in an EXE can get the location of the EXE. I do not know if you call that from within the DLL if you will get the path of the DLL or the hosting EXE, but it might work...
If GetModuleHandle(NULL) is called from a DLL the HMODULE of the hosting EXE is returned.
Steve
|
|
|
|
|
Well, that answers my question about not knowing which would be returned...
Peace!
-=- James Please rate this message - let me know if I helped or not!<HR> If you think it costs a lot to do it right, just wait until you find out how much it costs to do it wrong! Avoid driving a vehicle taller than you and remember that Professional Driver on Closed Course does not mean your Dumb Ass on a Public Road! See DeleteFXPFiles
|
|
|
|
|
Here's a function that will return the HINSTANCE of the module it's compiled into:
HINSTANCE GetMyModuleHINSTANCE()
{
MEMORY_BASIC_INFORMATION mbi;
DWORD res = VirtualQuery(&GetMyModuleHINSTANCE, &mbi, sizeof(mbi));
if (res!=sizeof(MEMORY_BASIC_INFORMATION))
{
return NULL;
}
return reinterpret_cast<HINSTANCE>(mbi.AllocationBase);
}
Note that there are better ways of doing this, depending on what framework you're using or if you've got access to DLLMain if you're a DLL or WinMain if you're an EXE. This code works without having to make any such assumptions however.
Steve
|
|
|
|
|
I have function
int lib(unsigned char *buf, unsigned short int **data)
//returining value of data
data[i][j] = ((buf[index]<<8) | buf[index+1]);
Now I am passing buffer(which contains some values) from the same above function like that.
unsigned short int actual_data[10][10];
if ((rval= lib(buffer, actual_data)) == -1)
It gives segments fail error ..plz guide me ..i think some prb with actual_data argument..
Thanks
|
|
|
|
|
you have to pass the matrix dimensions as function parameters too, otherwise, how can the function know where to stop ?
the segmentation error is a very classic error of a buffer overflow (you're writing over the end of your array)
[edit]What's wrong with this answer mister the "anonymous 1-voter" ??? can't you even justify your vote ? [/edit]
|
|
|
|
|
thx..but still same error ...Actually I want to pass pointer to 2d array..
if ((rval= lib(buffer, actual_data[10][10])) == -1)
|
|
|
|
|
did you tried to understand my reply ?
how is the pointer used then within the lib() function ?
you have to find where the buffer is overflown, and fix this !
|
|
|
|
|
How to do connection of VC++ with the database MS-SQL
Gorsia
|
|
|
|
|
There are scores of Database related articles for C++ here on CodeProject... take a look at them.
led mike
|
|
|
|
|
hi
I have seen programs that bind a DataGrid to an ADO Data Control.
But i want to know, how can i display the fields in Edit Controls.
Is there some way to bind the Edit control to the DataSource(ADO Control).
thx Slipnit
|
|
|
|