首页
社区
课程
招聘
[分享]自己修改的de4dot专克MaxtoCode
发表于: 2018-10-26 11:12 14983

[分享]自己修改的de4dot专克MaxtoCode

2018-10-26 11:12
14983
大牛们好!

玩.NET逆向的想必都对de4dot有所了解吧。我在de4dot官方源码的基础上潜心研发,终于做出了自己的修改版。(感谢原作者0xd4d)

这个修改版最大的特点,就是增加了对MaxtoCode 3.80-3.87版的支持。已经可以还原字符串和资源,并且可以反混淆除WinForm之外的控制流。

原版的de4dot虽然好,但是对于新版的MaxtoCode支持不足。再次说明了,国外的月亮虽然圆,但还是要我们中国人自己动手,才能丰衣足食。

下载地址:见附件
源码:51bK9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6Y4K9i4c8Z5N6h3u0Q4x3X3g2U0L8$3#2Q4x3V1k6f1K9h3q4F1K9X3W2S2L8#2)9J5c8X3c8W2y4r3c8G2N6q4)9J5c8R3`.`.
温馨提示:源码托管于美国GitHub服务器。

小窍门:如果在使用de4dot的过程中碰到如下错误,只需连续按“忽略”按钮15次,或者在命令行中使用"--dont-rename"选项。


[培训]科锐逆向工程师培训第53期2025年7月8日开班!

最后于 2018-10-26 11:16 被Mr Julius编辑 ,原因: 话题修正为[分享]
上传的附件:
收藏
免费 1
支持
分享
最新回复 (16)
雪    币: 13650
活跃值: (19)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
通知:从MaxtoCode的3.87版以来,似乎MC在每次执行加密的过程中都会更换McKey8C0h密钥。这些密钥都是正确的,只不过每个样本都不同。

因此任何已编译的版本对新版MC都是无效的。我已经开放了密钥的计算源码,用户只能先从Logger.vv()方法中读取样本的密钥,把该密钥写回源码,再重新编译。

如果您对我针对MaxtoCode的de4dot修改版感兴趣的话,您可以关注我在GitHub上的项目更新。网址:a99K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6Y4K9i4c8Z5N6h3u0Q4x3X3g2U0L8$3#2Q4x3V1k6f1K9h3q4F1K9X3W2S2L8#2)9J5c8X3c8W2y4r3c8G2N6l9`.`.
2018-10-30 21:16
0
雪    币: 13650
活跃值: (19)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
用WinHex打开被我修改的de4dot解密后的程序,上效果:


2018-11-9 16:18
0
雪    币: 155
活跃值: (3301)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
ERROR:
ERROR:
ERROR: Hmmmm... something didn't work. Try the latest version.

脱壳还是出现这个问题,不知道是什么问题。谢谢。

最后于 2018-11-15 13:44 被xingbing编辑 ,原因:
2018-11-15 13:44
0
雪    币: 13650
活跃值: (19)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
突破:我编写了GuessXorKey()方法,可以在GitHub查看commit。
MaxtoCode在加密用户字符串时,也使用了异或密码。我使用了穷举法进行破译。如果使用“字符串匹配”选项,速度可以进一步提升。
现在可以自豪的宣布,对于MaxtoCode可预见的更新,修改版de4dot完全支持用户字符串解密
commit详见:11cK9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6Y4K9i4c8Z5N6h3u0Q4x3X3g2U0L8$3#2Q4x3V1k6f1K9h3q4F1K9X3W2S2L8#2)9J5c8X3c8W2y4r3c8G2N6q4)9J5c8X3y4G2L8h3#2A6N6q4)9J5c8X3f1&6j5U0f1K6j5K6u0X3x3K6p5^5j5U0j5%4z5e0x3&6x3o6t1&6x3e0y4S2k6e0p5^5j5K6k6T1j5X3f1$3x3h3p5J5k6e0u0W2j5U0l9`.


