天草中级班培训第11课是一个脱壳的例子,PEID查询是Armadillo 3.78 - 4.xx -> Silicon Realms Toolworks壳,是双进程,用ArmadilloFindProtected12.exe查询的信息为:
!- Protected Armadillo
<Protection Options>
Debug-Blocker
<Backup Key Options>
Variable Backup Keys
<Compression Options>
Better/Slower Compression
按照视频上的步骤,先忽略所有异常,并添加了00000000-FFFFFFFF的异常,然后隐藏OD。
再下BP OpenMutexA断点,SHIFT+F9运行,中断在:
7C80EABB k> 8BFF mov edi,edi
7C80EABD 55 push ebp
7C80EABE 8BEC mov ebp,esp
7C80EAC0 51 push ecx
堆栈信息为:
0012D778 004456BD /CALL 到 OpenMutexA
0012D77C 001F0001 |Access = 1F0001
0012D780 00000000 |Inheritable = FALSE
0012D784 0012DDB8 \MutexName = "3A0::DA3CC3BE78"
按照视频上的步骤,按CTRL+G,输入00401000,然后将指令拷贝到00401000处,最后看到:
00401000 60 pushad
00401001 9C pushfd
00401002 68 B8DD1200 push 12DDB8 ; ASCII "3A0::DA3CC3BE78"
00401007 33C0 xor eax,eax
00401009 50 push eax
0040100A 50 push eax
0040100B E8 B5A6A577 call RPCRT4.77E5B6C5
00401010 9D popfd
00401011 61 popad
00401012 - E9 7A13A677 jmp RPCRT4.77E62391
最后在00401000处点鼠标右键,选择“此处新建EIP”,F9运行,在这里出错了,程序停在:
77E5B6C5 E6 FF out 0FF,al
77E5B6C7 FF83 E9030F84 inc dword ptr ds:[ebx+840F03E9]
77E5B6CD 82EC 00 sub ah,0
77E5B6D0 0049 0F add byte ptr ds:[ecx+F],cl
77E5B6D3 8415 79000049 test byte ptr ds:[49000079],dl
堆栈信息为:
0012D744 00401010 返回到 BlowFish.00401010 来自 RPCRT4.77E5B6C5
0012D748 00000000
0012D74C 00000000
0012D750 0012DDB8 ASCII "3A0::DA3CC3BE78"
0012D754 00000206
0012D758 0012FF04
0012D75C 00000000
0012D760 0012DEE0
0012D764 0012D778
0012D768 004598D0 BlowFish.004598D0
0012D76C 0012DDB8 ASCII "3A0::DA3CC3BE78"
OD左下方显示的信息是“被调试的此程序无法忽略异常”,错误代码是0XC0000096。
运行很多次,换了很多台机器,换了很多OD(其中包括天草的flyODBG,什么终结版),英文原版+SOD等,都出现这个错误。
请问,这是OD的错误还是OD被检测到产生的错误或者是其他类型的错误?如何解决?
另外,我在视频上看到其使用的OD的窗口标题为:FIXDBG DIY CRACK TEAM,GOOGLE好久也没找到,请问在哪里下载或者发到我邮箱:chglyq@qq.com。
困扰好久,万分谢谢了!!!
[课程]Android-CTF解题方法汇总!