bingtangscm4.exe---脱壳
搞定
脱壳
1.用Ollydbg 载入
2.在 GetProcAddress 设置 断点
3.F9 运行 程序, ALT+F9返回
004001D1 FF63 0C JMP DWORD PTR DS:[EBX+C]//这里下断点,然后F9运行,为什么在这里下断不懂,跟教程学的
004001D4 50 PUSH EAX
004001D5 55 PUSH EBP
004001D6 FF53 14 CALL DWORD PTR DS:[EBX+14]
004001D9 AB STOS DWORD PTR ES:[EDI]//返回到这里
0040AA76 9C DB 9C//右击,选“分析-从模块删除分析”
0040AA77 60 DB 60 ; CHAR '`'
0040AA78 E8 DB E8
0040AA79 00 DB 00
0040AA7A 00 DB 00
0040AA7B 00 DB 00
0040AA7C 00 DB 00
0040AA7D 5D DB 5D ; CHAR ']'
0040AA7E 83 DB 83
0040AA7F ED DB ED
0040AA80 07 DB 07
0040AA81 8D DB 8D
0040AA82 85 DB 85
0040AA83 DA DB DA
0040AA84 FE DB FE
0040AA85 FF DB FF
0040AA86 FF DB FF
0040AA87 80 DB 80
0040AA88 38 DB 38 ; CHAR '8'
到这里
0040AA76 9C PUSHFD
0040AA77 60 PUSHAD
0040AA78 E8 00000000 CALL bingtang.0040AA7D//ESP定律
到这里0040ACE7 9D POPFD
0040ACE8 ^ E9 E366FFFF JMP bingtang.004013D0//跳向OEP
004013D0 68 2C174000 PUSH bingtang.0040172C ; ASCII "VB5!6&vb6chs.dll"
//VB的OEP,用OD插件DUMP,能运行,不需修复,收工
004013D5 E8 F0FFFFFF CALL bingtang.004013CA ; JMP 到 MSVBVM60.ThunRTMain
原教程
FSG 2.0 手动脱壳
作者:未知 来源:CnXHacker.Net 加入时间:2005-6-25 阅读次数:12665
1.用Ollydbg载入
2.在API GetProcAddress 设置断点
3.F9运行程序
4.断点在GetProcAddress上,此时查看Olly的调用堆栈,找到在
在程序段内的调用地址,通常只有一处,双击来到类似下面的代码
004001C6 FF53 10 CALL NEAR DWORD PTR [EBX+10]
004001C9 95 XCHG EAX, EBP
004001CA 8B07 MOV EAX, DWORD PTR [EDI]
004001CC 40 INC EAX ; KERNEL32.77E60000
004001CD ^ 78 F3 JS SHORT 004001C2 ; FullScre.004001C2
004001CF 75 03 JNZ SHORT 004001D4 ; FullScre.004001D4
004001D1 FF63 0C JMP NEAR DWORD PTR [EBX+C]
004001D4 50 PUSH EAX ; KERNEL32.77E60000
004001D5 55 PUSH EBP
004001D6 FF53 14 CALL NEAR DWORD PTR [EBX+14]
004001D9 AB STOSD
004001DA ^ EB EE JMP SHORT 004001CA ; FullScre.004001CA
004001DC 33C9 XOR ECX, ECX
004001DE 41 INC ECX
004001DF FF13 CALL NEAR DWORD PTR [EBX]
004001E1 13C9 ADC ECX, ECX
5.注意其中的 JMP NEAR DWORD PTR [EBX+C]处,这里下断点,然后F9运行
6.中断在JMP NEAR DWORD PTR [EBX+C]处时,就是跳向OEP了
7.OllyDump Dump 就可以了,我试验了几个程序都可以.
1.用Ollydbg 载入
2.在 GetProcAddress 设置 断点
3.F9 运行 程序, ALT+F9返回
004001D1 FF63 0C JMP DWORD PTR DS:[EBX+C]//这里下断点,然后F9运行,为什么在这里下断不懂,跟教程学的
004001D4 50 PUSH EAX
004001D5 55 PUSH EBP
004001D6 FF53 14 CALL DWORD PTR DS:[EBX+14]
004001D9 AB STOS DWORD PTR ES:[EDI]//返回到这里
0040AA76 9C DB 9C//右击,选“分析-从模块删除分析”
0040AA77 60 DB 60 ; CHAR '`'
0040AA78 E8 DB E8
0040AA79 00 DB 00
0040AA7A 00 DB 00
0040AA7B 00 DB 00
0040AA7C 00 DB 00
0040AA7D 5D DB 5D ; CHAR ']'
0040AA7E 83 DB 83
0040AA7F ED DB ED
0040AA80 07 DB 07
0040AA81 8D DB 8D
0040AA82 85 DB 85
0040AA83 DA DB DA
0040AA84 FE DB FE
0040AA85 FF DB FF
0040AA86 FF DB FF
0040AA87 80 DB 80
0040AA88 38 DB 38 ; CHAR '8'
到这里
0040AA76 9C PUSHFD
0040AA77 60 PUSHAD
0040AA78 E8 00000000 CALL bingtang.0040AA7D//ESP定律
到这里0040ACE7 9D POPFD
0040ACE8 ^ E9 E366FFFF JMP bingtang.004013D0//跳向OEP
004013D0 68 2C174000 PUSH bingtang.0040172C ; ASCII "VB5!6&vb6chs.dll"
//VB的OEP,用OD插件DUMP,能运行,不需修复,收工
004013D5 E8 F0FFFFFF CALL bingtang.004013CA ; JMP 到 MSVBVM60.ThunRTMain
原教程
FSG 2.0 手动脱壳
作者:未知 来源:CnXHacker.Net 加入时间:2005-6-25 阅读次数:12665
1.用Ollydbg载入
2.在API GetProcAddress 设置断点
3.F9运行程序
4.断点在GetProcAddress上,此时查看Olly的调用堆栈,找到在
在程序段内的调用地址,通常只有一处,双击来到类似下面的代码
004001C6 FF53 10 CALL NEAR DWORD PTR [EBX+10]
004001C9 95 XCHG EAX, EBP
004001CA 8B07 MOV EAX, DWORD PTR [EDI]
004001CC 40 INC EAX ; KERNEL32.77E60000
004001CD ^ 78 F3 JS SHORT 004001C2 ; FullScre.004001C2
004001CF 75 03 JNZ SHORT 004001D4 ; FullScre.004001D4
004001D1 FF63 0C JMP NEAR DWORD PTR [EBX+C]
004001D4 50 PUSH EAX ; KERNEL32.77E60000
004001D5 55 PUSH EBP
004001D6 FF53 14 CALL NEAR DWORD PTR [EBX+14]
004001D9 AB STOSD
004001DA ^ EB EE JMP SHORT 004001CA ; FullScre.004001CA
004001DC 33C9 XOR ECX, ECX
004001DE 41 INC ECX
004001DF FF13 CALL NEAR DWORD PTR [EBX]
004001E1 13C9 ADC ECX, ECX
5.注意其中的 JMP NEAR DWORD PTR [EBX+C]处,这里下断点,然后F9运行
6.中断在JMP NEAR DWORD PTR [EBX+C]处时,就是跳向OEP了
7.OllyDump Dump 就可以了,我试验了几个程序都可以.
附件:http://down.51cto.com/data/2348613
本文转自 lvcaolhx 51CTO博客,原文链接:http://blog.51cto.com/lvcaolhx/45335