首页
社区
课程
招聘
[原创]被CodeVeil加密的.net程序的dump与修复
发表于: 2007-2-22 17:18 14113

[原创]被CodeVeil加密的.net程序的dump与修复

2007-2-22 17:18
14113

2007新年,写此文和大家共同学习,并希望更多朋友一同研究.net软件安全课题。这次研究的对象是MuvAudio,这是一个.net软件,应该用得是CodeVeil加密,本文里涉及的内容包括脱壳,手动修复,后续工作留给读者了(定位关键代码,爆破+Keygen,因为有网络验证)。
    软件的下载地址是:045K9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8Y4N6%4N6#2)9J5k6h3#2#2N6X3q4#2k6r3W2G2i4K6u0W2j5$3!0E0i4K6u0r3i4@1f1K6i4K6R3H3i4K6R3J5i4@1f1#2i4@1u0m8i4K6W2r3i4@1f1^5i4@1q4r3i4K6W2p5i4@1f1@1i4@1t1^5i4K6S2p5i4@1f1#2i4@1p5@1i4K6W2m8i4@1f1^5i4@1q4r3i4@1t1@1i4@1g2r3i4@1u0o6i4K6S2o6i4@1f1@1i4@1t1^5i4K6S2n7i4@1f1&6i4K6W2p5i4@1p5J5i4@1f1#2i4@1u0o6i4K6R3H3i4@1f1#2i4@1p5%4i4K6S2n7i4@1f1K6i4K6R3H3i4K6R3J5
    拿到手先运行,看一下注册验证的方式,是输入用户名和激活码。用户输入错误时,会有提示。用Reflector载入,显示没有CLR头,是个本地软件。



    用Peid查壳是UPolyX,记得以前看CodeVeil加密的软件也是显示这个壳,这个软件也是。我在《加密与解密》第3版中的.net章节里详细描述了CodeVeil的特点(当然,目前还没出版),这里简单说一下。CodeVeil用本地代码对.net的启动和JIT进行了包装,不过它最大的弱点是整体加密,整体解密,也就是说,在某一时刻内存中存在全部解密完成的IL代码,这便是我们dump的时机。因此第一步,便是dump。
    运行MuvAudio,随后用OllyDbg进行Attach,下断点在7906E7F4,这是.net framework 2.0中JIT函数的地址。随后点击任一个尚未运行过的方法,这里我们点击注册码输入窗口的Activate按钮。中断后,就可以进行dump了。



    不了解为什么下中断在7906E7F4的请参考我以前的文章,也可以进行验证,验证的方法如下:注意中断时椎栈中的第四个参数:0013E648,显示该处数据如下,其中黄色高亮的值代表该方法的IL代码和大小。



    11010FFC指向原文件的.text节,将此时的数据与原文章处的数据对比,发现数据已经改变,这便是解密过的IL代码。扯远了,这些问题都在以前的文章中讲过,大家自己看吧。下面准备dump。
    运行NTCore小组的Explorer Suite软件中的Task Explorer,选择MuvAudio后dump PE,保存为MuvAudio2_Dumped.exe。再试一下用ildasm(或者Reflector)载入这个PE文件,仍然显示没有CLR头。当然,dump的PE仍然用的原被加壳PE的头,那个头是本地的,因此需要修复。在《加密与解密》第3版中我介绍了两种半自动的方法,不过有时不成功,这里介绍全手动修复过程,在工具修复失败时,手动是最保险的。这里要求对.net的PE结构有一定了解。(OllyDbg的任务也告一段落,可以关闭了。)



    首先修复的是数据目录中的项,CLR头的具体结构就不再赘述,改为偏移为0x2008,大小为48即可。



    下面是输入表的修正。大家知道.net可执行exe中本地引入表只引入了mscoree.dll中的_CorExeMain,修复此项时可以参考别的.net Exe文件的数据值,主要是数据目录中的Import Table和IAT项。
    此时的IAT为0x2000,大小为8,这是正确的数值,指向了.text的最初始8个字节,不过该处的数据是错误的。



    应该修改为如下所示:



    0019EBC0指向哪儿呢?应该指向_CorExeMain的前两个字节处,在MuvAudio2_Dumped.exe中来到0019EBC0处,正好指向了_CorExeMain字符串。
    下面是数据目录中的Import Table项,0019EB90,大小大一点无所谓,就60吧。这里的引入表结构与win32下完全相同,不清楚的请查阅相关资料。





    到这里,修正完毕。再用Reflector或者ildasm载入一下,OK,可以正常反编译了。下面的工作大家都知道,搜索关键代码,写出keygen或者进行patch。



    不过这时的程序不能正常运行,要运行很简单,用ildasm编译一下,再用ilasm编译一下既可。附件中提供刚刚dump和文件,修正过的文件,以及最终用ilasm重新编译后的可执行文件,大家可自行对比。
    在进行任何代码修改时,不要忘了将强名称的代码删除掉。


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

