.Net Reflector反编译代码与源代码的区别
Reflector有个File Disasmbler插件,让Reflector可以把反编译的代码保存为文件。通过反编译代码与源程序文件的比较,可以看出两者是有区别的,甚至编译的代码完全有可能无法再通过编译生成程序文件。
两者都有些什么区别呢?
一、文件的改变
源代码中我们创建一个Form1,VS 一般会生成两个文件Form1.cs 和 Form1.Desinger.cs,如果添加资源后还会增加一个Forms.resx文件,而反编译代码则把Form1.cs与partial代码Form1.Desinger.cs两者合而为一。
关于控件的申明与
private void InitializeComponent()
protected override void Dispose(bool disposing)
可以手动拆分还原,然后又可以实现在VS中进行窗体设计操作了。
二、代码的改变
我们看这样源文件这样一段代码
public class EventingList<T>: System.Collections.Generic.IList<T>
{
public enum EventType { Deleted, Added };
......
}
在反编译生成的代码中成了这样的形式:
public class EventingList<T> : IList<T>, ICollection<T>, IEnumerable<T>, IEnumerable
{
public enum EventType
{
public const EventingList<T>.EventType Added = EventingList<T>.EventType.Added;,
public const EventingList<T>.EventType Deleted = EventingList<T>.EventType.Deleted;
}
}
这是无法再通过编译的。
另反编译代码中还会添加很多非源代码的内容
[CompilerGenerated]
private sealed class <GetEnumerator>d__0 : IEnumerator<T>, IEnumerator, IDisposable
{
private int <>1__state;
private T <>2__current;
public Set<T> <>4__this;
public Dictionary<T, int>.Enumerator <>7__wrap2;
public KeyValuePair<T, int> <kvp>5__1;
[DebuggerHidden]
public <GetEnumerator>d__0(int <>1__state)
{
this.<>1__state = <>1__state;
}
private bool MoveNext()
{
bool flag;
try
{
switch (this.<>1__state)
{
case 0:
this.<>1__state = -1;
this.<>7__wrap2 = this.<>4__this._values.GetEnumerator();
this.<>1__state = 1;
goto Label_007B;
根据提示信息是编译生成的,但编译是什么情况下又是怎么产生这些内容的有待进一步研究。
.Net Reflector反编译代码与源代码的区别相关推荐
- 弥补Reflector反编译对中文支持的不足
Reflector是我目前用的最多的反编译工具,他可能不时最好的,但以它的更新速度,我相信他会成为最好的哦~~ 国外的软件,对中文支持还是有问题,虽然我们都Unicode了,可是老外还是不一定 ...
- .NET Reflector Crack,用于探索和导航反编译代码
.NET Reflector Crack,用于探索和导航反编译代码 .NET Reflector 可让您查看和调试您使用的所有 .NET 代码的源,从而节省时间并简化开发.通过您自己的代码.第三方组件 ...
- Reflector反编译winform心得
Reflactor就不介绍了,.net下的免费反编译工具.Reflactor在某些情况下是很必须的,当遇到bug的时候,可以通过Reflactor看其内部的实现机制,从而找到真正的bug所在.或者可以 ...
- vue打包代码反编译_Android逆向反编译代码注入APK过程思路分析
一.名称解释 逆向 - 是一种产品设计技术再现过程,从可运行的程序系统出发,运用解 密.反汇编.系统分析等多种计算机技术,对软件的结构.流程.算法. 代码等进行逆向拆解和分析,推导出软件产品的源代码. ...
- 将DEX反编译成Java源代码
本文翻译自:decompiling DEX into Java sourcecode 如何将Android DEX(VM字节码)文件反编译成相应的Java源代码? #1楼 参考:https://sta ...
- android将彩图转为黑白_Android逆向反编译代码注入APK过程思路分析
一.名称解释 逆向 - 是一种产品设计技术再现过程,从可运行的程序系统出发,运用解 密.反汇编.系统分析等多种计算机技术,对软件的结构.流程.算法. 代码等进行逆向拆解和分析,推导出软件产品的源代码. ...
- vs 2019 自带 反编译 与 Reflector 反编译工具比较
都是一样的 但是要看自己写的 反编译代码 还是得去 Reflector 转载于:https://www.cnblogs.com/cjm123/p/10908910.html
- 反编译一之反编译代码
JD-GUI反编译出来的源码不全,例如缺少静态方法,可以用jad.exe,能翻译个大概. 输入命令:jad -o -r -s java -d src org/*/.class 我解释一下这些参数的含义 ...
- 共享一个对Reflector 反编译支持中文的修正FileGenerator文件
共享一个对Reflector 反编译支持中文的修正FileGenerator文件 文件生成插件 转载于:https://www.cnblogs.com/LifelongLearning/archive ...
最新文章
- UPC个人训练赛第十五场(AtCoder Grand Contest 031)
- python如何启动前端_Django项目创建到启动详解(最全最具体)
- 【吾悟】《易经》有感程序人生
- SDK目录结构和adb工具及命令介绍
- 有了Auto Layout,为什么你还是害怕写UITabelView的自适应布局?
- UVA11878 Homework Checker【文本】
- You have an error in your SQL syntax.....for the right syntax to use near 'describe
- python元祖用法_python中元组的用法整理
- C语言编写万年历程序
- Python制作表白爱心合集
- 【DeepLearning】【环境配置】Ubuntu 下手动调节 Nvidia 显卡风扇转速
- 小米路由器的服务器无响应怎么回事,小米路由器常见问题与解决方法(高级功能) | 192路由网...
- 如何在ESP8266中使用深度睡眠模式降低功耗
- 关闭电脑时提示有人远程使用计算机,关机时提示有人正在远程使用
- 《新亮剑》力求炮火逼真 柱子金钟负伤骨折_0
- 2021年G1工业锅炉司炉考试内容及G1工业锅炉司炉考试技巧
- [九度][何海涛] 斐波那契数列
- “另类”程序卸载有技巧
- 百度API实现人流量数量检测(动态)
- 特斯拉、蔚来们狂奔,宝马们不想成为“诺基亚”