|
I've been doing a fair amount of work on something pretty similar, I've been interested in debuggers and how programs work at the lowest levels for a while now after starting off as a bit of a coding idiot
The best places I can recommend to start is if you can afford it, buy John Robbin's "Debugging Windows Applications" because he truely is the king of all things debugger. His Bugslayer articles in MSDN give good ideas too and there are a couple of articles here on CP that can help, search for APIHijack because that gives a good idea of how to get started. John Robbins really is the king though, just had to say that again
|
|
|
|
|
Thanks carrie
The book looks promissing, but it's 45 bucks on amazon
APIHijack's nice, I'll check out its sourcecode.
Kind regards,
Griffith
Everything you say will be misquoted, ripped out of context and used against you.
|
|
|
|
|
Thanks for the suggestion, but this is what I read on MSDN
ReadProcessMemory copies the data in the specified
address range from the address space of the specified process into
the specified buffer of the current process. Any process that has a
handle with PROCESS_VM_READ access can call the function. The process
whose address space is read is typically, but not necessarily, being
debugged.
The entire area to be read must be accessible. If it is not, the
function fails as noted previously.
Regular processes don't have PROCESS_VM_READ...
I doubt windows has a simple api that allows one process to read and
modify the memory of another one. (What would be the use of Protected memory then?)
Or is there a way to make ReadProcessMemory work?
Kind regards,
Griffith
Everything you say will be misquoted, ripped out of context and used against you.
|
|
|
|
|
easy way out:
u gotta Create the process u wanna read urself, then open it using PROCESS_ALL_ACCESS, than read the memory
Papa
while (TRUE)
Papa.WillLove ( Bebe ) ;
|
|
|
|
|
exactly like that, if you use CreateProcess and supply the flag to show that the program you're writing is debugging the one you are wanting to debug, you can get access to read into its memory space.
Just forked out for that book myself about a month ago, its full of amazing code so I'm more than happy to have paid so much for it. Can't live without it now
|
|
|
|
|
Okay, I'll try that then.
I know for sure it's possible to read the memory of existing processes though.
Thanks a lot guys
Griffith
Everything you say will be misquoted, ripped out of context and used against you.
|
|
|
|
|
does anyone knows how to apply XP themes to bitmap/icon buttons?
thanks.
Casa.Sapo.pt
|
|
|
|
|
I am hoping to use CFile, and what I want to do is concatenate two files. I dont see an append function. How would one do that? If I cant use CFile I'll have to use system("dosomething") which isnt quite as nice...
Thanks,
ns
|
|
|
|
|
Yes, you can use CFile . Use 2 CFile objects to open and read the files' contents into a couple of variables (eg: data1, data2). Then, use a 3rd CFile object to create a new file and call Write() to write each variable in succession.
/ravi
Let's put "civil" back in "civilization"
http://www.ravib.com
ravib@ravib.com
|
|
|
|
|
Obvious thing to do, in retrospect! THanks! I'm doing some java right now....one nice thing its 'STL' like iterator has is HasNext() which checks to see if the next element exists....
How did the deal go? Hard at work already?
|
|
|
|
|
I *luv* Java's collection classes! Thankfully, the .Net framework has a similar, extensive array (no pun intended) of classes.
ns wrote:
How did the deal go? Hard at work already?
Very well, thanks! I start work on Oct 14. Am looking forward to an initial 2 hour commute . Hopefully, it's only a matter of time before I move to Cambridge. Gadzooks, I'll have to start acting young and hip again. Haven't done that since 1492.
Am riding on a high... was working on an academic problem (sending text messages to an SMS equipped phone which is connected to a GPS, then parsing the query to determine where the target object is) that helped a friend of mine clinch a deal. In appreciation, he gave me an early Xmas present[^]! I'm still in shock! I was just solving the problem for fun!
Now it's back to my portfolio manager hack and a backlog of articles I want to post on CP. Hope you're having a great weekend! Eat lots of jaylee.
/ravi
Let's put "civil" back in "civilization"
http://www.ravib.com
ravib@ravib.com
|
|
|
|
|
Ravi Bhavnani wrote:
I *luv* Java's collection classes! Thankfully, the .Net framework has a similar, extensive array (no pun intended) of classes.
Have you not used the STL ? The C# collection classes blow for many reasons, and a brief use of the STL will reveal them all.
Christian
Hey, at least Logo had, at it's inception, a mechanical turtle. VB has always lacked even that... - Shog9 04-09-2002
During last 10 years, with invention of VB and similar programming environments, every ill-educated moron became able to develop software. - Alex E. - 12-Sept-2002
|
|
|
|
|
how can i show a dialog using simple asm in vc++?
void showAboutDialog( void )
{
__asm
{
//invoke DialogBox( g_hModule, MAKEINTRESOURCE( IDD_ABOUT_DIALOG ), NULL, (DLGPROC) aboutDialogProc );
//invoke GetDesktopWindow
};
}
any help would be great.
-carl
|
|
|
|
|
This is not 'directly' possible with the VC++ inline assembler. Sure, you could play with the _emit statement and form the needed opcodes yourself, but why? Why not making a direct call to DialogBox(...)?
Dominik
|
|
|
|
|
I have a static function in my class,I want to call a nonstatic function of my class inside that static function.How?
Mazy
"If I go crazy then will you still
Call me Superman
If I’m alive and well, will you be
There holding my hand
I’ll keep you by my side with
My superhuman might
Kryptonite"Kryptonite-3 Doors Down
|
|
|
|
|
Static functions are not associated with a particular instance of a class. They have no this pointer. Like a global function. You would have to pass in a pointer to the object to invoke the method on, since the static function is not associated with a particular object.
|
|
|
|
|
Generally, you use a pointer to the instance of the class whose method you want to invoke. e.g.
/*static*/ void CMyClass::DoSomethingToPeer(CMyClass* pPeer)
{
pPeer->DoSomethingToSelf();
}
/*static*/ void CMyClass::DoSomethingToAllPeers()
{
// s_Peers is a static variable to class-- a list of all instances
for (list<CMyClass*>::const_iterator i=s_Peers.begin();i!=s_Peers.end();++i)
i->DoSomethingToSelf();
}
|
|
|
|
|
Hi,
how can i kill a process? I do not want to send some messages like WM_CLOSE, WM_QUIT or others to the process to kill, i want to kill it, so it not even has the time to ask for file-save for example.
I know, this is somehow possible (I have a tool, which exactly does this). Do you know how to kill a process?
Thanks,
-Dominik
|
|
|
|
|
Try this function: TerminateProcess instead of ExitProcess function.
Appstmd
|
|
|
|
|
Ok, thank you!
|
|
|
|
|
Hi!
I'd like to modify a executable file's icon without using the UpdateResource Windows API because it is'nt supoorted by Windows 98 and Me.
Does anyone know an article or information about it?
Thks in advance!
Appstmd
|
|
|
|
|
Dig into docs on the Portable Executable (PE) file format used for Win32 executables and learn how to parse and make changes to the file.
http://www.microsoft.com/hwdev/hardware/PECOFF.asp
http://www.anticracking.sk/EliCZ/import/msdn_pefile.htm
http://www.msdnaa.net/interchange/preview.asp?PeerID=1083
|
|
|
|
|
Thks. I'll take a look at these docs.
Appstmd
http://www.appstmd.com
|
|
|
|
|
Hello! Everybody!
Now, I have get the HANDLE of an dialog(by FindeWindow function),then ,How can i get the full path of the executtable contaning the dialog.
thanks very much first
|
|
|
|
|
::GetModuleFilename(handle);
if you start putting in too manay features, it no longer remains useful for beginners
quote in a CP article comment, shiraz baig
|
|
|
|