吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 16777|回复: 15
收起左侧

[分享] 菜鸟起步四 手脱Armadillo 3.78 - 4.xx笔记

[复制链接]
658 发表于 2011-1-29 22:14
泪牛满面那。。。终于给我脱下来了。。。穿山甲真变态呀。。

Armadillo 3.78 - 4.xx -> Silicon Realms Toolworks

程序:FlyWoool.exe(吉祥天传世外挂 1.0.0.1)
原教程地址:无

脱壳前的准备:
1、OD设置忽略所有的异常,用隐藏插件隐藏OD
2、思想准备:Armadillo对断点的检测非常严格,所以我们在设置断点的时候要尽量去使用“硬件执行”
3、概念准备:使用PEID的Armadillo的版本检测一般没那么准确,我倒是发现fi的版本检测还是要强一些
4、Magic Jump:跳转的跨越段一般比较大!(返回时机一定要对!)
5:返回的时机:1、返回的地址是系统领空 2、Shift+F9过程当中,时间缓冲比较大才停下

总分四步
一、双变单(使程序把自己当成子进程运行)bp OpenMutexA
二、避开Anti (手动避免OD BUG )               he OutputDebugStringA
三、Magic Jump,避开IAT加密                       he GetModuleHandleA+5
四、LoadPE脱壳 IR修复
1.png
具体步骤

一、双变单(使程序把自己当成子进程运行)
bp OpenMutexA
F9(左下角 提示异常)
2.png
选项  调试 异常 添加最近的异常

