.NET 某rdp工具 Dotfuscator混淆字符串还原

查看 141|回复 11
作者:loopg   
查壳
Dotfuscator,同时字符串被混淆了,见下图。


查壳.png (36.09 KB, 下载次数: 0)
下载附件
2022-3-8 16:56 上传



不脱直接dnspy.png (310.3 KB, 下载次数: 0)
下载附件
2022-3-8 16:56 上传

字符串还原
字符串还原应在de4dot之前,貌似de4dot也带还原字符串功能,这点未解,正常拖入字符串还原成了乱码,所以产生了现在手动还原的研究。
直接不处理字符串使用de4dot脱壳(字符串乱码):


脱壳后.png (402.44 KB, 下载次数: 0)
下载附件
2022-3-8 16:56 上传

Dotfuscator字符串还原能在dnspy里查到调用函数和传入参数(每个地方可能不一样,传入int不同,或调用的函数不同),如图。


字符串解密方法.png (160.63 KB, 下载次数: 0)
下载附件
2022-3-8 16:56 上传

所以我们要做的就是想办法根据函数头上定义的int变量(类似于字符串还原的偏移吧,且他有多个还原函数 通常为a b命名, 偏移不一致),拿出来还原函数,跟入还原函数:


字符串解密函数体.png (19.66 KB, 下载次数: 0)
下载附件
2022-3-8 16:57 上传

放入C# 测试(这里要注意Intptr类型无法互相使用加法运算,要先转int。 所以直接抄过来会报错。 有错则修复即可)。 如图


字符串解密复现.png (41.53 KB, 下载次数: 0)
下载附件
2022-3-8 16:57 上传

使用de4dot解密字符串
这里既然拿到字符串的加密函数,那么我们取出地址:0600002F  注意不是0x0600002F!
然后使用命令:
[Asm] 纯文本查看 复制代码de4dot.exe E:\xxxx\xxxxx --strtyp delegate --strtok 0600002F
即可得出解密且脱壳后的程序


解密成功后.png (164.61 KB, 下载次数: 0)
下载附件
字符串还原后
2022-3-8 16:56 上传

完结
完成,待下一步尝试!
希望有更简洁或者文章里有错误的地方大家可以交流,感谢。
软件名称等已打码。

字符串, 下载次数

浮夸丶   

lvbuqing 发表于 2022-3-9 17:25
gutter: true">de4dot.exe E:\xxxx\xxxxx --strtyp
最好说明一下xxxx是什么东西
xxx是指的程序路径,de4dot strtyp命令,在github上有说明
vipcrack   

学习了一个利用自身函数来解密字符串的方法,感谢!
lvbuqing   

大哥是用de4dot脱了一个壳子么
loopg
OP
  


lvbuqing 发表于 2022-3-8 16:27
大哥是用de4dot脱了一个壳子么

de4dot本身就能脱这个壳,只不过字符串需要处理一下
redapple2015   

大神的文章解决我一下问题,支持一下
彭于晏丶   

大佬666666
冷冷的风   

多谢分享,辛苦了
任逍遥   

这一窜神秘的代码是什么意思?
loopg
OP
  


任逍遥 发表于 2022-3-8 20:03
这一窜神秘的代码是什么意思?

啥神秘代码
您需要登录后才可以回帖 登录 | 立即注册

返回顶部