- UID
- 2466
注册时间2005-7-22
阅读权限20
最后登录1970-1-1
以武会友
该用户从未签到
|
【破解作者】 windycandy
【使用工具】 PEiD、ODbyDYK v1.10、ImportREC1.6 Final
【破解平台】 XP
【软件名称】 vb编写的crackme
【软件大小】 548k(附件太大,请到DFCG中级区下载)
【加壳方式】 Armadillo4.3(public)CopyMem-ll+Debug-Block
【破解声明】 我是一只小菜鸟,偶得一点心得,愿与大家分享:)
--------------------------------------------------------------------------------
【破解内容】
1.前言
为了学习手动脱Armadillo壳,自己用Armadillo v4.3(public)CopyMem-ll+Debug-Block 给5种语言编写的Crackme
进行练习,在脱壳过程中除了VB编写的Crackme和XP下的notepad不能按照教程脱壳外,其他的都可以。心存迷惑,故
将自己的脱壳过程写下来,劳烦各位前辈和大侠帮忙看看是什么原因,并给予指点迷津,以解心中困惑.
2.脱壳
OD载入程序,老规矩插件隐藏OD,忽略所有异常,再添加以下几个异常C0000005(ACCESS VIOLATION)、C000
001D(ILLEGAL INSTRUCTION)、C000001E(INVALID LOCK SEQUENCE)、C0000096(PRIVILEGED INSTRUCTION)
入口代码:
00454000 v> 60 pushad
00454001 E8 00000000 call vb.00454006
00454006 5D pop ebp
00454007 50 push eax
00454008 51 push ecx
00454009 0FCA bswap edx
0045400B F7D2 not edx
0045400D 9C pushfd
记录下入口的代码:60 E8
下bp WaitForDebugEvent(如果出现被调试程序无法处理异常,改下He WaitForDebugEvent)
shift+F9运行,中断
77E8F13C k> 55 push ebp--------中断在这里,取消断点
77E8F13D 8BEC mov ebp,esp
77E8F13F 83EC 68 sub esp,68
77E8F142 56 push esi
77E8F143 FF75 0C push dword ptr ss:[ebp+C]
77E8F146 8D45 F8 lea eax,dword ptr ss:[ebp-8]
77E8F149 50 push eax
77E8F14A E8 5BB1FCFF call kernel32.77E5A2AA
堆栈
0012DB68 0043100D /CALL 到 WaitForDebugEvent 来自 vb.00431007
0012DB6C 0012ECF4 |pDebugEvent = 0012ECF4★单击右键,数据窗口中跟随
0012DB70 000003E8 \Timeout = 1000. ms
下bp WriteProcessMemory(或He WriteProcessMemory),shift+F9运行,中断
77E41A94 k> 55 push ebp
77E41A95 8BEC mov ebp,esp
77E41A97 51 push ecx
77E41A98 51 push ecx
77E41A99 8B45 0C mov eax,dword ptr ss:[ebp+C]
77E41A9C 53 push ebx
数据窗口
0012ECF4 01 00 00 00 1C 07 00 00 .....
0012ECFC 24 07 00 00 01 00 00 80 $.... |
|