对用Petite2.2加壳的程序进行手动脱壳的一点分析
2007-01-12 20:12:32 来源:WEB开发网核心提示: 5、下指令,向后搜索字符串s 30:400850 l ffffffff 'SHELL32.dll'搜索结果如下:Pattern found at 0030:0040D382 (0000CB32)6、下指令,对用Petite2.2加壳的程序进行手动脱壳的一点分析(2),搜索i
5、下指令。向后搜索字符串
s 30:400850 l ffffffff 'SHELL32.dll'
搜索结果如下:
Pattern found at 0030:0040D382 (0000CB32)
6、下指令。搜索import table部分
s 30:400000 l ffffffff 82,D3,00,00
搜索结果如下:
Pattern found at 0030:0040D234 (0000D234)
7、我们来看看真正的import table的入口,下指令
dd 40d234-c
显示如下:
0030:0040D228 00000000 356C813B 7FCE0000 0000D382 ....;.l5.......
0030:0040D238 0000D2D4 00000000 355A749D BFF70000 .........tZ5....
0030:0040D248 0000D38E 0000D2C0 00000000 356C8139 ............9.l5
0030:0040D258 BFF50000 0000D39B 0000D2B4 00000000 ................
我们要记在其RVA=40D228-400000=0000D228。大小嘛,向下找到大量00字节的地方。计算1B4=0040D3DC-0040D228。
(我想大一点也无所谓吧)
8、好了import table的问题结解决了。再来看看找Entry Point的问题。按F12键回到Notepad.exe领空。(如果你刚才中断在Loadlibrarya领空时,没有按F12的话)显示如下:(需要把光标向上移动几行才能看到我这样的显示结果)
015F:0040596C BE00600000 MOV ESI,00006000
015F:00405971 03F5 ADD ESI,EBP
015F:00405973 8D8D00080000 LEA ECX,[EBP+00000800]
015F:00405979 8BD8 MOV EBX,EAX
015F:0040597B 833E00 CMP DWORD PTR [ESI],00
015F:0040597E 0F840E020000 JZ 00405B92 <---注意了,下一段是循环。这里才是跳出大循环的地方
015F:00405984 51 PUSH ECX
015F:00405985 51 PUSH ECX
015F:00405986 FF9590070000 CALL [EBP+00000790]
015F:0040598C 85C0 TEST EAX,EAX <---按F12后,你回到的就是这个地方
015F:0040598E 0F84DF000000 JZ 00405A73
015F:00405994 8BF8 MOV EDI,EAX
015F:00405996 03403C ADD EAX,[EAX+3C]
015F:00405999 8B4078 MOV EAX,[EAX+78]
015F:0040599C FF743818 PUSH DWORD PTR [EDI+EAX+18]
015F:004059A0 8B4C3824 MOV ECX,[EDI+EAX+24]
9、对于大循环,我们可以直接跳出,下指令
更多精彩
赞助商链接