转 C#反编译后的一些错误改正
Xenocode反编译及代码整理记录
1、Xenocode中设置输出数字为十进制
2、输出后中文文本为\uXXXX,可采用编码工具转成中文
3、new ()改成null;
4、反编译后代码中嵌套数组new int[101][grayPixel[w, h]]++;改成
int[] Totaldark = new int[101];
Totaldark[grayPixel[w, h]]++;
5、形如“+= delegate(”的转换
如: this.shapeButton.DropDownClosed += delegate(object sender, EventArgs e) {this.shapeButton.DropDownItems.Clear();};
反编译成 this.shapeButton.DropDownClosed += new System.EventHandler(this.<InitializeComponent>b__2);
变成了用+= new System.EventHandler,标志<InitializeComponent>为包含代码的函数
标志__CachedAnonymousMethodDelegate XXXX = new EventHandler XX
代码整理方法:
将>b__替换成_b__,去掉<,即
this.shapeButton.DropDownClosed += new System.EventHandler(this.InitializeComponent_b__2);
6、自定义类的转换,标志c__DisplayClass // __locals
如: WaitCursorChanger wcc = new WaitCursorChanger(this);
using (ChooseToolDefaultsDialog dialog = new ChooseToolDefaultsDialog())
{
EventHandler shownDelegate = null;
shownDelegate =
delegate(object sender2, EventArgs e2)
{
wcc.Dispose();
wcc = null;
dialog.Shown -= shownDelegate;
};
反编译成:
PdnToolBar.<>c__DisplayClass4 <>8__locals5 = new PdnToolBar.<>c__DisplayClass4();
<>8__locals5.dialog = new ChooseToolDefaultsDialog();
try
{
PdnToolBar.<>c__DisplayClass6 <>8__locals7 = new PdnToolBar.<>c__DisplayClass6();
<>8__locals7.<>8__locals5 = <>8__locals5;
<>8__locals7.<>8__locals3 = <>8__locals3;
<>8__locals7.shownDelegate = null;
<>8__locals7.shownDelegate = new EventHandler(<>8__locals7.<ToolChooserStrip_ChooseDefaultsClicked>b__1);
<>8__locals5.dialog.Shown += <>8__locals7.shownDelegate;
<>8__locals5.dialog.SetToolBarSettings(this.appWorkspace.GlobalToolTypeChoice, this.appWorkspace.AppEnvironment);
代码整理方法:
将4__this替换成4__this,类中有实例
7、变量定义,反编译后有时会连一块
private bool AutoReconnectEventAttached;
变成了 private AutoReconnectEventAttached;
8、反编译后出现(0)e.aaa 改成 e.aaaa
区别Function(0)
9、EventHandler<0>,改成EventHandler,此事件一般都有变化
(EventHandler) this.EndDownload, 改成this.EndDownload 
10、反编译后出现 () value; 改为value,此时变量定义有问题,Bool or int
11、反编译后出(T) this._personalgroup.GroupInfo.Portrait; 改成this._personalgroup.GroupInfo.Portrait 类型转换
反编译后出(TKey) this._personalgroup.GroupInfo.Portrait; 改成this._personalgroup.GroupInfo.Portrait 类型转换
12、将反统标识去掉,//[CompilerGenerated]
13、反编译后enum属性付值时,会只给数字。如enum{first,second}会为成0,1。 可重新改成相应的属性值
14、Decimal.op_Modulus操作符找不到,改成% 
15、反编译后出现两次类实例,如PsPrivacyControl.PsPrivacyControl. 改成PsPrivacyControl.
16、有代码Ref必须转为out才能编译通过
- ILSpy_Master_2.1.0.1603_RTW_Binaries
- 直接生成时,有些奇怪,不能一次性生成 所有的 cs 文件与 resource
- 但是选择 saveCode 后 “保存类型”选择 all files 先保存一次。
- 再 选择 saveCode 后 “保存类型”选择 c# porject 再保存一次。可以保存所有的 resource 与 cs 文件。(不知道别的机器上是不是这样?)
- 再可以用 resgen 命令把 resource 变成 resx 文件
可以找一工个:ConvertResource 一次性把所有的 resource 变成 resx
需要把其中的
<matadata> 换成 <data>
</matadata> 换成 </data> (但是 使用 resgen 就不需要这样,本人使用的是 visual studio 2008 中文版 )
- 在窗体初始化InitializeComponent中添加 System.ComponentModel.ComponentResourceManager manager = new ComponentResourceManager(typeof(frmLogin));时 再切换到设计界面提示错误 变量“manager”未声明或从未赋值。
我将变量 manager重命名resources时错误消失。( 注意大小写)
- base.FormBorderStyle = FormBorderStyle.FixedSingle;换成
base.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
- base.AutoScaleMode = AutoScaleMode.Font;换成
base.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
等几项.
- 与上面差类似的问题。system.Drawing 或 Print 都要加全,最后就是处理反编译工具,出错的一些代码。
转 C#反编译后的一些错误改正的更多相关文章
- Winform工程反编译后的工作
Winform工程,反编译后,虽然能用,但不太好用. 因为form并没有像原生的那样. 所以,需要几个步聚: 1. 用ResGen工具,把二进制资源文件还原为xml格式: ResGen fromXX. ...
- Winform 工程反编译后窗体如何显示
Winform反编译后,如果想要让它象正常的工程一样,可以在窗体编辑器中,编辑,需要做一些工作. 1. 转换.resources 为 .resx 利用resgen工具.这个工具是vs自带的. 在启动 ...
- JD-GUI反编译后代码逻辑分析
一,用jd-gui.exe等工具查看源代码.如何你不会,可以参看此文章: http://blog.csdn.net/hp_2008/article/details/8207879 可以到以下连接下载可 ...
- winform代码反编译后图片等资源文件恢复解决方案
用Reflector工具反编译的winform代码,图片等资源文件不能很好的反编译成功. 这里有一个笨的解决方案.首先我们要了解图片资源当初加入到工程的几种方式,及他们所在的位置. 一般winform ...
- 实现android apk反编译后代码混淆
通常情况下我们需要对我们开发的android代码进行混淆,以免代码在反编译时暴露敏感信息及相关技术代码: 反编译测试工具:onekey-decompile-apk-1.0.1. 在高级版本的adt创建 ...
- WPF 反编译后错误处理
1. 首先,手动创建一个WPF工程(WpfApplicationReflectorDemo) 2. 把生成的WpfApplicationReflectorDemo.exe 拖到ILSpy里 3.点击 ...
- 恢复Reflector反编译后资源文件的办法
反编译问题: 1.路径问题:如果遇到了Path.Combine,有错误改下即可 2.资源文件问题: 在Reflector下,对左边的资源管理窗口的Resources文件夹下的资源文件,进行右键点击,选 ...
- C#中修改Dll文件 (反编译后重新编译)
Dll文件生成后,如没有源代码,又要修改其中内容 可以用微软自带的ildasm和ilasm程序 先用ildasm将dll文件反编译成il文件 ildasm Test.dll /out=Test.il ...
- 【Android 应用开发】 Android APK 反编译 混淆 反编译后重编译
反编译工具 : 总结了一下 linux, windows, mac 上的版本, 一起放到 CSDN 上下载; -- CSDN 下载地址 : http://download.csdn.net/detai ...
随机推荐
- asp.net core 健康检查
asp.net core 健康检查 ASP.NET Core 2.2 开始,提供了健康检查中间件和库,用来报告应用基础结构组件的运行状况.官方文档在此 运行状况检查由应用程序作为 HTTP 终结点公开 ...
- 【C#进阶】拥抱Lambda(二)
语言的设计,真的是挺有意思的.第一次看这个代码[1]时,旁人随口了一句"哇,好多实心句号". 当时马上一个想法是--怎么实现的?返回了对象,然后再调用方法?然后就放下了,后来发现, ...
- C#中类的属性的获取
/// <summary> /// 将多个实体转换成一个DataTable /// </summary> /// <typeparam name="T" ...
- C# windform 使用TreeGridView
1 下载 treeGridView.DLL库文件. 2 添加到工程中. 右键“工具箱”选择“选择项” 弹出对话框 选择“浏览” 选中下载还的dll库文件.完成后工具箱中会有 treeGridView控 ...
- Linux正则与文本处理工具(10)
正则表达式 (Regular Expression, RE, 或称为常规表达式)是通过一些特殊字符的排列,用于『查找/替换/删除』一行或多行文字或字符串,简单的说,正则表达式就是用在字串的处理上面的一 ...
- [海外干货] BlackHat 2017 首日议题的所有 PPT以及材料
今年是 Black Hat 举办的第 20 个年头,高温酷暑也挡不住全世界黑客和安全人员奔赴拉斯维加斯的热情.毕竟这可是一年一度的盛大狂欢啊.今年的 BHUSA 从美国东部时间时间 7 月 22 日( ...
- 组件基础(插槽slot)—Vue学习笔记
刚开始我们淡淡提过<slot></slot>现在深入了解一下. slot可以进行父组件传值到子组件. 比如:我们将hiboy通过<slot>传递到组件中. < ...
- Java - 初识Java
Java是一种跨平台的面向对象的程序设计语言. 区分大小写: 标点符号为英文: 强类型语言,在Java中存储的数据,必须在编译时确定其类型: Java版本 Java按应用范围分为3个版本,即Java ...
- (转)Python Mixins 机制
原文:https://github.com/dengshuan/notes/blob/master/techs/python-mixins.org https://blog.csdn.net/u012 ...
- (转)Python开发程序:支持多用户在线的FTP程序
原文链接:http://www.itnose.net/detail/6642756.html 作业:开发一个支持多用户在线的FTP程序 要求: 用户加密认证 允许同时多用户登录 每个用户有自己的家目录 ...