用Reflector和FileDisassembler配合反编译.net Windows程序
用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));
窗体设计器才能正常识别。
转载于:https://www.cnblogs.com/zguoq2002/archive/2012/05/26/2519040.html
用Reflector和FileDisassembler配合反编译.net Windows程序相关推荐
- 反编译微信小程序(图文详细傻瓜式)
反编译微信小程序2020-2-2 –根据各大平台整合而成 一.前期准备 1.下载反编译脚本 https://duolc.lanzous.com/i8zgo1e 如果这个脚本效果不好可以用这里面其他的h ...
- 保护小程序,防止反编译:打造不怕反编译的小程序
保护小程序,防止反编译 打造不怕反编译的小程序 这几年,小程序.小游戏,非常火. 业内人都知道,小程序或小游戏,就是H5应用,就是html+JS.这类应用,反编译很容易,网上就有很多方法教程. 对小程 ...
- wxapkg反编译后的数据_反编译微信小程序
首先声明:本文章仅供学习之用,不可它用. 一.前言 看到人家上线的小程序的效果,纯靠推测,部分效果在绞尽脑汁后能做出大致的实现,但是有些细节,费劲全力都没能做出来.很想一窥源码?查看究竟?看看大厂的前 ...
- java反编译微信小程序_微信小程序反编译的实现
首先声明:本文章仅供学习之用,不可它用. 一.前言 看到人家上线的小程序的效果,纯靠推测,部分效果在绞尽脑汁后能做出大致的实现,但是有些细节,费劲全力都没能做出来.很想一窥源码?查看究竟?看看大厂的前 ...
- 亲测成功 -> 反编译微信小程序
http://www.xs-box.com/ 小盒软件 内网 · 穿透 · 让你在家也能管理公司服务器 · 实现远程办公梦想 是一个将局域网个人电脑.服务器代理到公网的内网穿透工具 可以让外网直接访问 ...
- 阿里Java诊断工具 arthas - 生产环境反编译动态修改程序调试应用
阿里Java诊断工具 arthas - 生产环境反编译动态修改程序调试应用 一.arthas 上篇文章我们借助arthas监测线上系统的运行信息.排查程序运行缓慢问题,尽管这样已经非常好了,但是还是会 ...
- 反编译微信小程序 查看微信小程序源码
综合了一下网上所找到的各种方法及遇到的坑,经过试验,截止2020-01-30,本文所述方法可用 步骤如下: 安装node.js最新版本:下载地址:https://nodejs.org/en/ 下载网上 ...
- java反编译微信小程序_反编译微信小程序(最新)
首先声明:本文章仅供学习之用,不可它用. 一.前言 看到人家上线的小程序的效果,纯靠推测,部分效果在绞尽脑汁后能做出大致的实现,但是有些细节,费劲全力都没能做出来.很想一窥源码?查看究竟?看看大厂的前 ...
- 反编译微信小程序 亲测成功 补充解决常见问题 (详细最新教程)
网络上相关文章良莠不齐,随时间的流逝或许随着微信的更新,有出现编译不成功的现象.我这里总结一下我最新的编译过程.可成功获得小程序源码. 1.环境准备和工具下载 反编译需要 nodejs的环境 下载链接 ...
最新文章
- android 的中文意思
- python 灰度图像_python库skimage 给灰度图像染色
- container_of(ptr, type, member)宏定义解析
- Linux内核分析---进程的创建,执行与切换
- halcon python缺陷检测_Halcon学习笔记之缺陷检测(一)
- LFS-构建自己的linux
- 造车梦又要“窒息”了?贾跃亭被美国认定骗局,收到退市警告!FF回应了......
- FreeRTOS源码分析与应用开发02:任务管理
- 清华ACL'22 | 一文读懂刘知远所在实验室18篇论文详情
- 验证码识别库 python_python 验证码识别库pytesseract的使用
- 如何免费让别人联网就能看到自己的网页,基于Tomcat,小米球
- 数据挖掘学习(四)——常见案例总结
- MWEC:一种基于多语义词向量的中文新词发现方法
- 大数据职业理解_大数据岗位介绍和职业规划分析
- 建立自己的STM32项目库(库函数,Kile)
- Kettle--java代码组件实现密码加密(BCryptPasswordEncoder)
- 扎拉赞恩 服务器 微信群,wow怀旧服扎拉赞恩任务怎么做-wow怀旧服扎拉赞恩的头颅在哪里-地点位置_牛游戏网...
- 【锻体篇-硬件开发】TL431可控精密稳压源的应用和注意事项
- win7系统如何加速计算机启动,win7电脑怎么提速_win7电脑提速方法-win7之家
- 呼叫中心mvb事件方法总结草稿
热门文章
- Python+Selenium+Unittest框架使用——Selenium——模拟操作浏览器(三)
- elasticsearch 5.x Delete By Query API(根据条件删除)
- 【转】Linux root修改密码失败
- Python数据分析几个比较常用的方法
- springmvc+mybatis,在mybatis逆向工程的基础上使用模板自动生成controller层代码
- Java 多线程初探(二) - 通讯与协调
- 配置CITRIX XML 服务与IIS 7.x共享端口
- 转载: Vim 练级攻略
- 配置phpmyadmin连接远程 MySQL数据库
- 编写一段代码,实现在控制台输入一组数据后,排序后再控制台输出