代码反编译重构
❶ android反编译生成的代码如下 像MainActivity.access$000(this.this$0);这样的代码该怎样解释,怎么改
access$0表示调用一个外部类的方法,说明这段代码是在内部类中使用的:
在调用的外部类方法定义代码的上面,应该会有一段。methodstaticsyntheticaccess$0。
的代码,这个代码里面才是真正要调用的方法。
安卓虚拟机指令在调用外部类方法的时候,需要区分类的调用关系。
thiscmdisdeprecated,usethed2j-dex2jarifpossible
dex2jarversion:translator-0.0.9.15
dex2jar..Apkd(d2j)classes.dex->..Apkd(d2j)classes_dex2jar.jar
(1)代码反编译重构扩展阅读
反编译是一个复杂的过程,反编译软件有:
1、SWF相关的反编译程序
ActionScriptViewer
第一个也是最强大的商业SWF反编译工具,同类产品中,它的AS代码反编译效果最好,SWF转Fla工程重建成功率最高。
2、Android相关的反编译程序
SMALI/BAKSMAL
SMALI/BAKSMALI是一个强大的apk文件编辑工具,用于Dalvik虚拟机(Google公司自己设计用于Android平台的虚拟机)来反编译和回编译classes.dex。其语法是一种宽松式的Jasmin/dedexer语法,而且它实现了.dex格式所有功能(注解,调试信息,线路信息等)。
❷ 呃,请问怎么修改单机游戏的编程码
修改运行的PC游戏,这个最简单,有《金山游侠》《FPE》《GB4》等修改工具。。。
要修改游戏程序代码,这个就难了,你得懂汇编,编译原理,编译流程,各种PE执行文件或其他执行文件或代码的数据结构,各种静态库以及动态链接库的结构,等等。。。一系列编程知识,而且还得具备一定的硬件知识,以及操作系统知识。。。然后用反编译工具把游戏的执行文件以及库文件反编译,将执行文件或代码反编译成汇编代码,更好一些的反编译工具能把代码反编译成C/C++代码,只是这些代码完全没有变量命名,所有变量都用A1、B1这样的。。。然后根据程序执行来猜某块代码的大致作用,然后再将代码完全读懂,最后才能修改代码。。。这个。。。非常困难,就是职业程序员高手,并且已经具备了我上面说的一切知识以及技能,也非常难。。。因为反编译程序,极度欠缺可读性,有些宏以及编译系统的伪指令扩展后,反编译出来的代码非常难读懂。。。这必须要是专业干这个的,对编译系统足够了解,并且习惯了反编译代码的那类专业人士才能真正的干好这件事。。。总之这是件极度专业的事情。
❸ 急急急 反编译软件把EXE文件反译成什么 是机器语言还是汇编语言 是哪个汇编语言
首先你得清楚,微软的exe可执行文件(即PE文件,有PE规范定义)的特征,才能使用不同的反编译软件对exe进行反编译。
如今,exe一般分托管代码和非托管代码两类(托管代码是由C#等语言生成的.NET运行时库支持运行的中间代码,不是CPU芯片可直接执行的二进制机器码;而非托管代码是CPU芯片看执行的机器码)
非托管代码反编译后,其实就是简单的将二进制机器码用汇编表示,所以是汇编语言。
托管代码反编译,好的反编译器直接将中间语言字节码反编译成高级语言代码,如C#
------------------------------------------------------
另外,在什么平台运行的exe正确反编译(需要选择正确的芯片结构)为同平台的汇编语言。
如嵌入式ARM芯片上运行的Win CE系统上的exe就应当正确反编译为ARM汇编
x86的就应当反编译为x86汇编。
❹ 如何防止Unity3D代码被反编译
在Unity3D中,代码会编译到Assembly-CSharp.dll。基于以上两点,代码的保护有以下两种:
第一种是对代码进行混淆,诸如混淆软件CodeGuard、CryptoObfuscator、de4dot
第二种是对Assembly-CSharp.dll进行加密后,重新对mono进行编译。
Virbox Protector直接进行加壳后,无需手动编译mono,能防止反编译。
❺ 求c# 通过Debug 文件反编译出其中的代码,能看见编译的代码就可以了,求这样的软件工具
http://ilspy.net/
http://sourceforge.net/projects/sharpdevelop/files/ILSpy/2.0/ILSpy_Master_2.1.0.1603_RTW_Binaries.zip/download
转到这页面就可以下载ILSpy,如果没有可以点击direct link
Reflector收费后,ILSpy更受欢迎。
❻ snowman反编译代码怎么运行
使用反编译软件即可获得源代码。
反编译获得的是汇编格式的源代码,读懂需要较高的水平,大多反编译软件都具有生产C语言格式的功能,但是效果不同,而且并非是全部都能生成C语言,还有很多是汇编格式的。所以对已生成的程序进行反编译需要足够的耐心和经验才能读懂。
使用Reflector反编译exe或dll文件都可能无法进行编译(这里指已经对目的文件进行了脱壳处理),主要原因有以下几点:1、如果对方使用了混淆技术,我们再反汇编会非常棘手,我常用的做法是把某个乱七八糟的名称使用自己的命名规范重新批量重命名,这样便于分析程序的结构。2、Reflector对枚举类型的支持不是很好,它往往会把枚举当做整数进行处理,这个需要你手动更正过来。3、对于自动属性,你需要把不符合编译语法的地方更正过来。自动属性的私有字段一般都含有等,需要手动更正一下。4、对于Winform,你需要重新编译一下相关的资源文件,如果编译过程提示找不到资源的话。5、对于静态变量或者静态类,这个你更要注意。