loopg 发表于 2022-3-8 15:53

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

本帖最后由 loopg 于 2022-3-8 16:59 编辑

# 查壳
Dotfuscator,同时字符串被混淆了,见下图。


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

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

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

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

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

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

浮夸丶 发表于 2022-3-10 01:09


lvbuqing 发表于 2022-3-9 17:25
gutter: true">de4dot.exe E:\xxxx\xxxxx --strtyp

最好说明一下xxxx是什么东西

xxx是指的程序路径,de4dot strtyp命令,在github上有说明

vipcrack 发表于 2022-3-8 21:33

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

lvbuqing 发表于 2022-3-8 16:27

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

loopg 发表于 2022-3-8 17:00

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

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

redapple2015 发表于 2022-3-8 17:16

大神的文章解决我一下问题,支持一下

彭于晏丶 发表于 2022-3-8 18:30

大佬666666

冷冷的风 发表于 2022-3-8 18:57

多谢分享,辛苦了

任逍遥 发表于 2022-3-8 20:03

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

loopg 发表于 2022-3-8 20:28

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

啥神秘代码

zhangsir95 发表于 2022-3-8 20:34

有些壳都脱不了的怎么搞,我有个就搞不懂是什么 壳,放弃了,大佬有没有兴趣挑战一下?

H102188 发表于 2022-3-8 20:37

萨达萨达撒大撒多撒多撒多撒多撒
页: [1] 2 3 4
查看完整版本: .NET 某rdp工具 Dotfuscator混淆字符串还原