首页
社区
课程
招聘
[原创]另一种思路试玩Aramdillo标准壳!带脱壳动画!
发表于: 2005-6-29 22:19 7924

[原创]另一种思路试玩Aramdillo标准壳!带脱壳动画!

2005-6-29 22:19
7924
【破解作者】 wynney
【作者主页】 http://bbs.chinadev.net
【使用工具】 OD
【破解平台】 XP SP2
【软件名称】 XDeskWeather(桌面天气秀) 3.6
【软件简介】 单线程 标准方式加壳
【加壳方式】 Armadillo 1.xx - 2.xx -> Silicon Realms Toolworks [Overlay]
【破解声明】 我是一只小菜鸟,偶得一点心得,愿与大家分享:)
--------------------------------------------------------------------------------
【破解内容】

一个老目标程序了。。呵呵~
经过做的那个Aramdillo总结在里面的5个实例,是通过he GetModuleHandleA寻找Magic Jump的,我发现在返回的时候,kernel32.LoadLibraryA函数离Magic Jump的位置是很近的,所以就试了下,果然方便!现在把心得写出来和大家分享,大虾可以跳过。

OD载入。。忽略所有的异常,隐藏OD!

004FD379 X>/$  55                  push ebp  //入口
004FD37A   |.  8BEC                mov ebp,esp
004FD37C   |.  6A FF               push -1
004FD37E   |.  68 78225200         push XDeskWea.00522278
004FD383   |.  68 60CD4F00         push XDeskWea.004FCD60    ;  SE handler installation
004FD388   |.  64:A1 00000000      mov eax,dword ptr fs:[0]

下断BP LoadLibraryA,F9运行,注意观察堆栈

0012F5AC   004F454F  /CALL 到 LoadLibraryA 来自 XDeskWea.004F4549
0012F5B0   0051F548  \FileName = "KERNEL32.DLL"
0012F5B4  /0012FD1C

0012F4AC   004F3B30  /CALL 到 LoadLibraryA 来自 XDeskWea.004F3B2A
0012F4B0   00C35F14  \FileName = "WSOCK32.dll"
0012F4B4   00C3B000

0012F4AC   004F3B30  /CALL 到 LoadLibraryA 来自 XDeskWea.004F3B2A
0012F4B0   00C3681A  \FileName = "KERNEL32.dll"
0012F4B4   00C3B000

0012F4AC   004F3B30  /CALL 到 LoadLibraryA 来自 XDeskWea.004F3B2A
0012F4B0   00C36CBA  \FileName = "USER32.dll"
0012F4B4   00C36702  ASCII "ReleaseMutex"

0012F4AC   004F3B30  /CALL 到 LoadLibraryA 来自 XDeskWea.004F3B2A
0012F4B0   00C36CDA  \FileName = "comdlg32.dll"
0012F4B4   00C36856  ASCII "DestroyWindow"

0012F4AC   004F3B30  /CALL 到 LoadLibraryA 来自 XDeskWea.004F3B2A
0012F4B0   00C36DCC  \FileName = "ADVAPI32.dll"
0012F4B4   00C36CC8  ASCII "GetSaveFileNameA"

0012F4AC   004F3B30  /CALL 到 LoadLibraryA 来自 XDeskWea.004F3B2A
0012F4B0   00C36DEA  \FileName = "SHELL32.dll"
0012F4B4   00C36CF8  ASCII "RegQueryValueExA"

0012ED60   00C148E1  /CALL 到 LoadLibraryA 来自 00C148DF
0012ED64   00C373D8  \FileName = "ws2_32.dll"
0012ED68   01541C3C

0012ED60   00C148EE  /CALL 到 LoadLibraryA 来自 00C148EC
0012ED64   00C373C8  \FileName = "inetmib1.dll"
0012ED68   01541C3C

0012ED60   00C148F7  /CALL 到 LoadLibraryA 来自 00C148F5
0012ED64   00C373BC  \FileName = "snmpapi.dll"
0012ED68   01541C3C

0012EC84   76D369F1  /CALL 到 LoadLibraryA 来自 iphlpapi.76D369EB
0012EC88   76D42E80  \FileName = "MPRAPI.dll"
0012EC8C   00000000