Shift+F9(断下后不要取消断点

Ctrl+G 00401000

依次输入  ***注意第三句的地址出处
00401000      60                       pushad
00401001      9C                       pushfd
00401002      68 A0FD1200      push 12FDA0  ********      ; ASCII "44C::DA47D45903"
00401007      33C0                   xor eax,eax
00401009      50                       push eax
0040100A      50                       push eax
0040100B      E8 E694A677      call KERNEL32.CreateMutexA
00401010      9D                       popfd
00401011      61                       popad
00401012    - E9 8F9FA777      jmp KERNEL32.OpenMutexA
3.png

选上变红的这一段 右键 此处新建EIP
4.png
F9  
F2取消断点
ctrl+G 00401000
选上红的一段 撤销

11.png

二、避开Anti
he OutputDebugStringA  回车  F9   

选中%s%之类的字符,点右键 数据窗口跟随 第一行右键 二进制 使用00填充
5.jpg
7.png
F9
选中%s%之类的字符,点右键 数据窗口跟随 第一行右键 二进制 使用00填充
删除硬件断点
8.png
三、Magic Jump,避开IAT加密
he GetModuleHandleA+5 回车
Shift+F9
堆栈窗口
SHIF+F9
出现
001292A8    |01066AC2    返回到 01066AC2 来自 KERNEL32.GetModuleHandleA
001292AC    |0107BD6C    ASCII "kernel32.dll"
001292B0    |0107DDAC    ASCII "VirtualAlloc"***
001292A4    /0012EBB0
001292A8    |01066ADF    返回到 01066ADF 来自 KERNEL32.GetModuleHandleA
001292AC    |0107BD6C    ASCII "kernel32.dll"
001292B0    |0107DDA0    ASCII "VirtualFree"****


下个SHIft+F9 便可删除硬件断点
Alt+F9  

寻找Magic Jump  一般在call dword ptr ds:[10762B8]        ; KERNEL32.LoadLibraryA  ***** 下面的je

01055A99      8B0D 6C500801    mov ecx,dword ptr ds:[108506C]  //返回到这里!
01055A9F      89040E           mov dword ptr ds:[esi+ecx],eax
01055AA2      A1 6C500801      mov eax,dword ptr ds:[108506C]
01055AA7      391C06           cmp dword ptr ds:[esi+eax],ebx
01055AAA      75 16            jnz short 01055AC2
01055AAC      8D85 B4FEFFFF    lea eax,dword ptr ss:[ebp-14C]
01055AB2      50               push eax
01055AB3      FF15 B8620701    call dword ptr ds:[10762B8]        ; KERNEL32.LoadLibraryA  *****
01055AB9      8B0D 6C500801    mov ecx,dword ptr ds:[108506C]
01055ABF      89040E           mov dword ptr ds:[esi+ecx],eax
01055AC2      A1 6C500801      mov eax,dword ptr ds:[108506C]
01055AC7      391C06           cmp dword ptr ds:[esi+eax],ebx
01055ACA      0F84 2F010000    je 01055BFF //Magic Jump,改jmp
01055AD0      33C9             xor ecx,ecx
01055AD2      8B07             mov eax,dword ptr ds:[edi]
01055AD4      3918             cmp dword ptr ds:[eax],ebx
01055AD6      74 06            je short 01055ADE
01055AD8      41               inc ecx
01055AD9      83C0 0C          add eax,0C
9.png
往下拉,找如此类似的序列(一个jnz,一个jmp,两个salc//Magic Jump)
10.png
01055C0E    ^\0F85 49FEFFFF    jnz 01055A5D
01055C14      EB 03                    jmp short 01055C19  //F2下断,Shift+F9,断下!取消断点!
01055C16      D6                         salc(其上下断
01055C17      D6                         salc
往上拉 撤消Magic Jump处的修改!
13.png
Alt+M打开内存镜像,在00401000段下断,Shift+F9
12.png
7C94AB4F    55              push ebp//跳转后的出口
7C94AB50    8BEC            mov ebp,esp
7C94AB52    51              push ecx
7C94AB53    FF75 08         push dword ptr ss:[ebp+8]
7C94AB56    E8 DE57FEFF     call ntdll.RtlImageNtHead>
7C94AB5B    F640 5F 04      test byte ptr ds:[eax+5F]>
7C94AB5F    0F85 EE610200   jnz ntdll.7C970D53
7C94AB65    8D45 FC         lea eax,dword ptr ss:[ebp>
7C94AB68    50              push eax
7C94AB69    6A 0A           push 0A
7C94AB6B    6A 01           push 1

单步F8
14.png
010D038C    3350 40         xor edx,dword ptr ds:[eax+40]
010D038F    6A 00           push 0
010D0391    FF76 0C         push dword ptr ds:[esi+C]
010D0394    2BCA            sub ecx,edx
010D0396    FFD1            call ecx    //OEP F7跟进                   ; FlyWoool.004B79A6
010D0398    8945 FC         mov dword ptr ss:[ebp-4],eax
010D039B    8B45 FC         mov eax,dword ptr ss:[ebp-4]
010D039E    5F              pop edi
010D039F    5E              pop esi

到达OEP

脱壳 直接剪切无效指针

16.png
3.png
10.png
14.png

免费评分

参与人数 1热心值 +1 收起 理由
missviola + 1 精品文章!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

 楼主| 658 发表于 2011-1-29 22:15
斑竹 转下到脱壳破解版本吧  在那编辑帖子不让编
cbh352933721 发表于 2011-1-30 23:42
本来不想说的  你真无耻剽窃“天草”的作品 连破文都一摸一样加上几张图片 就变你的作品!!!!
哎 你这个人啊。。。
版主你有没有搞错  这种剽窃别人的作品也放出来我靠
我用我的ID担保     这绝对是“剽窃”天草的  赶紧封杀 免得毁了论坛荣誉!!!!!!!!!!!!!!!!!!
 楼主| 658 发表于 2011-1-31 11:45
105165 发表于 2011-2-1 19:15
很详细的教教程
HMPT 发表于 2011-2-5 10:23
支持一下!学习了!
dhzs 发表于 2011-7-21 21:39
很详细啊
geryjun 发表于 2012-2-4 23:09
支持学习一下。
kflyc 发表于 2012-2-21 21:32
好难。。。现在没有人能做得出来自动脱的吗!
garycui 发表于 2012-10-4 13:28
哦,我遇到了个程序是双进程Armadillo 3.78 - 4.xx的,到了找magic jump我就找不到了。按照楼主的说法“寻找Magic Jump  一般在call dword ptr ds:[10762B8]        ; KERNEL32.LoadLibraryA  ***** 下面的je
可我的KERNEL32.LoadLibraryA  下面不是je啊,望高手指点下magic jump的找法。
QQ截图2.png
QQ截图1.png
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 16:23

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表