OEP @ 00401414? Is that correct?Nope, OEP is 004020C1.
Code: Select all
004020C1 |. 55 PUSH EBP
004020C2 |. 8BEC MOV EBP,ESP
004020C4 |. 81EC 0C020000 SUB ESP,20C
004020CA |. 53 PUSH EBX
004020CB |. 56 PUSH ESI
004020CC |. 8B35 44304000 MOV ESI,DWORD PTR DS:[403044] ; kernel32.GetModuleFileNameA
004020D2 |. 57 PUSH EDI
004020D3 |. BF 03010000 MOV EDI,103
004020D8 |. 57 PUSH EDI ; /BufSize => 103 (259.)
004020D9 |. 8D85 F8FEFFFF LEA EAX,DWORD PTR SS:[EBP-108] ; |
004020DF |. 33DB XOR EBX,EBX ; |
004020E1 |. 50 PUSH EAX ; |PathBuffer
004020E2 |. 53 PUSH EBX ; |hModule => NULL
004020E3 |. 895D FC MOV DWORD PTR SS:[EBP-4],EBX ; |
004020E6 |. FFD6 CALL ESI ; \GetModuleFileNameA
Is this custom cryption part?http://msdn.microsoft.com/en-us/library ... s.85).aspx
"Creates a private heap object that can be used by the calling process. The function reserves space in the virtual address space of the process and allocates physical storage for a specified initial portion of this block."
Attached what I THINK is the proper dump + IAT fix (dumped_.exe). Where do I go from here (if even on the right track) to view interesting/decrypted strings? Thank you :)Your first dump is wrong, you're still in the packer code. Your second dump doesn't even start. And the FakeAv is written in VC++.
EDIT: Added dumped2_.exe. SEEMS a bit more complete and reveals program written in Delphi v2.25. Please correct if wrong.
It's really easy to unpack, set a bp on VirtualFree, Alt+F9, trace a bit and you'll land here :
Code: Select all
This is the jump to the OEP.003F0CDB 83F8 01 CMP EAX,1
003F0CDE 75 04 JNZ SHORT 003F0CE4
003F0CE0 6A 00 PUSH 0
003F0CE2 FFD1 CALL ECX
003F0CE4 - FFE1 JMP ECX ; (fakeAv).004020C1
In attach a crappy dump I made.