用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程序相关推荐

  1. 反编译微信小程序(图文详细傻瓜式)

    反编译微信小程序2020-2-2 –根据各大平台整合而成 一.前期准备 1.下载反编译脚本 https://duolc.lanzous.com/i8zgo1e 如果这个脚本效果不好可以用这里面其他的h ...

  2. 保护小程序,防止反编译:打造不怕反编译的小程序

    保护小程序,防止反编译 打造不怕反编译的小程序 这几年,小程序.小游戏,非常火. 业内人都知道,小程序或小游戏,就是H5应用,就是html+JS.这类应用,反编译很容易,网上就有很多方法教程. 对小程 ...

  3. wxapkg反编译后的数据_反编译微信小程序

    首先声明:本文章仅供学习之用,不可它用. 一.前言 看到人家上线的小程序的效果,纯靠推测,部分效果在绞尽脑汁后能做出大致的实现,但是有些细节,费劲全力都没能做出来.很想一窥源码?查看究竟?看看大厂的前 ...

  4. java反编译微信小程序_微信小程序反编译的实现

    首先声明:本文章仅供学习之用,不可它用. 一.前言 看到人家上线的小程序的效果,纯靠推测,部分效果在绞尽脑汁后能做出大致的实现,但是有些细节,费劲全力都没能做出来.很想一窥源码?查看究竟?看看大厂的前 ...

  5. 亲测成功 -> 反编译微信小程序

    http://www.xs-box.com/ 小盒软件 内网 · 穿透 · 让你在家也能管理公司服务器 · 实现远程办公梦想 是一个将局域网个人电脑.服务器代理到公网的内网穿透工具 可以让外网直接访问 ...

  6. 阿里Java诊断工具 arthas - 生产环境反编译动态修改程序调试应用

    阿里Java诊断工具 arthas - 生产环境反编译动态修改程序调试应用 一.arthas 上篇文章我们借助arthas监测线上系统的运行信息.排查程序运行缓慢问题,尽管这样已经非常好了,但是还是会 ...

  7. 反编译微信小程序 查看微信小程序源码

    综合了一下网上所找到的各种方法及遇到的坑,经过试验,截止2020-01-30,本文所述方法可用 步骤如下: 安装node.js最新版本:下载地址:https://nodejs.org/en/ 下载网上 ...

  8. java反编译微信小程序_反编译微信小程序(最新)

    首先声明:本文章仅供学习之用,不可它用. 一.前言 看到人家上线的小程序的效果,纯靠推测,部分效果在绞尽脑汁后能做出大致的实现,但是有些细节,费劲全力都没能做出来.很想一窥源码?查看究竟?看看大厂的前 ...

  9. 反编译微信小程序 亲测成功 补充解决常见问题 (详细最新教程)

    网络上相关文章良莠不齐,随时间的流逝或许随着微信的更新,有出现编译不成功的现象.我这里总结一下我最新的编译过程.可成功获得小程序源码. 1.环境准备和工具下载 反编译需要 nodejs的环境 下载链接 ...

最新文章

  1. android 的中文意思
  2. python 灰度图像_python库skimage 给灰度图像染色
  3. container_of(ptr, type, member)宏定义解析
  4. Linux内核分析---进程的创建,执行与切换
  5. halcon python缺陷检测_Halcon学习笔记之缺陷检测(一)
  6. LFS-构建自己的linux
  7. 造车梦又要“窒息”了?贾跃亭被美国认定骗局,收到退市警告!FF回应了......
  8. FreeRTOS源码分析与应用开发02:任务管理
  9. 清华ACL'22 | 一文读懂刘知远所在实验室18篇论文详情
  10. 验证码识别库 python_python 验证码识别库pytesseract的使用
  11. 如何免费让别人联网就能看到自己的网页,基于Tomcat,小米球
  12. 数据挖掘学习(四)——常见案例总结
  13. MWEC:一种基于多语义词向量的中文新词发现方法
  14. 大数据职业理解_大数据岗位介绍和职业规划分析
  15. 建立自己的STM32项目库(库函数,Kile)
  16. Kettle--java代码组件实现密码加密(BCryptPasswordEncoder)
  17. 扎拉赞恩 服务器 微信群,wow怀旧服扎拉赞恩任务怎么做-wow怀旧服扎拉赞恩的头颅在哪里-地点位置_牛游戏网...
  18. 【锻体篇-硬件开发】TL431可控精密稳压源的应用和注意事项
  19. win7系统如何加速计算机启动,win7电脑怎么提速_win7电脑提速方法-win7之家
  20. 呼叫中心mvb事件方法总结草稿

热门文章

  1. Python+Selenium+Unittest框架使用——Selenium——模拟操作浏览器(三)
  2. elasticsearch 5.x Delete By Query API(根据条件删除)
  3. 【转】Linux root修改密码失败
  4. Python数据分析几个比较常用的方法
  5. springmvc+mybatis,在mybatis逆向工程的基础上使用模板自动生成controller层代码
  6. Java 多线程初探(二) - 通讯与协调
  7. 配置CITRIX XML 服务与IIS 7.x共享端口
  8. 转载: Vim 练级攻略
  9. 配置phpmyadmin连接远程 MySQL数据库
  10. 编写一段代码,实现在控制台输入一组数据后,排序后再控制台输出