ASP壳的手脱方法
本人菜鸟 大牛勿喷ASPack壳是比较简单的东西,可以说跟UPX相似
都是对程序大小进行压缩
首先程序载入OD后提示压缩代码是否继续分析点击“否”然后停止在入口
004C4001 >60 PUSHAD
004C4002 E8 03000000 CALL ASP2_12.004C400A
004C4007- E9 EB045D45 JMP 45A944F7
004C400C 55 PUSH EBP
入口地址已经明摆着说是:ASP 2.12 的壳
然后使用ESP定律来脱它
按下F7查看右边寄存器窗口ESP的值,选中右键数据窗口中跟随然后进行下硬件断点
然后在按下F9运行程序,程序会在断点处停下就会看到
004C4416 /75 08 JNZ SHORT ASP2_12.004C4420
004C4418 |B8 01000000 MOV EAX, 0x1
004C441D |C2 0C00 RETN 0xC
004C4420 \68 37C84500 PUSH ASP2_12.0045C837
004C4425 C3 RETN
上面有JNZ跳转 意思是不等于0就跳转
还看到PUSH 意思是压入一个地址然后在RETN返回
因为是停在JNZ上箭头显示为红色(红色代表跳转已经实现) 我就直接三次F7跳到正确的入口地址
0045C837 55 PUSH EBP
0045C838 8BEC MOV EBP, ESP
0045C83A 6A FF PUSH -0x1
0045C83C 68 405C4800 PUSH ASP2_12.00485C40
0045C841 68 14F64500 PUSH ASP2_12.0045F614
0045C846 64:A1 00000000MOV EAX, DWORD PTR FS:
0045C84C 50 PUSH EAX
0045C84D 64:8925 0000000>MOV DWORD PTR FS:, ESP
0045C854 83EC 58 SUB ESP, 0x58
0045C857 53 PUSH EBX
0045C858 56 PUSH ESI
0045C859 57 PUSH EDI
0045C85A 8965 E8 MOV DWORD PTR SS:, ESP
0045C85D FF15 7CC14700 CALL NEAR DWORD PTR DS: ; kernel32.GetVersion
-----------------------------------------------------------------------------------------------------------------------------------------
第一次发脱壳的帖子十分害怕,怕大牛喷。献丑的发了一贴
希望对朋友们一些帮助,希望多多支持。
技术含量很低,可以说刚学3天的新手都会......给楼主两个建议吧。
1.复制代码请用代码框或者直接截图。新手要看寄存器的。
2.f7是单步步入,遇到call你就进去了。。。应该f8。
楼主看看我的新手教程吧 感谢楼主 感谢,新手前来学习 按F7还是F8? 感谢,新手前来学习 学习了,感谢楼主分享经验…… mfkzxd 发表于 2016-7-21 15:48
按F7还是F8?
是F7没有F8 多谢楼主!学习了 认真学习。 thanks for your share。谢谢楼主。。看了总得回复
页:
[1]
2