首页
社区
课程
招聘
[原创]DOTNET动态调试破解Spoon,及MSI安装包文件替换技术
2011-9-25 00:05 67029

[原创]DOTNET动态调试破解Spoon,及MSI安装包文件替换技术

2011-9-25 00:05
67029
标 题: DOTNET动态调试破解Spoon,及MSI安装包文件替换技术
作 者: xiaolu
时 间: 2011-09-24
链 接: http://bbs.pediy.com/showthread.php?t=140557

     提到Spoon可能大家还会感到陌生,但是如果提及XenoCode那么研究过DOTNET的人应该都知道吧。Spoon的前身就是XenoCode,虽然没有了PostBuild这个混淆软件,但是虚拟化技术仍然在完善,Spoon可以让DOTNET、JAVA和Flash程序脱离Framework在电脑上独立运行。最新的spoon已经可以支持DOTNET4.0了。
    网上破解Spoon的教程几乎没有,有的也只有Danny_Su直接提供的破解版本。而我最为羡慕的就是Danny提供的版本中拥有原版安装界面。经过几天的研究,终于实现了此功能,特分享给大家。
    首先可以利用NETUNPACK获得DOTNET的Assembly文件,而可以利用Ollydbg来获得非托管文件。早在XenoCode时代,网上就有了视频教程。获得脱壳的文件后,我们将使用一些其他的工具来替代传统的Reflector进行追踪。
    首先出场的是初级DOTNET调试软件DILE。先运行Spoon,然后使用DILE的Attach功能来附加到Spoon的进程上。

附加成功后,选择Spoon Studio中菜单中的Install License Certificate

在弹出的对话框中不填写任何东西,直接点击确定,结果Spoon系统内部出抛出异常,而此时的DILE会捕获这个异常。

DILE会停在上图的代码处,然后我们选择Call Stack Panel,就可以查看引起这个异常时哪里调用的了,然后我们双击上图中圈出的类。
进入这个Spoon.Common.Accounts.X0615e395e52a99d0::_x5d487333ced49b69类后,我们按F9设置一个断点。按F5让程序跑飞后,我们回到Spoon再次输入证书。这次我们不填空了,而是直接输入Danny以前的破解版的License

点击OK后,程序会中断在我们前面设置的断点处。

按F10单步,一路下来,并随时注意观察IL代码,灵活运行F11和F12单步调试能力,很快就可以定位到下图的类中。(具体怎么找到,就要看各位平时的调试能力了,多练习就会很快定位)

这个时候ILSPY上场了,找到Spoon.Common.Accounts.dll的类x0615e395e52a99d0和方法x22ab5dfa6f12e902名,发现这个方法是有一个重载,如下图所示只要将这个方法的返回值全部设置为true就可以了。

我们再将ILSPY的反编译的语言设置为IL,那么就可以看到这个方法的RVA位置。

打开CFF Explorer,将Spoon.Common.Accounts.dll文件拖入到该工具中,首先找到强名的相关表,发现居然没有强名验证,这样我们破解就更简单了。

在Address Converter中输入前面我们找到的RVA地址0x4a90,我们就快就可以定位Hex地址了。只要在这一段二进制中将返回值设置为true就行了,经常玩DOTNET破解的就应该知道只需要将二进制16修改为17就行了。我们找到这段IL代码中的五个16,然后全部修改为17后保存即可。

重新使用ILSPY打开,我们发现,流程已经更改了。

      我们重新注册,发现注册成功了,新建一个文件试一试,也没有提示过期了。破解到此已经结束,是不是很简单。破解完毕了,这并不是我们的终极目标,为了保持原汁原味,我们决定还将此文件打包回去。
    利用我们破解的程序将Spoon这么多的文件再打包成一个文件,将StartFile设置为Studio.exe,在Runtime设置中,我们设置为DOTNET3.5 SP1,打包结束后,我们获得了一个大小为121兆左右的单一Studio.exe文件。

    现在我们应该想办法将这个文件替换到Spoon原版安装包中。我们需要三个程序:MsiDb.exe,Orca,CABARC.EXE。