0012EF54   00C14B78  /CALL 到 LoadLibraryA 来自 00C14B72
0012EF58   00C37228  \FileName = "rpcrt4.dll"
0012EF5C   01541C3C

0012C4C8   00C13CB8  /CALL 到 LoadLibraryA 来自 00C13CB2
0012C4CC   00C37228  \FileName = "rpcrt4.dll"
0012C4D0   00000002

0012C280   00C15351  /CALL 到 LoadLibraryA 来自 00C1534B
0012C284   0012C3BC  \FileName = "MSVBVM60.DLL"  //动态库
0012C288   00000002

此时取消断点,Alt+F9返回!

00C15344     8D85 B4FEFFFF         lea eax,dword ptr ss:[ebp-14C]
00C1534A     50                    push eax
00C1534B     FF15 B850C300         call dword ptr ds:[C350B8]        ; kernel32.LoadLibraryA
00C15351     8B0D 60D8C300         mov ecx,dword ptr ds:[C3D860]  //返回到这
00C15357     89040E                mov dword ptr ds:[esi+ecx],eax
00C1535A     A1 60D8C300           mov eax,dword ptr ds:[C3D860]
00C1535F     393C06                cmp dword ptr ds:[esi+eax],edi  //下硬件执行断点,给[esi+eax]清0!
00C15362     0F84 AD000000         je 00C15415                  //Magic Jump!先不要改jmp!
00C15368     33C9                  xor ecx,ecx
00C1536A     8B03                  mov eax,dword ptr ds:[ebx]
00C1536C     3938                  cmp dword ptr ds:[eax],edi
00C1536E     74 06                 je short 00C15376
00C15370     41                    inc ecx
00C15371     83C0 0C               add eax,0C
00C15374   ^ EB F6                 jmp short 00C1536C

接下来重新载入程序,隐藏OD

直接按F9!!由于硬件执行断点的缘故,直接停在

00C1535F     393C06                cmp dword ptr ds:[esi+eax],edi  //停在这里,给[esi+eax]清0!
00C15362     0F84 AD000000         je 00C15415                    //Magic Jump!改jmp!
00C15368     33C9                  xor ecx,ecx
00C1536A     8B03                  mov eax,dword ptr ds:[ebx]
00C1536C     3938                  cmp dword ptr ds:[eax],edi
00C1536E     74 06                 je short 00C15376
00C15370     41                    inc ecx
00C15371     83C0 0C               add eax,0C
00C15374   ^ EB F6                 jmp short 00C1536C

OK,取消硬件断点,操作完毕!

*****************************************************************
401000段 内存断点大法,到OEP!

这里使用前辈们的方法~~在401000段下内存断点,直接到达OEP!

004D12D4     55                    push ebp  //LordPE纠正ImageSize,DUMP!
004D12D5     8BEC                  mov ebp,esp
004D12D7     83C4 F0               add esp,-10
004D12DA     B8 0C0E4D00           mov eax,XDeskWea.004D0E0C
004D12DF     E8 004EF3FF           call XDeskWea.004060E4
004D12E4     A1 B06E4D00           mov eax,dword ptr ds:[4D6EB0]
004D12E9     8B00                  mov eax,dword ptr ds:[eax]

用ImportREC 1.6,选择这个进程。把OEP改为D12D4,点IT AutoSearch,CUT掉无效函数(16个),FixDump,正常运行!

Borland Delphi 6.0 - 7.0

--------------------------------------------------------------------------------
【破解总结】

经过我的测试,这个方法能够对付其他版本的标准壳!至于非标准壳当然还是得用fly大虾的办法了!
--------------------------------------------------------------------------------
【版权声明】 本文纯属技术交流, 转载请注明作者并保持文章的完整, 谢谢!

[课程]Android-CTF解题方法汇总!

收藏
免费 0
支持
分享
最新回复 (17)
雪    币: 224
活跃值: (147)
能力值: ( LV9,RANK:970 )
在线值:
发帖
回帖
粉丝
2
2005-6-29 22:22
0
雪    币: 34
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
看看。希望可以找到我要的答案。
2005-6-29 22:35
0
雪    币: 34
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
视频看不了。
2005-6-29 22:38
0
雪    币: 224
活跃值: (147)
能力值: ( LV9,RANK:970 )
在线值:
发帖
回帖
粉丝
5
最初由 hhd885 发布
视频看不了。


