xybyre
March 12th, 2003, 18:11
I've just patched the latest NetCaptor, v7.1.0. I was just wondering if anybody else had difficulties with this program...
Previous versions were packed with aspack, I believe. This one seemed to be packed with UPX. I manually unpacked this one, since I could.
I never could unpack an asprotected proggie manually... (thank goodness for aspackdie)
anyway, the new trick here is putting the tamper-checks in exception handlers, and when it detects something wrong, a new instance of NetCaptor is created and the current process terminates. The newly-created process displays the "bad cracker" dialog.
If you break in the function that terminates the program, you don't get a call stack because of the SEH. So how do you know what code called the current function? The answer for me was IDA. IDA pointed out all of cross-references to the function and allowed me to track down the bad-cracker-check function.
It's kind of ironic, though. Now all of their bad_cracker checks call the same function to display the nag and quit. So one patch takes care of it all. (okay, there's another patch for the reg flag, but that's not really worth mentioning)
In cases like this, is there a way to find out the caller of a function without requiring the use of IDA?
Previous versions were packed with aspack, I believe. This one seemed to be packed with UPX. I manually unpacked this one, since I could.

anyway, the new trick here is putting the tamper-checks in exception handlers, and when it detects something wrong, a new instance of NetCaptor is created and the current process terminates. The newly-created process displays the "bad cracker" dialog.
If you break in the function that terminates the program, you don't get a call stack because of the SEH. So how do you know what code called the current function? The answer for me was IDA. IDA pointed out all of cross-references to the function and allowed me to track down the bad-cracker-check function.
It's kind of ironic, though. Now all of their bad_cracker checks call the same function to display the nag and quit. So one patch takes care of it all. (okay, there's another patch for the reg flag, but that's not really worth mentioning)
In cases like this, is there a way to find out the caller of a function without requiring the use of IDA?