2018-11-17 08:33
0
雪    币: 11974
活跃值: (3914)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
支持,试用一下
2018-11-17 10:07
0
雪    币: 413
活跃值: (837)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
7
谢谢,一定要进行支持一下。
2018-11-18 07:25
0
雪    币: 43
活跃值: (193)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
看楼主还写过AU3,同道中人啊
2018-11-18 17:58
0
雪    币: 13650
活跃值: (19)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
共勉共勉,当时用AU3主要是写Windows下的自动化脚本,也算是练练功底吧。
2018-11-18 21:04
0
雪    币: 13650
活跃值: (19)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
编译技术不熟练的同学有福了!
我编写了release.bat编译脚本,可以自动解决NuGet包的依赖项,大大降低了编译的门槛,提高了编译的效率,减少了出错的可能性。

de4dotNuGet依赖项是非常多的,这款脚本可以说是一大神器,方便软件编译的小白使用。
双击编译不再是梦!

脚本详见:
6cfK9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6Y4K9i4c8Z5N6h3u0Q4x3X3g2U0L8$3#2Q4x3V1k6f1K9h3q4F1K9X3W2S2L8#2)9J5c8X3c8W2y4r3c8G2N6q4)9J5c8X3u0D9L8$3u0Q4x3V1k6E0j5i4y4@1k6i4u0Q4x3V1k6J5k6h3I4W2j5i4y4W2i4K6u0W2j5X3q4@1

温馨提示:本脚本依赖于NuGet命令行工具和zip命令行。
2018-12-1 17:12
0
雪    币: 13650
活跃值: (19)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
我编写了编译脚本,可以在Linux系统上编译de4dot
de4dot官方上游增加了对.NET Core的支持,而.NET Core可以在Linux系统上进行交叉编译。
编译脚本详见:160K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6Y4K9i4c8Z5N6h3u0Q4x3X3g2U0L8$3#2Q4x3V1k6f1K9h3q4F1K9X3W2S2L8#2)9J5c8X3c8W2y4r3c8G2N6q4)9J5c8Y4c8J5k6h3g2Q4x3V1k6E0j5i4y4@1k6i4u0Q4x3V1k6n7N6h3W2D9k6l9`.`.
最后于 2018-12-4 20:18 被Mr Julius编辑 ,原因: 修复链接
2018-12-4 20:17
0
雪    币: 13650
活跃值: (19)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
增加了用于安装.NET Core SDK的PowerShell/Bash脚本。

de4dot分支的关于.NET目标框架的更新:

  • 已支持.NET标准2.0
  • .NET Core更新到2.2版
  • .NET框架更新到4.7.2版