怎么看不了~?
2005-6-29 22:45
0
雪    币: 224
活跃值: (147)
能力值: ( LV9,RANK:970 )
在线值:
发帖
回帖
粉丝
6
汗~~你不会连  分卷 解压不会吧~?
2005-6-29 22:47
0
雪    币: 214
活跃值: (15)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
7
支持并学习!
2005-6-29 23:41
0
雪    币: 159
活跃值: (339)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
8
最初由 wynney 发布
【软件简介】 单线程 标准方式加壳


错别字。单进程
2005-6-30 12:27
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
Current imports:
0 (decimal:0) valid module(s)
1F0 (decimal:496) imported function(s). (added: +1F0 (decimal:+496))
(38 (decimal:56) unresolved pointer(s)) (added: +38 (decimal:+56))
我重建Import表时,怎么有56个无效函数,CUT后不能运行???
2005-7-1 09:57
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
看了【求助】修复脱掉Armadillo3.05的记事本http://bbs.pediy.com//showthread.php?s=&threadid=14510&perpage=15&highlight=Armadillo&pagenumber=1
我用的是XPSP2,应该是跨平台的问题.
2005-7-1 10:27
0
雪    币: 221
活跃值: (100)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
11

0012C280   00C15351  /CALL 到 LoadLibraryA 来自 00C1534B
0012C284   0012C3BC  \FileName = "MSVBVM60.DLL"  //动态库
0012C288   00000002

此时取消断点,Alt+F9返回!

到底返回的时机是什么时候?这里介绍是出现msvbvm60.dll动态库时。那程序如果没有该动态库呢,何时返回?
谢谢
2005-7-13 21:23
0
雪    币: 224
活跃值: (147)
能力值: ( LV9,RANK:970 )
在线值:
发帖
回帖
粉丝
12
最初由 yimiha 发布
看了【求助】修复脱掉Armadillo3.05的记事本http://bbs.pediy.com//showthread.php?s=&threadid=14510&perpage=15&highlight=Armadillo&pagenumber=1
我用的是XPSP2,应该是跨平台的问题.


你理解错了 跨平台的问题

如果我的脱壳文件无法在你那运行才是 跨平台的问题

你自己的脱壳文件无法运行~~那就是你脱壳或者修复出问题了。。

呵呵~~
2005-7-13 22:43
0
雪    币: 210
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
才接触 Armadillo ,找论坛里的每个有关Armadillo的都试了下,
结果没有一个是很顺利的用在我调的程序上。
此帖的动画很好,给我很大的帮助,虽说按帖上的方法也没搞定,但至少我知道该如何正确的到OEP和FixDump 谢谢。收藏。。。
2005-11-29 09:37
0
雪    币: 61
活跃值: (160)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
14
2005-11-29 09:46
0
雪    币: 208
活跃值: (40)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
15
强,用这个方法脱单进程的不到5分钟就搞定了。
不过我有一个和下面的相反得问题,我脱得一个程序也是Delphi写得,但是最后一个Loadlibrary也还是MSVBVM60.DLL,按理说delphi程序是不需要调用这个dll的,我脱掉的程序里输入表里也没有这个dll,是否系统中的其他库要调用这个VB的dll?或者Armadillo的壳本身要调用这个dll?

最初由 sailor 发布

0012C280 00C15351 /CALL 到 LoadLibraryA 来自 00C1534B
0012C284 0012C3BC \FileName = "MSVBVM60.DLL" //动态库
0012C288 00000002

........
2005-11-30 12:57
0
雪    币: 513
活跃值: (2258)
能力值: ( LV9,RANK:2130 )
在线值:
发帖
回帖
粉丝
16
这种方法不通用,因版本加壳选项而异
2005-11-30 13:11
0
雪    币: 217
活跃值: (61)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
17
到魔法跳转后,为什么不直接修改magic jmp ,然后到达oep,而要重新再来一次呢?
2005-11-30 20:48
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
Aramdillo 很历害,所以要用硬件断点来重新运行一次,不然就可能会飞了
2006-2-18 07:54
0
游客
登录 | 注册 方可回帖
返回
//