好友
阅读权限10
听众
最后登录1970-1-1
|
鬼狐
发表于 2016-7-21 15:31
本人菜鸟 大牛勿喷
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 00000000 MOV EAX, DWORD PTR FS:[0]
0045C84C 50 PUSH EAX
0045C84D 64:8925 0000000>MOV DWORD PTR FS:[0], 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:[EBP-0x18], ESP
0045C85D FF15 7CC14700 CALL NEAR DWORD PTR DS:[0x47C17C] ; kernel32.GetVersion
-----------------------------------------------------------------------------------------------------------------------------------------
第一次发脱壳的帖子十分害怕,怕大牛喷。献丑的发了一贴
希望对朋友们一些帮助,希望多多支持。
|
免费评分
-
查看全部评分
|
发帖前要善用【论坛搜索】功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。 |
|
|
|
|