吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 7548|回复: 17
收起左侧

[Android 原创] C# DLL 函数名简单混淆后的还原(某烂尾电视出的游戏为例)

[复制链接]
meiercn 发表于 2019-7-7 02:23
没接触过所以一开始想的太复杂了 其实很简单....
先常规方法 DUMP出DLL
QQ截图20190707020749.jpg
啥也没改 就只是混淆了下函数名...直接就可以打开..
-----------
修复:
选择任意MONO 函数只要参数有  MonoMethod MonoClass MonoImage都行..
因为从MonoMethod  可以取到MonoClass  从 MonoClass就可以取到 MonoImage
取到MonoImage  将MonoImage的 heap_strings DUMP出来 写回 DUMP出的DLL就可以了.
22.jpg
之所以会还原的原因好像是 混淆是后期处理的.为了兼容反射.所以会进行还原
还原后:
3.jpg

免费评分

参与人数 5吾爱币 +10 热心值 +2 收起 理由
小白玩机 + 1 希望出一个保护DLL方案
qtfreet00 + 6 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
bet + 1 没看懂,能详细说说不
itmaple + 1 我很赞同!
jgs + 1 + 1 谢谢@Thanks!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

 楼主| meiercn 发表于 2019-7-8 16:51
dll是不可能丢出来的。。因为论坛不让。
再有 这个真的很简单。
用 cff explorer 打开任意一个 .net dll
在.net目录下能看到 #Strings  .net dll所用到的字符都在这里了。

至于为什么直接DUMP出来的DLL 是混淆的。但是读取heap_strings (也就是cff explorer中看到的 #Strings )却是还原后的。
猜测是(达到目的就没继续看了):
Mono加载DLL:mono_image_open_from_data_with_name->mono_image_open_from_data_internal
然后 new了一个MonoImage并将加载的DLL传了过去。
然后调用没导出的函数:do_mono_image_load 进行了一些初始化操作。。猜测是在这里面还原了 #Strings 表

将  #Strings 保存出来后。不想算位置就直接用cffexplorer 打开混淆后的DLL再用WINHEX 打开 保存出来的表。复制16进制 。再利用cff explorer的写入功能 写回去。
Hi.abc52 发表于 2019-7-8 19:00
希望具体详细的分析。                               

还有某烂尾电视出的游戏 是什么游戏?                           
lyghost 发表于 2019-7-7 07:54
1sina 发表于 2019-7-7 08:33
看不懂系列 小白路过
XXTK 发表于 2019-7-7 10:29
表示没有看懂,如果细化一下,再丢出DLL就好了
JavaSB 发表于 2019-7-7 15:27
谢谢分享
gaofan2017 发表于 2019-7-7 16:02
收下了,以后看
大白痴先生 发表于 2019-7-7 21:32
楼主可以讲解的稍微详细一点么,完全看不懂呀,谢谢啦
凶狠的小白免 发表于 2019-7-7 21:38
dnspy 传说比ilspy还要强
搜索曾经的回忆 发表于 2019-7-7 23:51
看不懂。。。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-24 21:35

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表