ACProtect 1.40 - 1.41 - RISCO Software Inc. 脱壳
2012-11-22 11:33
211 查看
文章整理自黑鹰视频教程
1、查壳显示“ACProtect 1.40 - 1.41 - RISCO Software Inc.”
2、OD载入(用看雪论坛上的OD即可),打开“调试选项->异常”,除了“非法访问内存”和“同时忽略以下指定的异常或范围”这两项不勾以外,其他的都打勾。
3、重新载入程序,F9运行,程序断下来,如下所示:
在SE处理程序这一行的“00433731”数据窗口中跟随,在数据窗口该地址处右键“断点->内存访问”下内存访问断点。Shift+F9运行。
4、程序在如下处断了下来:
在00433731这一行F2下断,Shift+F9运行。
5、程序在如下处断了下来:
在00433781这一行F2下断,Shift+F9运行。
6、程序在如下处断了下来:
此时删除前面的断点(注意,有两个F2断点和一个内存访问断点)。在最后0043379D这一行F4运行到该行,打开内存镜像,在程序的.text代码段F2下断,Shift+F9运行。
7、程序断在如下处:
堆栈窗口如下:
在反汇编窗口中00401B50处修改反汇编代码如下:
注意,push 00402C98这一行的地址来源于堆栈窗口中00402C98 ASCII "VB5!6&vb6chs.dll",而call 00401B4A这一行的地址来源于反汇编窗口中的MSVBVM60.ThunRTMain这一行,不同的程序要区别对待。
8、dump文件,注意,程序入口点要填1B50。脱壳成功。
1、查壳显示“ACProtect 1.40 - 1.41 - RISCO Software Inc.”
2、OD载入(用看雪论坛上的OD即可),打开“调试选项->异常”,除了“非法访问内存”和“同时忽略以下指定的异常或范围”这两项不勾以外,其他的都打勾。
3、重新载入程序,F9运行,程序断下来,如下所示:
0043374D |. CD 01 int 1 0043374F |. 40 inc eax 00433750 |. 40 inc eax 00433751 |. 0BC0 or eax, eax 00433753 |. 75 05 jnz short 0043375A堆栈窗口显示如下:
0012FF84 0012FFE0 指向下一个 SEH 记录的指针 0012FF88 00433731 SE处理程序 0012FF8C 00123F2D 0012FF90 6CE87C5E
在SE处理程序这一行的“00433731”数据窗口中跟随,在数据窗口该地址处右键“断点->内存访问”下内存访问断点。Shift+F9运行。
4、程序在如下处断了下来:
00433731 . 8B5C24 0C mov ebx, dword ptr [esp+C] 00433735 . 8383 B8000000>add dword ptr [ebx+B8], 2 0043373C . 33C0 xor eax, eax 0043373E . C3 retn
在00433731这一行F2下断,Shift+F9运行。
5、程序在如下处断了下来:
00433781 |. 8B048E |mov eax, dword ptr [esi+ecx*4] 00433784 |. 8B5C8E 04 |mov ebx, dword ptr [esi+ecx*4+4] 00433788 |. 2BC3 |sub eax, ebx 0043378A |. C1C8 05 |ror eax, 5 0043378D |. 2BC2 |sub eax, edx 0043378F |. 81C2 43A18EAB |add edx, AB8EA143
在00433781这一行F2下断,Shift+F9运行。
6、程序在如下处断了下来:
00433795 |. 89048E |mov dword ptr [esi+ecx*4], eax 00433798 |. 49 |dec ecx 00433799 |.^ EB E1 \jmp short 0043377C
0043379B |> \61 popad 0043379C |. 61 popad 0043379D \. C3 retn
此时删除前面的断点(注意,有两个F2断点和一个内存访问断点)。在最后0043379D这一行F4运行到该行,打开内存镜像,在程序的.text代码段F2下断,Shift+F9运行。
7、程序断在如下处:
00401B4A $- FF25 7C114000 jmp dword ptr [40117C] ; MSVBVM60.ThunRTMain 00401B50 47 db 47 ; CHAR 'G' 00401B51 6B db 6B ; CHAR 'k' 00401B52 2B db 2B ; CHAR '+' 00401B53 2E db 2E ; CHAR '.' 00401B54 36 db 36 ; CHAR '6' 00401B55 E6 db E6 00401B56 96 db 96
堆栈窗口如下:
0012FFD8 00438CC9 返回到 123.00438CC9 来自 123.00401B4A 0012FFDC 00402C98 ASCII "VB5!6&vb6chs.dll" 0012FFE0 FFFFFFFF SEH 链尾部 0012FFE4 7C839AA8 SE处理程序 0012FFE8 7C817080 kernel32.7C817080
在反汇编窗口中00401B50处修改反汇编代码如下:
00401B50 68 982C4000 push 00402C98 ; ASCII "VB5!6&vb6chs.dll" 00401B55 E8 F0FFFFFF call 00401B4A ; jmp 到 MSVBVM60.ThunRTMain 00401B5A 90 nop
注意,push 00402C98这一行的地址来源于堆栈窗口中00402C98 ASCII "VB5!6&vb6chs.dll",而call 00401B4A这一行的地址来源于反汇编窗口中的MSVBVM60.ThunRTMain这一行,不同的程序要区别对待。
8、dump文件,注意,程序入口点要填1B50。脱壳成功。
相关文章推荐
- 脱UltraProtect 1.x -> RISCO Software Inc.时,遇到修复时提示无法读取进程内存的错误,应如何解决?方法和软件提供如下:
- 手脱 UltraProtect 1.x -> RISCO Software Inc
- VMS Software, Inc.
- AcProtect 1.41 外壳分析
- Tibco Software Inc TB0-108 Exam
- SICP 1.40 1.41 1.42 1.43 1.44
- Tibco Software Inc TB0-108 Exam
- Pass4Sure Tibco Software Inc Interactive Testing Engine and BrainDumps
- 关于安装VMware软件出现1021错误但文件HKEY LOCAL MACHINE\SOFTWARE\VMware Inc已删除仍报错的解决办法
- 不脱壳照样破解MyVideoConverter V1.40 汉化版
- 《Rapid Development:Taming Wild Software Schedules》阅读(一)
- 自己的脱壳过程(FSG2.0)
- Software Industry Revolution----POJ3898----DP
- dvwa 源码分析(三) --- config.inc.php分析
- Real-Time Control Systems Library –– Software and Documentation
- phpmyadmin config.inc.php配置示例
- Free/open-source machine translation software
- ibm rational software architect download
- 什么是加壳和脱壳技术?加壳和脱壳技术是什么意思?
- homework-Agile Software Development