I'm in the process of patching a crackme so that I get recognized as registered without the need of a serial key.
Finding the function that checks for the validity of the key and patching it so that it always returns a success value was a piece of cake. But when I launched the exe, surprise : We noticed an attempt to crack this program, shutting down..
I'm thinking that there's somewhere a call to ReadProcessMemory or a more simple fopen/fread that computes an integrity sum and checks it with an hardcoded value.
What I would like to do, with IDA, is find where these system functions are called. Is this even possible ? I tried debugging the application, but there seem to be anti-debugger techniques as the crackme instantly exits.
Any suggestion appreciated. I'm using IDA Pro 6.6.
ReadProcessMemory
, like this:*(BYTE*) 0xC0DE
, which totally bypassesRPM
breakpoints. Your best bet is to put a hardware breakpoint (on read) on the address you modified and check what's reading it.