常用.net反编译工具

1.Reflector 9.0.2

2.JustDecompile2015.3.928.0j

3.ILSpy

4.CS资源文件批量转换工具

base.AutoScaleMode = AutoScaleMode.Font; 方法“InitializeComponent”内的代码由设计器生成,不应手动修改。请移除任何更改,然后尝试重新打开设计器。

处理方法:对所有System.Windows.Forms.命名空间里面的控件需要全命名空间的声明。

示例:base.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;

错误 CS0571 “MySqlCommand.Transaction.set”: 无法显式调用运算符或访问器

列子 :mySqlDataAdapter.set_SelectCommand(mySqlCommand);

改为 mySqlDataAdapter.SelectCommand= mySqlCommand;

错误 CS0571 “MySqlCommand.Parameters.get”: 无法显式调用运算符或访问器

示例:  mySqlCommand.get_Parameters().Clear();

改为mySqlCommand.Parameters.Clear () ;

反编译出来后,用visual sutio打开后就能编辑了,但是有时候会有一些问题。下面总结一下。
1、编译没有问题,运行出现"类型初始值设定项引发异常"
    这主要是在类中使用了两个静态变量,而其中一个静态变量的初始化依赖令一个静态变量,而被依赖的静态变量放在依赖变量的前面,比如下面的代码就会出现这样的问题。

Code
1        private static string SettingFileName = Path.Combine(SettingFolderPath, @"GoogleMusicDesktop/config.xml");
2        public static string SettingFolderPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Personal), "aaaSoft");

问题很好解决,掉个个就解决了。

2、出现无法找到资源文件,如图片等
    这种情况一般是和资源文件的命名如果,请把资源文件命名保持和类一直,重新编译一下就会解决问题,注意需要重新生成,否则就不一定好使了。

3、打开form的时候出现错误
    这个问题,我通过搜索解决了,园子里有一篇文章,我转过来。

转载文章
 用Reflector和FileDisassembler配合反编译.net Windows程序

URL: http://www.cnblogs.com/verygis/archive/2008/12/02/1346072.html

用FileDisassembler反编译Windows Application出现了问题,resx资源文件和cs文件不匹配,项目编译根本通不过,把resx文件修改放入cs文件夹后,虽然运行没有

问题,但是不能直接在窗体设计里面"可视地"修改控件,一来麻烦,二来不直观,那么就应该修改下源代码,使其符合VS2008的源文件布局.

下面总结一下修改的步骤:

1.由于FileDisassembler会给每个命名空间生成一个目录,保存这个空间的源代码,而对于资源resx文件就是直接加在项目目录下,所有要把它放回源码目录下.例如

对于项目文件夹里面的TryAssemb.Form1.resx,首先改为Form1.resx然后移动到TryAssemb目录里面.

2.然后对窗体打开"视图设计器",发现会出现下面的错误:

修改方法就是对所有System.Windows.Forms.命名空间里面的控件需要全命名空间的声明,例如里面 base.AutoScaleMode = AutoScaleMode.Font;就要改成base.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;而TextBox textBox1; 也要改成private System.Windows.Forms.TextBox textBox1;这样VS2008就能识别到这个控件是要绘制在Form上面的.

PS.开始是的时候还以为要像VS一样把Form1拆开成Form1.cs和Form1.Designer.cs.每次是都辛辛苦苦拆开,最后才发现原来根本不需要,^_^.

相信大多数.Net程序员都有使用Reflactor的经历。无论出于什么目的,当用Reflactor反编译托管程序后,还想对其代码加以修改,那么本文所列举的可能是一份有用的参考。

用Reflactor的FileGenerator插件反编译代码后可以得到包括项目文件的源代码,但代码中存在各种问题,一般无法一次编译通过,以下将详谈这些问题:

枚举问题

为了代码可读,可能需要花点时间查阅metadata把int值修改回枚举值,尤其是想利用窗体设计器的,VS2008可能还不理解int值。

属性问题

