脱Armadillo 3.78 - 4.xx的壳(我原来写的一篇文章)
本帖最后由 lchhome 于 2017-4-26 00:24 编辑目标软件:ql.exe
加壳工具:Armadillo 3.78 - 4.xx
脱壳工具:OD、IRC、LordPE
方法:用内存断点法
首先用PEID查壳为Armadillo 3.78 - 4.xx的壳,而且是双进程壳。
2、用OD忽略所有异常,隐藏OD,载入程序 在命令行下bp OpenMutexA 断点,Shift+ F9中断如下:
7C80EABB>8BFF mov edi, edi 中断在这里
7C80EABD 55 push ebp
7C80EABE 8BEC mov ebp, esp
我们再CTRL+G 输入00401000,来到这里然后我们在下面的空白地址填入下面的数值
00401000 60 pushad
00401001 9C pushfd
00401002 68A0FD1200 push 12FDA0 注意 ; ASCII " 8DC::DA985B82BD"
00401007 33C0 xoreax,eax
00401009 50 pusheax
0040100A 50 pusheax
0040100B E8CFD9407C call KERNEL32.CreateMutexA
00401010 9D popfd
00401011 61 popad
00401012 - E9A4DA407C jmp KERNEL32.OpenMutexA
然后全选上在 此处新建EIP F9 中断后取消断点 在CTRL+G输入00401000,然后就撤销选择处修改,此时我们的双变单就完成了。
3、避开Anti (Armadillo到了4X以后 OD多了一个漏洞 )heOutputDebugStringA,中断2次!,选中%s%之类的字符,点右键“数据窗口中跟随”->二进制->使用00填充,然后在”调试”工具栏中删除此硬件断点!
4、 下heGetModuleHandleA 断点,F9运行,中断三次,当出现"VirtualAlloc""VirtualFree"后,再出现"kernel32.dll",在”调试”工具栏中删除此硬件断点,Alt+F9返回以下程序
01C759E3 8B0D 6C50CA01 mov ecx, dword ptr 返回在此
01C759E9 89040E mov dword ptr , eax
01C759EC A1 6C50CA01 mov eax, dword ptr
01C759F1 391C06 cmp dword ptr , ebx
01C759F4 75 16 jnz short 01C75A
0C01C759F6 8D85 B4FEFFFF lea eax, dword ptr
01C759FC 50 push eax
01C759FD FF15 B862C901 call dword ptr ;kernel32.LoadLibraryA
01C75A03 8B0D 6C50CA01 mov ecx, dword ptr
01C75A09 89040E mov dword ptr , eax
01C75A0C A1 6C50CA01 mov eax, dword ptr
01C75A11 391C06 cmp dword ptr , ebx
01C75A14 0F84 2F010000 je 01C75B49 单步走到这,修改JMP,跳走
01C75A1A 33C9 xor ecx, ecx
01C75B49 83C7 0C add edi, 0C 跳到这里
01C75B4C 89BD 78FDFFFF mov dword ptr , edi
01C75B52 83C6 04 add esi, 4
01C75B55 395F FC cmp dword ptr , ebx
01C75B58^ 0F85 49FEFFFF jnz 01C759A7
01C75B5E EB 03 jmp short 01C75B63
先把01C75A4句撤销选择处修改,然后Alt+M,打开内存镜像在00401000处F2下断,F9运行断下, 我们单步走 如下
01C9026B 8B0C3A mov ecx, dword ptr 断在这里
01C9026E 5B pop ebx
01C9026F 03D7 add edx, edi
01C902C9 FF76 08 push dword ptr
01C902CC 3310 xor edx, dword ptr
01C902D3 2BCA sub ecx, edx
01C902D5 FFD1 call ecx一直F8单步走到这里,F7跟进,
01C902D7 8945 FC mov dword ptr , eax
0093411E >55 push ebp 就是OEP
0093411F 8BEC mov ebp,esp
00934121 6A FF push -0x1
此时,载入LordPE,找到此软件进程,点键“完整转存”,脱壳完毕,载入ImportREC V1.6F 汉化版,找到进程,OEP填入53411E,“IAT自动搜索”——“获取输入信息”,出现假指针,剪切掉,然后修复抓取文件。 谢谢大神分享 这么好的文章不给加分天理何在!!呵呵。。支持啦大神! 虽然还没看懂,还是非常谢谢,Armadillo 好像已经结业了吧? 楼主能帮忙一起研究个软件吗 shijie52013 发表于 2017-4-27 14:58
楼主能帮忙一起研究个软件吗
什么软件 能帮忙脱下吗,初学脱了N久都没用
页:
[1]