.Net Reactor 5脱壳教程_.NET_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > .NET > .Net Reactor 5脱壳教程

.Net Reactor 5脱壳教程

 2017/8/20 15:08:44  翼帆  程序员俱乐部  我要评论(0)
  • 摘要:今天别人发来一个.Net的DLL让我脱壳,第一步自然是先扔进de4dot我这个de4dot是集成了Ivancito0z/TheProxy/PC-RET4.9mod/wuhensoft(5.0)各大神修改的版本,无法脱壳,肯定就是新的reactor5加的壳了。我们加上-v参数显示错误在解密资源的时候出错了,我们打开de4dot的源码,找到报错的位置懒的分析原因,直接注释掉,编译de4dot后重新进行脱壳。成功脱壳,打开看看发现字符串未被正确解密。我们再次解密:命令行
  • 标签:.net net 教程 CTO

今天别人发来一个.Net的DLL让我脱壳,第一步自然是先扔进de4dot



我这个de4dot 是集成了  Ivancito0z / TheProxy / PC-RET 4.9mod / wuhensoft(5.0) 各大神修改的版本,无法脱壳,肯定就是新的reactor 5加的壳了。
我们加上 -v 参数显示错误


在解密资源的时候出错了,我们打开de4dot的源码,找到报错的位置

懒的分析原因,直接注释掉,编译de4dot 后重新进行脱壳。

 

成功脱壳,打开看看

发现字符串未被正确解密。
我们再次解密:

命令行(用法和token获取具体参考de4dot帮助)

de4dot SixTow-cleaned.dll --strtyp delegate --strtok 0x060001BA -v


解密后发现字符串依然未解密,我们再回头看解密函数

  01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 class="csharp plain">[Class8.Attribute0(typeof(Class8.Attribute0.Class9<object>[]))]     internal static string smethod_10(int int_5)     {         if (Class8.byte_1.Length == 0)         {             BinaryReader binaryReader = new BinaryReader(Class8.assembly_0.GetManifestResourceStream("pF5NG7nGmlpjNJS2XA.xvDeEZ4QpSKik8SYCO"));             binaryReader.BaseStream.Position = 0L;             byte[] array = binaryReader.ReadBytes((int)binaryReader.BaseStream.Length);             binaryReader.Close();             byte[] array2 = new byte[32];             array2[0] = 177;             array2[0] = 136;             array2[0] = 181;             array2[1] = 96;             array2[1] = 150;


解密是通过资源  pF5NG7nGmlpjNJS2XA.xvDeEZ4QpSKik8SYCO 解密出来的,但是pF5NG7nGmlpjNJS2XA.xvDeEZ4QpSKik8SYCO在de4dot脱壳的时候清理了。

好吧,我们从原程序中将 pF5NG7nGmlpjNJS2XA.xvDeEZ4QpSKik8SYCO 提取出来,并加入 脱壳后的文件(如图)。

再次使用
de4dot SixTow-cleaned.dll --strtyp delegate --strtok 0x060001BA -v
进行解密


发现成功解密。脱壳完成(部分混淆是其它DLL中的,不在此文讨论范围)



欢迎指正。

发表评论
用户名: 匿名