1. 首先查壳利用peid载入blog_backup.exe,发现壳是UPX 0.89.6 - 1.02 / 1.05 - 1.24 -> Markus & Laszlo [ZIP SFX]。
2. 载入程序,利用ESP堆栈平衡定律发现在pushad之前的ESP是0012FFC4,输入命令hr 0012FFC4.如下图
3. F9继续运行如下图:
4. 在jmp 0040291A指令处F8如下图:
在此处右键Dump debugged process,如下图:
找到OEP 291A,全部是默认值,然后Dump。另存文件为blog_backup1.exe
5. 利用peid查壳,如图显示visual c++ 7.0。
6. 这个时候双击blog_backup1.exe,不能运行,于是我修复IAT,利用ImpREC 1.7c,导入blog_backup.exe,输入刚才查找到的OEP 291A,如下图:
7. 修复获取输入表,全部显示的是yes,然后转储文件,直接覆盖blog_backup1.exe,如图:
8. 但是我双击blog_backup1.exe还是不能够运行。请问:
●
是我的步骤有错误么?
或者这个壳不能这么脱?我勒个悲剧,我又用protection_id查了一下信息如下:
-=[ ProtectionID v0.6.4.0 JULY]=-
(c) 2003-2010 CDKiLLER & TippeX
Build 07/08/10-17:57:05
Ready...
Scanning -> D:\temp\crackBB\blog_backup\blog_backup.exe
File Type : 32-Bit Exe (Subsystem : Win GUI / 2), Size : 2950308 (02D04A4h) Byte(s)
-> File has 2011300 (01EB0A4h) bytes of appended data starting at offset 0E5400h
[File Heuristics] -> Flag : 00000000000000001100001000100111 (0x0000C227)
[!] UPX 2.03 compressed !
upx internal version : 013 / compression method : 08 (M_NRV2E_LE32) - Level : 09
decompressed adler32 : 0x9AC46B7B / compressed adler32 : 0xF9219331
uncompressed size : 0x0022350A (02241802) / compressed size : 0x000E3BFA (0932858)
original file size : 0x0040C0A4 (04243620) / filter : 0x026 / ct0 0x01 / linkchecksum : 0x0DB
[CompilerDetect] -> Visual C++ 7.1 (Visual Studio 2003)
- Scan Took : 0.687 Second(s)
发现是upx 2.03压缩的,但是之前我也有用protectionID查过啊,查的结果和peid是一样的,还说什么modified,但是今天查就是2.03压的。好吧,上网乖乖的下了一个upx2.03解压好了。但是我的本意也不只是得到结果就好了,还是想问上面我手动脱壳的过程为什么不行呢?
最后上附件,网速不给力啊,传不上来,我直接上地址好么http://soft.pt42.cn/blog_backup.rar,应该是3M多不到4M的文件,不好意思啊。
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课