比如一个叫Names的属性被反编译后,可能还原为的set_Names(names),get_Names()方法,逐个替换可能很慢,可采用正则表达式整体替换。
对于set_Xxx(xxx)方法,可替换
set_{[a-z]*}/(

/1 = (
对于get_Xxx()方法,可替换
get_{[a-z]*}/(/)

/1
然后,再修复个别被误换的方法。

委托和回调函数问题

一般会被还原为add_Xxx(MethodsName)方法,需要改为 += MethodsName

资源问题

需要使用.Net Framework SDK 下的 resgen.exe 工具,反编译嵌入资源文件*.resources为*.resx文件,
语法为:ResGen.exe *.resources *.resx,然后将*.resx包含入项目,就会自动和同名的窗体文件*.cs关联,如果没有关联可采用先排除再添加大法,一一搞定。

命名空间问题

如果需要切换到IDE的窗体设计器,而不出错,则还需要在*.cs中添加比如System.Windows.Forms的命名空间前缀。

窗体设计器识别问题

需要把以下代码
ComponentResourceManager manager = new ComponentResourceManager(typeof(ClassName));
替换为
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(ClassName));
窗体设计器才能正常识别。

本文来自CSDN博客,转载于:http://blog.csdn.net/ma_ta/archive/2008/12/11/3497532.aspx

 用Reflector和FileDisassembler配合反编译.net Windows程序 收藏

URL: http://www.cnblogs.com/verygis/archive/2008/12/02/1346072.html

用FileDisassembler反编译Windows Application出现了问题,resx资源文件和cs文件不匹配,项目编译根本通不过,把resx文件修改放入cs文件夹后,虽然运行没有

问题,但是不能直接在窗体设计里面"可视地"修改控件,一来麻烦,二来不直观,那么就应该修改下源代码,使其符合VS2008的源文件布局.

下面总结一下修改的步骤:

1.由于FileDisassembler会给每个命名空间生成一个目录,保存这个空间的源代码,而对于资源resx文件就是直接加在项目目录下,所有要把它放回源码目录下.例如

对于项目文件夹里面的TryAssemb.Form1.resx,首先改为Form1.resx然后移动到TryAssemb目录里面.

2.然后对窗体打开"视图设计器",发现会出现下面的错误:

修改方法就是对所有System.Windows.Forms.命名空间里面的控件需要全命名空间的声明,例如里面上图的base.AutoScaleMode = AutoScaleMode.Font;就要改成base.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;而TextBox textBox1; 也要改成private System.Windows.Forms.TextBox textBox1;这样VS2008就能识别到这个控件是要绘制在Form上面的.

PS.开始是的时候还以为要像VS一样把Form1拆开成Form1.cs和Form1.Designer.cs.每次是都辛辛苦苦拆开,最后才发现原来根本不需要,^_^.

相信大多数.Net程序员都有使用Reflactor的经历。无论出于什么目的,当用Reflactor反编译托管程序后,还想对其代码加以修改,那么本文所列举的可能是一份有用的参考。

用Reflactor的FileGenerator插件反编译代码后可以得到包括项目文件的源代码,但代码中存在各种问题,一般无法一次编译通过,以下将详谈这些问题:

枚举问题

为了代码可读,可能需要花点时间查阅metadata把int值修改回枚举值,尤其是想利用窗体设计器的,VS2008可能还不理解int值。

属性问题

比如一个叫Names的属性被反编译后,可能还原为的set_Names(names),get_Names()方法,逐个替换可能很慢,可采用正则表达式整体替换。
对于set_Xxx(xxx)方法,可替换
set_{[a-z]*}/(

/1 = (
对于get_Xxx()方法,可替换
get_{[a-z]*}/(/)

/1
然后,再修复个别被误换的方法。

委托和回调函数问题

一般会被还原为add_Xxx(MethodsName)方法,需要改为 += MethodsName

资源问题

需要使用.Net Framework SDK 下的 resgen.exe 工具,反编译嵌入资源文件*.resources为*.resx文件,
语法为:ResGen.exe *.resources *.resx,然后将*.resx包含入项目,就会自动和同名的窗体文件*.cs关联,如果没有关联可采用先排除再添加大法,一一搞定。

命名空间问题

如果需要切换到IDE的窗体设计器,而不出错,则还需要在*.cs中添加比如System.Windows.Forms的命名空间前缀。

窗体设计器识别问题

需要把以下代码
ComponentResourceManager manager = new ComponentResourceManager(typeof(ClassName));
替换为
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(ClassName));
窗体设计器才能正常识别。

变量"manager"未声明或从未赋值问题的解决

这是由于编译器的问题,先声明,再实例化

例如:ResourceManager manager;
manager = new ResourceManager(typeof(XXXX));

若是,resx文件(XML),则直接用typeof(XXXX)的方法,

若是.resources文件(二进制),则使用("命名空间.resouces全路径")作为参数,不需加.resources后缀。

转载于:https://www.cnblogs.com/qizhuocai/p/9024722.html

.net dll反编译出现的问题,以及部分修复的方法相关推荐

  1. 第19天:WEB攻防-.NET项目DLL反编译

    使用IDEA载入目录 打开.aspx后进项代码分析 <%@ Page Language="C#" AutoEventWireup="true" CodeB ...

  2. .net dll反编译源码后,使用vs的正则替换get_和set_

    get_([a-zA-Z0-9]+)\((.+)*?\) 替换为 $1 = $2; 以上()中的表示要保留的元素,按顺序分别对应于替换后的$1 $2 *?表示非贪婪匹配防止匹配失败 用于最新版vsco ...

  3. .net dll 反编译修改IL再编译,修改版本号

    记一次.net dll 反编译修改IL再编译exe 可用Everything搜索ildasm.exe 在用ildasm.exe打开dll或exe 点击文件右键转储 转储之后用visua studio ...

  4. .dll反编译工具Reflector的使用

    这个软件经常更新,可以在本词条提供的扩展阅读提供的链接中下载最新的版本. 默认情况下,Reflector会打开一组公共程序集(mscorlib.System.System.Data.System.Dr ...

  5. 反编译class文件,一种最简单方法

    今天突然需要反编译一下以前的一个class文件,确定一下是否与源码一种,在网上找了一些方法,发现比较复杂. 自己无意间发现的一种简单方法,分享给大家. 就是把class文件,拖拽到IntelliJ I ...

  6. 强大的.NET反编译工具Reflector及插件(转载)

    刚接触.net 时就听说 Reflector这个强大反编译工具呢,只是一直没有去使用他. 本来本人对新鲜事就非常有兴趣,听他这么一说.决定试一试这个传说中的工具. 今天有空就用了一下. 我用的版本是4 ...

  7. 客户的一个紧急bug,我用了两种方式进行 C# 反编译修改源码

    一:背景 1. 讲故事 周五下午运营反馈了一个紧急bug,说客户那边一个信息列表打不开,急需解决,附带的日志文件也发过来了,看了下日志大概是这样的: 日期:2020-11-13 12:25:45,92 ...

  8. vs可以编译python_Python如何进行编译和反编译

    用Python写脚本,小程序可谓非常方便,但它需要有特定的python环境才能运行,因此如果你想在别的电脑上运行时就会出现许多问题,就算已经安装了Python,但版本可能相差较大,且相关的依赖库没有安 ...

  9. 谈谈Python的编译和反编译

    用Python写脚本,小程序可谓非常方便,但它需要有特定的python环境才能运行,因此如果你想在别的电脑上运行时就会出现许多问题,就算已经安装了Python,但版本可能相差较大,且相关的依赖库没有安 ...

  10. 【原创】用 Python 反编译 Python 软件

    [原创]用 Python 反编译 Python 软件 标 题: [原创]用 Python 反编译 Python 软件 作 者: Ptero 时 间: 2010-04-21,16:28:27 链 接: ...

最新文章

  1. 微信按钮android代码实现原理,微信小程序button标签open-type实现原理
  2. PyTorch中torchvision介绍
  3. linux下删除乱码文件
  4. vistualSVN server:Windows下SVN服务器利器
  5. NIO详解(四):NIO编程
  6. 教你以 4G 的速度克隆 Github 项目!
  7. 待发箱outbox空间已满
  8. java从入门到精通_Java入门到精通、学习路线、就业方向、薪资及前景分析(上篇)...
  9. Python 用pygame模块播放MP3
  10. Web前端JavaScript笔记(7)ECMA6新增数组方法
  11. 一位AI研究员+区块链创业者的终极展望:AI DAO将统治世界
  12. Linux 设置 LD_LIBRARY_PATH
  13. 2021-08-08三大范式与JDBC
  14. python linux调试_linux怎么调试python
  15. Cisco Packet Tracer思科模拟器中路由器的TELNET配置
  16. HCIA H12-211题库解析
  17. angularjs2大漠穷秋视频笔记整理
  18. Latex 中图片格式转换
  19. git版本回退【快速上手】
  20. transition动画效果

热门文章

  1. 北大软微计算机技术硕士复试,2016北大软微考研复试细节和名单.doc
  2. 战舰世界显示无法连接服务器失败,王美雪:战舰世界无法连接服务器解决方法 无法登陆怎么办...
  3. 【聚类算法】| Kmeans算法的Python实现(以西瓜数据集为例)
  4. pcie转m2装系统win10_NVMe SSD安装Win10系统详解:小白秒懂
  5. cfar matlab,雷达无线电系列(二)经典CFAR算法图文解析与实现(matlab)
  6. excel切片器_干货分享:Excel数据透视表操作技巧,帮你提升工作效率
  7. 【工具篇】Unity迷宫地图生成器MazeSpawner随机迷宫信手拈来
  8. Silvaco 学习笔记——循环:sweep
  9. 管家婆服务器支持win7,Windows7多种措施 打造无敌驱动管家婆
  10. 十个值得一试的开源深度学习框架