首页
社区
课程
招聘
SWF Decompiler MX 2005(arm4)脱壳
发表于: 2005-4-25 10:31 11948

SWF Decompiler MX 2005(arm4)脱壳

2005-4-25 10:31
11948

Sothink SWF Decompiler MX 2005a Build 50318 (Arm 4)脱壳
注:网上很早就有破解版,但有加壳压缩了还有1.9M多,原因你也看一下,脱壳后更利害20多M,不能跨平台,懒得用

我也来一下,什么,自己脱壳!我自己优化后(不是最优)2M多点加壳才695K,再脱壳也不是这个20多M的天文数字

我不会提供程序,想练手可以自己到网上找一下这个版本吧

【脱壳保护】:双进程调试保护 CopyMEM2,IAT乱序,Stolen Code远程跳转,CC,壳注册保护

【脱壳难度】:熟悉了解了就不是难的事。做成脚本运行,就是好玩!

【作者声明】:写此文只是感兴趣,同时我也很想借此机会锻炼一下自己的语文(主要原因),经常是人家听不懂,说话又结巴的。失误之处敬请诸位大侠赐教

【调试环境】:WinXP、OllyDbg1.10_Diy(我喜欢玩自己DIY的)_Anti、PEiD、LordPE、ImportRec

一、探望OEP

PEid0.93 查得是 Armadillo 3.78 -> Silicon Realms Toolworks

【OD设置】:忽略所有异常,同时忽略异常范围勾上:
          C000001D(ILLEGAL ISTRUCTION)
          C0000005(ACCESS ViO)
          C000001E(INVALID LOCK SEQUENCE)

OD载入停在入口处,隐藏好调试标记

