吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1112|回复: 4
收起左侧

[讨论] .net平台代码反编译相关问题

[复制链接]
wujiayang2007 发表于 2023-5-10 22:45
对于反编译C#中Dynamic方法时,dnspy会自动生成CompilerGeneraed的方法,对于工程还原造成一定的麻烦(这个工程里面有很多用dynamic)有什么自动化工具,或者好方法(不是一个一个手动改)能帮忙快速解决这个问题吗?

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

gc588 发表于 2023-5-12 10:59
在C#中,使用`dynamic`类型可以方便地实现动态绑定和运行时调用。然而,由于`dynamic`类型的特殊性质,当反编译包含`dynamic`类型的程序集时,会产生大量的`CompilerGenerated`方法,这些方法并不是原始代码中的部分,而是编译器生成的辅助方法,用于支持`dynamic`类型的运行时特性。

为了解决这个问题,可以采用以下两种方式:

1. 使用Resharper

Resharper是一款常用的Visual Studio插件,提供了非常强大的代码分析和重构功能,可以帮助开发者快速清理和优化代码。在Resharper 2021.1版本以后,新增了一个名为“Reduce Dynamic Generated Members”的功能,可以自动将许多`CompilerGenerated`方法处理成标准的方法,从而使得反编译后的代码更加清晰易读。具体操作方法如下:

(1)打开Visual Studio中的Resharper选项页,选择“Code Editing” -> “C#” -> “Code Cleanup”。

(2)创建一个新的代码清理方案,选择默认配置文件,并勾选“Reduce dynamic generated members”选项。

(3)应用新的代码清理方案到当前解决方案中的所有项目。

2. 使用ICSharpCode.Decompiler

ICSharpCode.Decompiler是一种开源的.NET反编译器,支持C#和VB.NET等多种语言,可以方便地将.NET程序集反编译成可读性较高的C#源代码。对于`dynamic`类型产生的`CompilerGenerated`方法,ICSharpCode.Decompiler提供了一个名为“Inline Variables”的选项,可以将这些方法中使用的变量直接替换为实际的值,从而将这些方法合并到主代码块中,使得反编译后的代码更加清晰易读。

具体操作方法如下:

(1)下载并安装ICSharpCode.Decompiler。

(2)打开反编译工具,选择要反编译的程序集,点击“开始反编译”按钮。

(3)在反编译过程中,勾选“Inline Variables”选项。该选项会使得反编译器将`CompilerGenerated`方法中使用的变量都替换为实际的值,从而合并这些方法到主代码块中,使得反编译后的代码更加清晰易读。

总之,以上两种方案都可以帮助开发者快速处理含有`dynamic`类型的程序集反编译产生的`CompilerGenerated`方法,使得最终反编译结果更加清晰易读。
 楼主| wujiayang2007 发表于 2023-5-12 13:19
gc588 发表于 2023-5-12 10:59
在C#中,使用`dynamic`类型可以方便地实现动态绑定和运行时调用。然而,由于`dynamic`类型的特殊性质,当反 ...

谢谢,我知道了
ownname 发表于 2023-5-19 02:08
gc588 发表于 2023-5-12 10:59
在C#中,使用`dynamic`类型可以方便地实现动态绑定和运行时调用。然而,由于`dynamic`类型的特殊性质,当反 ...

您好我搜了谷歌的ICSharpCode.Decompiler, 发现他现在叫lLSPY, 是这个软件吗? 我总是感觉理解不太正确吧.还希望能指点一下.
Trouble12138 发表于 2023-7-22 01:42
我也想学习一下反编译  但是不知道用啥工具
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

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

GMT+8, 2024-11-25 04:47

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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