2018-12-7 20:47
0
雪    币: 1176
活跃值: (1304)
能力值: ( LV12,RANK:380 )
在线值:
发帖
回帖
粉丝
13
支持一个
2018-12-8 17:47
0
雪    币: 13650
活跃值: (19)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
更新:
  • 增加了自动编译系统cake-build(C# Make)。
  • 配置了GitHub机器人。
  • 增加了持续集成(CI)服务。

To-Do:
  • 修复微软Roslyn代码分析器报告的警告。
2018-12-17 18:41
0
雪    币: 13650
活跃值: (19)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
 混淆器 编码 使用的算法
  Agile.NET   CA5351   DES
  CodeWall   CA5351   MD5
  CryptoObfuscator   CA5351   DES
  SmartAssembly   CA5351   DES
  MPRESS   CA5350   SHA1
  ILProtector   CA5351   MD5

这是警告列表。
这份列表是由微软的NetCore分析器报告的。它指出了每种混淆器所使用的损坏的算法。在你选择混淆器之前或许可以先看看这些警告。

更新:
  • 修复.NET框架兼容模式
  • 增加Azure Pipelines持续集成
  • 修复Roslyn代码分析器进行中
2018-12-31 18:06
0
雪    币: 170
活跃值: (72)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
运行一直报错,按了15次忽略也不行
2019-3-27 14:05
0
雪    币: 292
活跃值: (126)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
17
我测试了下,只有3.77的能解,其他都是 WARNING: Ignore ApplicationException, Could not decrypt methods
这几个样本加密版本都是相同的 EncryptionVersion.V8,相同的Rva900h和McKey8C0h
以下是样本:
57C649CB = Wed, 31 Aug 2016 03:06:51 / V 3.83 完全无解
5766EE37 = Sun, 19 Jun 2016 19:10:47 / V 3.82 完全无解
5655BF0E = Wed, 25 Nov 2015 14:00:46 / V 3.81 接近无解 执行几次 GetBlowfishKey
55043264 = Sat, 14 Mar 2015 13:06:44 / V 3.79 sp1  接近无解 执行几次 GetBlowfishKey
531729C4 = Wed, 05 Mar 2014 13:42:28 / V 3.77 可解
按照你的说法,387以后才每次生成样本是更换密钥,但似乎哪里有问题,还是算必须根据不同样本编写不同的解密算法?

case EncryptionVersion.V8:

decrypters.Add(new Decrypter(new DecryptFunc[] { Decrypt4_v6, Decrypt2_v2, Decrypt3_v6, Decrypt1_v6, Decrypt6, Decrypt8_v6, Decrypt9_v6, Decrypt7, Decrypt10, Decrypt5 }, new uint[] { 0x5166DB4F, 0x51927495 }));

decrypters.Add(new Decrypter(new DecryptFunc[] { Decrypt4_v7, Decrypt2_v2, Decrypt3_v6, Decrypt1_v7, Decrypt6, Decrypt8_v7, Decrypt9_v7, Decrypt7, Decrypt5 }, new uint[] { 0x51413D68 }));

decrypters.Add(new Decrypter(new DecryptFunc[] { Decrypt4_v7, Decrypt2_v2, Decrypt3_v6, Decrypt1_v7, Decrypt6, Decrypt8_v8, Decrypt9_v8, Decrypt7, Decrypt5 }, new uint[] { 0x513D7124, 0x51413BD8 }));

decrypters.Add(new Decrypter(new DecryptFunc[] { Decrypt4_v5, Decrypt2_v2, Decrypt3_v6, Decrypt1_v9, Decrypt6, Decrypt8_v8, Decrypt9_v9, Decrypt7, Decrypt5 }, new uint[] { 0x513D4492, 0x5113E277 }));

decrypters.Add(new Decrypter(new DecryptFunc[] { Decrypt3_v6, Decrypt2_v2, Decrypt4_v8, Decrypt1_v10, Decrypt8_v9, Decrypt9_v10, Decrypt6, Decrypt7, Decrypt5 }, new uint[] { 0x526BDD12 }));

decrypters.Add(new Decrypter(new DecryptFunc[] { Decrypt1_v10, Decrypt4_v8, Decrypt2_v2, Decrypt3_v6, Decrypt6, Decrypt8_v9, Decrypt9_v10, Decrypt7, Decrypt5 }, new uint[] { 0x526BC020 }));

decrypters.Add(new Decrypter(new DecryptFunc[] { Decrypt3_v7, Decrypt2_v6, Decrypt4_v9, Decrypt1_v11, Decrypt8_v10, Decrypt11_v1, Decrypt6, Decrypt7, Decrypt5 }, new uint[] { 0x5296E242, 0x52B3043C }));

decrypters.Add(new Decrypter(new DecryptFunc[] { Decrypt4_v10, Decrypt1_v12, Decrypt3_v8, Decrypt2_v7, Decrypt6, Decrypt8_v11, Decrypt9_v11, Decrypt7, Decrypt5 }, new uint[] { 0x531729C4 }));   //  能解开的在这里有一致的样本

decrypters.Add(new Decrypter(new DecryptFunc[] { Decrypt1_v13, Decrypt4_v11, Decrypt2_v8, Decrypt3_v9, Decrypt6, Decrypt8_v11, Decrypt9_v12, Decrypt7, Decrypt5 }, new uint[] { 0x52B2B2A3 }));

decrypters.Add(new Decrypter(new DecryptFunc[] { Decrypt2_v9, Decrypt3_v10, Decrypt1_v10, Decrypt4_v12, Decrypt8_v12, Decrypt9_v13, Decrypt6, Decrypt7, Decrypt5 }, new uint[] { 0x53172907 }));

break;



作者有没有学习 Maxtocode 解密算法的编写方法?
最后于 2019-7-11 01:04 被lofullen编辑 ,原因:
2019-7-11 01:01
0
游客
登录 | 注册 方可回帖
返回