收藏
免费 7
支持
分享
最新回复 (11)
雪    币: 5275
活跃值: (496)
能力值: (RANK:1170 )
在线值:
发帖
回帖
粉丝
2
这里是附件,包含三个exe文件:dump后的,修正的,重新编译的。

NND,传不上来,只能发到live-share了

f85K9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8Y4N6%4N6#2)9J5k6h3I4A6N6X3g2Q4x3X3c8K6K9r3q4J5k6g2)9J5k6h3y4G2L8g2)9J5c8X3k6A6L8r3g2K6i4K6u0r3x3e0j5K6z5o6x3@1i4K6u0r3e0i4g2$3b7i4g2V1K9h3)9J5i4K6u0W2M7X3q4J5i4K6u0W2K9s2c8E0L8l9`.`.
2007-2-22 17:28
0
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
图文讲解 真是精彩
2007-2-22 19:33
0
雪    币: 263
活跃值: (10)
能力值: ( LV9,RANK:250 )
在线值:
发帖
回帖
粉丝
4
学习的说,可是 .NET 的我一个都没搞过,真的菜啊
2007-2-22 22:13
0
雪    币: 191
活跃值: (351)
能力值: ( LV9,RANK:450 )
在线值:
发帖
回帖
粉丝
5
《加密与解密》第3版

这个啥时候上市?
2007-2-23 09:59
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
28eK9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8Y4N6%4N6#2)9J5k6h3I4A6N6X3g2Q4x3X3c8K6K9r3q4J5k6g2)9J5k6h3y4G2L8g2)9J5c8X3k6A6L8r3g2K6i4K6u0r3x3e0j5K6z5o6x3@1i4K6u0r3e0i4g2$3b7i4g2V1K9h3)9J5i4K6u0W2M7X3q4J5i4K6u0W2K9s2c8E0L8l9`.`.

老大我下不下来哈
2007-2-23 10:23
0
雪    币: 7350
活跃值: (3858)
能力值: (RANK:1130 )
在线值:
发帖
回帖
粉丝
7
过年还在搞这东西,辛苦了~
2007-2-23 11:25
0
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
过年还如此努力真是敬佩
2007-2-23 14:01
0
雪    币: 370
活跃值: (15)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
9
.net是越来越看不懂了,正如当初面对pe格式一样茫然,
还是得把基础打牢
2007-2-23 14:12
0
雪    币: 5275
活跃值: (496)
能力值: (RANK:1170 )
在线值:
发帖
回帖
粉丝
10
忘了补充一句,CodeVeil加密的软件用通用脱壳机不好使,因为在内存中的PE结构不是合法.net PE结构。所以可以用静态解密或者像文章中说的那样脱。

汗,过年没整啥,天天喝得大醉,一醉解千愁啊!
2007-2-23 20:31
0
雪    币: 58782
活跃值: (21875)
能力值: (RANK:350 )
在线值:
发帖
回帖
粉丝
11
最初由 tankaiha 发布
这里是附件,包含三个exe文件:dump后的,修正的,重新编译的。

NND,传不上来,只能发到live-share了

994K9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8Y4N6%4N6#2)9J5k6h3I4A6N6X3g2Q4x3X3c8K6K9r3q4J5k6g2)9J5k6h3y4G2L8g2)9J5c8X3k6A6L8r3g2K6i4K6u0r3x3e0j5K6z5o6x3@1i4K6u0r3e0i4g2$3b7i4g2V1K9h3)9J5i4K6u0W2M7X3q4J5i4K6u0W2K9s2c8E0L8l9`.`.


感谢tankaiha ,转份本地收藏:
http://bbs.pediy.com/upload/bbs/39953/MuvAudio2.rar
2007-2-23 21:08
0
雪    币: 167
活跃值: (1574)
能力值: ( LV9,RANK:250 )
在线值:
发帖
回帖
粉丝
12
.net的文章 收藏 保存~~
2007-2-24 20:48
0
游客
登录 | 注册 方可回帖
返回