////////////
此贴精彩之处不在开始,而是在于过程.在于您的参与.
////////////
基础:只脱过2个标准壳.(且对标准壳的概念模糊)
目的:
1.学习Armadillo 3.78壳的分析,(标准,COPY MEM,ANTI,CC)
2.学习Armadillo 3.78脱壳的简单过程.
3.让和我一样的菜鸟也可以看懂.
/////////////////////
努力学习,天天看雪。
/////////////////////
程序:
[2005/03/09] 冒险岛v25版无敌外挂(反正现在也用不了了,不会损害盛大利益)
说明:绿客出品..
下载地址:
e4fK9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8Y4N6%4N6#2)9J5k6i4N6Y4x3e0u0Q4x3X3g2U0L8$3#2Q4x3V1k6K6i4K6u0r3k6r3!0%4L8W2)9#2k6U0t1K6i4K6g2X3x3W2)9J5k6h3S2@1L8b7`.`.
下载后为调试方便改执行程序为英文名 wg.exe
////////////
用PEiD核心扫描判断壳为
Armadillo 3.78 - SiliconRealms Tool
运行程序后在任务管理器里出现2个进程
////////////
打开OD,忽略所有异常,隐藏OD,载入程序 WG.EXE
00436000 > 60 pushad
00436001 E8 00000000 call wg.00436006
00436006 5D pop ebp
00436007 50 push eax
00436008 51 push ecx
00436009 0FCA bswap edx
0043600B F7D2 not edx
0043600D 9C pushfd
下断 bp OpenMutexA,SHIRT+F9运行,运行到如下
7C817227 > 8BFF mov edi,edi
7C817229 55 push ebp
7C81722A 8BEC mov ebp,esp
7C81722C 51 push ecx
7C81722D 51 push ecx
7C81722E 837D 10 00 cmp dword ptr ss:[ebp+10],0
7C817232 56 push esi
7C817233 0F84 B4070400 je kernel32.7C8579ED
7C817239 FF75 10 push dword ptr ss:[ebp+10]
堆栈如下
0012D778 0041C380 /CALL 到 OpenMutexA 来自 wg.0041C37A
0012D77C 001F0001 |Access = 1F0001
0012D780 00000000 |Inheritable = FALSE
0012D784 0012DDB8 \MutexName = "E74::DA17A51CB4"
<<0012DDB8>>
Ctrl+G:401000 键入代码如下
(下面代码就是运行从双进程到单进程的转换-如果错了请指点)
00401000 60 pushad
00401001 52 push edx //edx就是0012ddb8
00401002 6A 00 push 0
00401004 6A 00 push 0
00401006 E8 155A417C call kernel32.CreateMutexA
0040100B 61 popad
0040100C - E9 1662417C jmp kernel32.OpenMutexA
在401000点鼠右键处新建EIP,F9运行,再次中断在OpenMutexA处。
7C817227 > 8BFF mov edi,edi
7C817229 55 push ebp
7C81722A 8BEC mov ebp,esp
7C81722C 51 push ecx
7C81722D 51 push ecx
7C81722E 837D 10 00 cmp dword ptr ss:[ebp+10],0
7C817232 56 push esi
7C817233 0F84 B4070400 je kernel32.7C8579ED
取消断点
Ctrl+G:401000 在刚才的那些红色代码上点右键-撤消选择处修改
下断:bp GetModuleHandleA+5 ,F9运行,到这里。取消短点,
7C8263E1 837D 08 00 cmp dword ptr ss:[ebp+8],0
7C8263E5 ^ 0F84 3FC7FFFF je kernel32.7C822B2A //并在这里下断
堆锏如下
/1
0012CF10 /0012CF48
0012CF14 |773D7FF9 返回到 773D7FF9 来自 kernel32.GetModuleHandleA
0012CF18 |77372E84 ASCII "kernel32.dll"
多次F9堆兼如下
/2
0012CF54 /0012CF74
0012CF58 |773D5246 返回到 773D5246 来自 kernel32.GetModuleHandleA
0012CF5C |77372E84 ASCII "kernel32.dll"
0012CF60 |7C8284FF kernel32.GetProcessHeap
/3
0012CF70 /0012CF90
0012CF74 |71B110E9 返回到 WSOCK32.71B110E9 来自 kernel32.GetModuleHandleA
0012CF78 |71B12F8C ASCII "kernel32.dll"
/4
0012D718 /0012D780
0012D71C |0041B4D3 返回到 wg.0041B4D3 来自 kernel32.GetModuleHandleA
0012D720 |00000000
0012D724 |7C82B3C8 返回到 kernel32.7C82B3C8 来自 ntdll.ZwOpenMutant
/5
00127B6C /0012CE30
00127B70 |00AA18FE 返回到 00AA18FE 来自 kernel32.GetModuleHandleA
00127B74 |00AB6364 ASCII "kernel32.dll"
00127B78 |00AB7588 ASCII "VirtualAlloc"
/6
00127B6C /0012CE30
00127B70 |00AA191B 返回到 00AA191B 来自 kernel32.GetModuleHandleA
00127B74 |00AB6364 ASCII "kernel32.dll"
00127B78 |00AB757C ASCII "VirtualFree"
第7次是出现错误提示如下
//不知道如何在地址00AABE74处绕过命令。请常识更改EIP或者忽略异常执行程序。//
!!!!!!!!!!不知道怎么处理了。
到这里我下不去了,请指点指点。如果问题很菜请别见笑。。。
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课