1、使用Orca打开安装包文件。
在左侧找到Media,在右侧记下流文件名叫做#disk1.cab,这个压缩包将在第2步用到。

2、使用MsiDb来提取这个cab文件。执行cmd命令:
msidb -x disk1.cab -d Setup-9.4.1860.0.msi
获得压缩文件disk1.cab

这个时候可以直接使用winrar进行解压缩。发现有三个文件 VAStudio.exe,Studio.chm,XStudio.exe其中VAStudio.exe就是我们要替换的文件。我们将破解的Studio.exe 更名为VAStudio.exe 替换原版文件。我们在执行下面的命令来重新制作cab压缩包:
cabarc -m LZX:21 -r N disk1.cab "disk1\*"
3、cab压缩包制作好后,我们再使用MsiDb.exe将新的压缩包替换进去。首先删除原MSI文件中的disk1.cab文件流:
msidb -k disk1.cab -d Setup-9.4.1860.0.msi
再次,添加新的的disk1.cab文件:
msidb -a disk1.cab -d Setup-9.4.1860.0.msi
这时候,新的安装包就制作好了。我们测试一下,果然新的安装包既保持了原版风味,而且是破解版本。

文中提到的软件地址:
Spoon:http://www.spoon.net/Studio/
DILE:http://sourceforge.net/projects/dile/files/DILE/
CFF Explorer: http://www.ntcore.com/exsuite.php
MsiDb.exe,Orca,CABARC.EXE 可以自己Google之。
欢迎大家和我联系 chenxiaolu2012@gmail.com

文章最后:感谢BF给我的技术支持。是他将我带入了DOTNET破解的神奇领域。

[培训]《安卓高级研修班(网课)》月薪三万计划,掌握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法

上传的附件:
收藏
点赞5
打赏
分享
最新回复 (63)
雪    币: 2879
活跃值: (1076)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
yjd 2011-9-25 00:36
2
0
应该不是以前经常黑站的那个xiaolu吧?
雪    币: 5542
活跃值: (16520)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
wusha 2011-9-25 01:28
3
0
支持MM,可惜已有BF
雪    币: 192
活跃值: (10)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
沙加 1 2011-9-26 09:30
4
0
哎,好贴没人顶啊
雪    币: 149
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
cnlcg 2011-9-26 10:14
5
0
好文章,特别是打包修改部分(我脱不了spoon的native壳)

我这里的MsiDb.Exe是图形界面的,导出的是Media.idt格式;用命令行加参数可以到处cab文件

我是在系统盘上搜索到的,好像安装了installer 都会有的

msidb -k disk1.cab -d Setup-9.4.1860.0.msi 原文件大小没有变化呀,谁试了吗?
雪    币: 43
活跃值: (161)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
pushebp 2011-9-26 10:36
6
0
好文章 图文并茂,还给出了工具的下载地址。
问下楼主是女的吗?了不起啊。
雪    币: 716
活跃值: (162)
能力值: ( LV9,RANK:250 )
在线值:
发帖
回帖
粉丝
elance 6 2011-9-26 19:46
7
0
学习.net调试,谢谢分享
雪    币: 122
活跃值: (42)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
chenxiaolu 1 2011-9-26 20:00
8
0
没啥了不起的呀,我好多都不懂哦,只能靠工具,况且我男友在微软专门测试.net的,只是跟他学了一点皮毛而已!
雪    币: 226
活跃值: (1289)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
hpphpp 2011-9-30 15:38
9
0
楼主在吗,我是昨晚你回复的那个帖子的楼主,有问题想请教啊,看见的话能加以下qq:1042209251吗,我看见你在线,私信和留言板都得不到回复啊
雪    币: 1137
活跃值: (10)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
dreamzgj 2 2011-9-30 15:51
10
0
谢谢楼主分享...很好的文章,学习了
雪    币: 122
活跃值: (42)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
chenxiaolu 1 2011-9-30 16:11
11
0
仅仅这样操作的话原文件是没有变化的哈,没有实质性删除,仅仅是去掉流关联,如果再用Orca另存一下就会变小了。不过没有这个必要,因为当你执行添加相同的文件流时候,文件会重新替换,先变大,再自动变小,很神奇的。
雪    币: 122
活跃值: (42)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
chenxiaolu 1 2011-9-30 16:14
12
0
干吗要问我啊,我是小菜啊。国庆要出游,木有空。问crackdung啊,还有楼上几位都是DOTNET解密高手
雪    币: 504
活跃值: (10)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
crackdung 2011-9-30 20:59
13
0
分解Spoon的打包程序,是秒殺,,其實它就是打包文件,分解后就能直接使用,要怎樣破解都可以了,同時也沒有秘密。。。

