File/Folder Description Centre v3.6.0.0 - Tutorial

http://arn.hypermart.net - Webpage.
Set_ffdc.exe: 784k.

Firstly my thanks to cTT for finding me this program, conveniently protected by ASPack :). In the first part I demonstrated how we could reconstruct a target whose original state we possessed, in the case of FFDC we will not have that luxury. Our first step will be to locate the entry point (use W32Dasm or even a HEX editor to search for 60 E8 00 00 00) and you'll find the familiar PUSHAD, CALL $+5 code that typifies ASPack.

You should of course Pedump /I the compressed file as we'll be needing it a little later. Next we'll bpx the loading code and establish which sections are compressed and then dump them to files. Remember to note the value of EDI so we can establish the RVA's of each section (also be careful with the last section).

Section		   RVA		  Raw Size
-------		----------	------------
CODE		  0x1000	   0x8B600
DATA		 0x8D000	    0x1200
.idata		 0x91000	    0x2800
.rsrc		 0xA0000	   0x1F000
Note that the .rsrc section was actually unpacked at RVA=0xA153C, ECX=0x1D6C4.

You should now have 4 files, once again its time for a little fun with your favourite HEX editor, UltraEdit is the tool for this. Firstly grab the PE header from the compressed file then follow my graphical illustration below for gluing the file back together.

     0h	   --------------------------------------------------
                PE Header from compressed FfdcShell.exe
   400h	   --------------------------------------------------
		
		Unpacked CODE section (Raw Size 8B600h)

 8BA00h	   --------------------------------------------------
		Unpacked DATA section (Raw Size 1200h)
		also BSS section will point here
 8CC00h	   --------------------------------------------------
		Unpacked .idata section (Raw Size 2800h)
 8F400h	   --------------------------------------------------
		Original .edata section (Raw Size 200h)
		.tls section (Raw Size 0h)
		Original .rdata section (Raw Size 200h)
		.reloc section (Raw Size 0h)
 8F800h	   --------------------------------------------------
		Unpacked .rsrc section (Raw Size 1F000h)
 AE800h	   --------------------------------------------------
You should now have a new file of length 714,752 bytes.

Now all you'll need to do is find the real entry point RVA (0x8C264) and fix up the PE header and .rsrc section methodically as I described in Phase 1 (Hint: there are 3 resources to fix).

You can download the unpacked file here (333k), and obviously load the file into IDA to reverse its banal protection. If you have any trouble obtaining the actual program version used here drop me an e-mail and I'll make it available for you.

* I understand that this unpacked file for some reason won't run under Windows NT, I am currently investigating why this is the case.

You have finished reading another tutorial courtesy of CrackZ's Reverse Engineering Page.
Find a quick way back to more documents with this link.

Return to Main Index, Packers/Unpackers.


© 1999 CrackZ. 21st July 1999.