1bitshort
November 5th, 2004, 12:51
Eesh, from recent posts you'd think packers like UPX/PKlite etc had some seriously hardcore protection
Bruno,
Packers like UPX, PKLite, FSG and so on really are very trivial to unpack - it takes longer to load a script to automate an unpacking of UPX than to do it manually (to do manually just breakpoint on popad and you'll be just an instruction or two away from the Original Entry Point). Usually all you need to look for is a jump that goes outside the main decompression code. There are things like OEP obfuscation that can work against you there, but that's only in packers with anti-debug capabilities. PKLite has no anti-debug capabilities or other protections, it's just a "vanilla" packer that does nothing more than it needs to.
I just had a quick look at it then (it's been a few years), and here's a disassembly (it's even easier than UPX!) ...
00475000 > $ 68 80504700 PUSH delphi7.00475080 ; /Arg3 = 00475080
00475005 . 68 FCF34A00 PUSH delphi7.004AF3FC ; |Arg2 = 004AF3FC
0047500A . 68 00000000 PUSH 0 ; |Arg1 = 00000000
0047500F . E8 E8A30300 CALL delphi7.004AF3FC ; \delphi7.004AF3FC
00475014 .^E9 5B87FEFF JMP delphi7.0045D774
That last JMP is to the OEP.
Thankyou, please drive through.