這樣你還敢用Spoon?
雪    币: 122
活跃值: (42)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
chenxiaolu 1 2011-10-1 09:22
14
0
crackdung说的太对了,现在的Spoon只适合用于打包文件,让其脱离Framework,如果用于加密的话,那就太弱了。
雪    币: 430
活跃值: (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
vbcode 2011-10-2 16:03
15
0
牛人一路一路啊。只能远观了。
雪    币: 384
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
natyou 2011-10-15 10:20
16
0
好帖子,来晚了,学习还是必须的
雪    币: 504
活跃值: (10)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
crackdung 2011-10-16 08:28
17
0
對於一般人來說也不容易,如果包裝了資源文件和一些配置文件,總之不是dll的文件,目前那些脫殼機是無效,
例如:NETUnpack,DotnetDumper,net generic unpacker,TheXenocodeSolution,netZUnpacker
或者內存轉存工具 PETools,WinHex
如果有人有興趣,我可以給你一個帶資源文件的壓縮文件給你試試
但是我能秒殺它
雪    币: 122
活跃值: (42)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
chenxiaolu 1 2011-10-17 18:11
18
0
我没有尝试过,不知道能否破解,不过你挺厉害的啊,向你学习!有空多教教我们啊!
雪    币: 504
活跃值: (10)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
crackdung 2011-10-17 20:25
19
0
New Folder.rar

你們可以試試看是否能分解出來,解壓出來應該是:
上传的附件:
雪    币: 2940
活跃值: (3487)
能力值: (RANK:215 )
在线值:
发帖
回帖
粉丝
china 5 2011-10-17 21:23
20
0
希望能多发表写动态调试.net程序的文章和例子。
雪    币: 122
活跃值: (42)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
chenxiaolu 1 2011-10-18 21:02
21
0
大侠,看看我解压的对不对。

我投机取巧了,有几个配置文件直接在虚拟目录下就找到了。 求正解?

C:\Documents and Settings\Administrator\Local Settings\Application Data\Xenocode\Sandbox\ViewerSvg\2.9.4299.37132\2011.10.09T19.21
\Virtual\SXS\MyApplication.app@1.0.0.0

C:\Documents and Settings\Administrator\Local Settings\Application Data\Xenocode\Sandbox\ViewerSvg\2.9.4299.37132\2011.10.09T19.21\Virtual\SXS\Manifests
上传的附件:
雪    币: 451
活跃值: (78)
能力值: ( LV12,RANK:470 )
在线值:
发帖
回帖
粉丝
zhuwg 11 2011-10-19 18:38
22
0
围观dotnet牛人
学习学习
雪    币: 83
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
atrm 2011-10-20 00:01
23
0
是否能破解它
雪    币: 563
活跃值: (95)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
lixupeng 2011-10-20 00:23
24
0
好方法收下 谢谢!
雪    币: 799
活跃值: (1763)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
老伙计 2011-10-21 23:19
25
0
思路清晰,描述到位,难得的好文章,读后很受启发,多谢楼主的奉献。
    也想实际体验一下此软件的逆向,但是,不会对“Studio.exe”解包,教程里面也没有交代,根本无从下手。相信对多数Cracker而言,这也同样是一个巨大的障碍。如果不太麻烦的话,想请楼主补充这部分的内容,谢谢!
游客
登录 | 注册 方可回帖
返回