005C5000 >pushad               //停在入口
005C5001  call 005C5006        ; SWFDecom.005C5006
005C5006  pop ebp
005C5007  push eax
005C5008  push ecx
005C5009  bswap edx
005C500B  not edx
005C500D  pushfd
005C500E  not edx
005C5010  bswap edx
005C5012  jmp short 005C5023   ; SWFDecom.005C5023
00D6E613  add esp,18
00D6E616  push eax                           //这个应该是版本号
00D6E617  push 0D96008                       ; ASCII "   <armVersion xsi:type=""xsd:string"">%s</armVersion>",LF
00D6E61C  lea eax,dword ptr ss:[ebp-2200]
00D6E622  push 0
00D6E624  push eax
00D6E625  call esi
00D8C7E5  sub ecx,edx
00D8C7E7  call ecx          //这里估计也是OEP,可能是校验或解码出错跑这吧
00D8C7E9  jmp short 00D8C806
00D8C7EB  cmp edi,1
00D8C7EE  jnz short 00D8C808
00D8C7F0  push dword ptr ds:[esi+4]
00D8C7F3  push dword ptr ds:[esi+8]
00D8C7F6  push 0
00D8C7F8  push edx
00D8C7F9  mov edx,dword ptr ds:[eax+74]
00D8C7FC  xor edx,dword ptr ds:[eax+60]
00D8C7FF  xor edx,dword ptr ds:[eax+2C]
00D8C802  sub ecx,edx
00D8C804  call ecx  //*** 这里是前往OEP 4B2BCD ***//
00D74588  call dword ptr ds:[D92104]         ; kernel32.GetModuleHandleA
00D7458E  mov ecx,dword ptr ds:[D9F67C]      //返回这里
00D74594  mov dword ptr ds:[esi+ecx],eax
00D74597  mov eax,dword ptr ds:[D9F67C]
00D7459C  cmp dword ptr ds:[esi+eax],ebx
00D7459F  jnz short 00D745B7
00D745A1  lea eax,dword ptr ss:[ebp-14C]
00D745A7  push eax
00D745A8  call dword ptr ds:[D9210C]         ; kernel32.LoadLibraryA
00D745AE  mov ecx,dword ptr ds:[D9F67C]
00D745B4  mov dword ptr ds:[esi+ecx],eax
00D745B7  mov eax,dword ptr ds:[D9F67C]
00D745BC  cmp dword ptr ds:[esi+eax],ebx
00D745BF  je 00D746F4                        //传闻很久的Magic Jump,改跳就是啦
00D745C5  xor ecx,ecx
00D745C7  mov eax,dword ptr ds:[edi]
00D745C9  cmp dword ptr ds:[eax],ebx
00D745CB  je short 00D745D3

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 7
支持
分享
最新回复 (18)
雪    币: 301
活跃值: (300)
能力值: ( LV9,RANK:290 )
在线值:
发帖
回帖
粉丝
2
辛苦了,支持。先收藏有空学习
2005-4-25 10:44
0
雪    币: 427
活跃值: (412)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
Stolen Code远程跳转,壳注册保护 ASPR也有,不过挺简单的。
ASPR始终都没有把程序代码放入壳内,表面上有一部分引入代码,引入代码其实多余的。
2005-4-25 11:05
0
雪    币: 898
活跃值: (4039)
能力值: ( LV9,RANK:3410 )
在线值:
发帖
回帖
粉丝
4
辛苦
新版SWF Decompiler没看
2005-4-25 11:07
0
雪    币: 223
活跃值: (106)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
5
好文,等CC。
2005-4-25 14:07
0
雪    币: 234
活跃值: (370)
能力值: ( LV9,RANK:530 )
在线值:
发帖
回帖
粉丝
6
高啊,学习什么时候我也能够分析出来就好了
2005-4-27 19:46
0
雪    币: 214
活跃值: (70)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
7
学习天书
2005-4-27 20:12
0
雪    币: 184
活跃值: (108)
能力值: ( LV9,RANK:410 )
在线值:
发帖
回帖
粉丝
8
要的就是这样的思路分析,往死里顶
2005-4-27 22:50
0
雪    币: 603
活跃值: (617)
能力值: ( LV12,RANK:660 )
在线值:
发帖
回帖
粉丝
9
晕了~
醒了之后再学习!!!  
2005-4-27 23:13
0
雪    币: 229
活跃值: (70)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
10
good!!!
2005-4-27 23:58
0
雪    币: 202
活跃值: (27)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
高人实在太多!
2005-4-28 08:42
0
雪    币: 209
活跃值: (55)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
作者一怒之下新版的不加壳了
2005-4-28 10:11
0
雪    币: 61
活跃值: (160)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
13
好文
2005-4-28 10:51
0
雪    币: 383
活跃值: (786)
能力值: ( LV12,RANK:730 )
在线值:
发帖
回帖
粉丝
14
楼上的兄弟就是爱给人摧水,花些时间实践一下就能懂的,也不是什么天书,只是长了点,比前人应该省了篇幅。
2005-4-28 10:57
0
雪    币: 234
活跃值: (104)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
这个cc保护好生厉害!
2005-4-29 12:41
0
雪    币: 223
活跃值: (106)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
16
脱XP变脸王时按大虾的方法对 Stolen Code 处理总是不成功,Stolen Code内的跳转成功处理,但是代码段的始终搞不定,大虾给点提示?
2005-4-29 12:50
0
雪    币: 383
活跃值: (786)
能力值: ( LV12,RANK:730 )
在线值:
发帖
回帖
粉丝
17
不是对付吧,不会吧,Stolen Code 我的做法应该只是 改其跳转量与自定义的相对应的,处理后的 Stolen Code 必须在入口处 放回自定义的地方,否则是不行的,我懒,要么你跟一下 Stolen Code 的处理过程一遍,再看我的处理;要么按 Fly 的做,不处理,直接 Dump 下来(当然要对应你Dump的程序,是动态的),组装在 Dump 文件里。
2005-4-29 17:44
0
雪    币: 223
活跃值: (106)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
18
增加区段当然没问题。想学大虾BT一下嘛。
2005-4-30 01:43
0
雪    币: 383
活跃值: (786)
能力值: ( LV12,RANK:730 )
在线值:
发帖
回帖
粉丝
19
不要叫我“大虾”,我不是练“虾毛功”的, 叫我兄弟 名字 就可以了;不是BT来的,也类似增加区段,只不过看起来有点顺眼罢了;

我不知你调试的是怎样处理 Stolen Code 的,我没这程序,也不会是下来玩的,我觉得你去跟踪一下它是如何将壳自己计算好“跳转偏移量+地址的表”进行处理,你就会做的,不要硬套别人的,自己要去体会过程,而不是对付结果,另外说吧, Stolen Code 时,代码段是不会有代码的,它是在壳中的一个大块里,你可以看一下它的位置,它会在处理IAT前移动到程序的;你要问人也最好是问同一个对象,无论是不是同一个对象,最好给出你问题的处理过程(当然是详细的好),不然很难跟你对!
2005-4-30 07:34
0
游客
登录 | 注册 方可回帖
返回
//