Unpacking Aspack 1.08.04 | |||
Target | |||
DETTEN CRACKME
#10 ****************** Cracker: figugegl |
|||
The Tracing | |||
The first part of this tutorial is about unpacking Aspack 1.08.04 by hand to get the program's listing. Then we reverse the algorithm and finally code a keygenerator. a) Manual unpacking As usual, we load the target into our favourite Fileanalyzer - i always use viper's FileinsPEctor XL. We see that the program is packed with Aspack 1.08.04. We also have a look at the imports. There are only four, among them GetProcAddress. The lazy cracker takes Caspr to automatically unpack the program, but we're going to do it the hard way. I always try to unpack by hand first, and only if i fail, i'll take a generic unpacker. We load Icedump, set a bpx GetProcAddress in Softice and start the crackme. Softice pops up here: 0167:00413063 53 PUSH EBX We start tracing with <F10>, always looking out for a call to address 40xxxx. Soon there's a call edi, with edi = 401000: 0167:0041311A 8B3E MOV EDI,[ESI] We step into the call with <F8> but see a ret command only - this seems to be a little trick to distract crackers. There are a couple of "backward-jumps", in this case we set a bpx to the instruction following the jump and let Softice run with <F5>. But we have to disable all other breakpoints to prevent Softice from popping up at the same address several times. Eventually we come to the jump to the original entry point (OEP). Well, actually it's not a jump but a return, but with the same effect: 0167:004133A0 B800100000 MOV EAX,00001000
|
|||
Dumping | |||
We're almost done: we only have to correct the entry point. Load the dumped file in Procdump's PE-Editor and set the EP to: OEP - Image Base = 401000h - 400000h = 1000h We start the program and IT WORKS! The listing looks good as well, there are all import functions visible. Now let's crack the crackme... |
|||
|