① 反编译什么意思,具体该怎么用
反编译:高级语言源程序经过编译变成可执行文件,反编译就是逆过程。计算机软件逆向工程,又称计算机软件恢复工程,是指对其他软件的目标程序(如可执行程序)进行“逆向分析和研究”,从而推导出设计思想、原理、结构、算法、处理过程、操作方法等要素,等被其他软件产品使用,在某些特定情况下可能会衍生出源代码。反编译可以作为开发软件时的参考,也可以直接用于软件产品中。
(1)软件反编译之后的就是源码吗扩展阅读:
如果编译过程中发现源程序有错误,编译程序应报告错误的性质和错误的发生的地点,并且将错误所造成的影响限制在尽可能小的范围内,使得源程序的其余部分能继续被编译下去,有些编译程序还能自动纠正错误,这些工作由错误处理程序完成。需要注意的是,一般上编译器只做语法检查和最简单的语义检查,而不检查程序的逻辑。
② 用java反编译器编译出来的语言一定是原来的正确源代码吗
void的返回值是空
可以没有返回值,程序里面的return;意思是从这里返回
也就是说程序执行到这一步时退出这个函数
比如说个面的这一程序:
public class Text
{
public static void main(String s[])
{
if( 2 > 1){
System.out.println("2确实大于1");
return ;
}
System.out.println("该句是不会执行的");
}
}
输出为:2确实大于1
程序执行到System.out.println("2确实大于1");return ;
的时候就退出了main函数,不会执行下面的任何语句了
③ 求教:APK反编译能得到完整的源码吗
完全可以反编译成完整的源码,但是APK在编译的时候是优化了的, 所以反编译之后跟原始代码有差别,还有就是反编译是根据字节码(java的特点)反推java语言,推出来的跟原始的有区别,但是运行效果一模一样。还有就是你要功底厚才能改写,还要有个好的工具。你不可能手动反编译。谢谢。
④ 能利用反编译查出源码吗
可以,不过前提是看有没有混淆,或者加固,套壳,如果是软件开发的那种源码,得看开发的人有没有分享源码呢
一般来说单独反编译是看到部分源码,基本上只能单独修改或者修订部分内容。
⑤ EXE文件反编译成源码
EXE文件可以通过步骤来反编译成源码,具体步骤如下:
1、在网络上搜索下载反编译工具ILSpy,ILspy是一个开源的.net反编译软件,使用十分方便。解压后如图,双击.exe文件打开解压工具。
(5)软件反编译之后的就是源码吗扩展阅读:
反编译也称为计算机软件还原工程,是指通过对他人软件的目标程序(比如可执行程序)进行“逆向分析、研究”工作,以推导出他人的软件产品所使用的思路、原理、结构、算法、处理过程、运行方法等设计要素,某些特定情况下可能推导出源代码。
exe是编译好的程序文件 要看结构就得反编译 但是通常不能把可执行文件变成高级语言源代码,只能转换成汇编程序。 所以要要看结构不止要会反编译 还得精通汇编语言。
⑥ android 软件反编译 可以获得源代码吗
android培训中有很重要的一个知识点就是反编译获得java源代码,但是这个知识点又恰恰是很多同学的软肋,很难掌握,今天就来帮你解决你的难题。
环境:win7
步骤:
1,下载工具包
dex2jar-0.0.9.13--反编译工具--name=dex2jar-0.0.9.13.zip&can=2&q=
jd-gui-0.3.5.windows.zip--反编译后的文件查看器
分别解压。
2,将源apk的后缀名修改.jar并解压,得到其中的classes.dex文件,将classes.dex复制到dex2jar.bat所在目录dex2jar-0.0.9.13文件夹
在命令行下定位到dex2jar.bat所在目录 (开始>运行>cmd>cd c:\dex2jar-0.0.9.13)
运行 :dex2jar.bat classes.dex
将生成 classes_dex2jar.jar
接下来就可以通过jdgui下的jd-gui.exe程序打开生成的jar包看到java代码了。
多看多做多练习是学习语言必须经历的过程,学习不是一朝一夕的事情,只有恒之以衡的坚持才能带来成功。希望以上的Android教程能给大家带来帮助。
⑦ 反编译是什么意思
反编译做的就是编译的相反动作。举例来说,例如一个程序用C语言来写,写完之后要编译成CPU可以识别和运行的机器代码,也就是生成EXE程序。而反编译是反过来,把EXE反编译成编程源代码,也就是C程序,不过一般反编译大多数都是从机器码反编译为汇编。其他语言的情况基本也是这样的。至于具体要怎么用,这个就看你的目的了。但一般情况下是通过反编译主要是用于没有源码的程序的分析,例如破解别人的软件等。
⑧ 反编译代码变成源代码
反编译只能是汇编语言,完全还原源代码所有语言还做不到,.NET能还原大部分关键代码
⑨ 是不是所有的程序都可以反编译得到原代码
Android APK中的Java代码可以被反编译到什么程度主要看APK的加密程度。
第一种情况:无混淆无加密无加壳。
直接利用Dex2jar和JD-GUI可把源码从APK里抠出来,代码逻辑清晰,基本上做到可复用,只是资源文件的引用需要计算一下。
第二种情况:混淆。
通常是利用Proguard做的防护。因为是对jar做的不可逆混淆(除非有mapping),因此不能还原成原来的代码。但是代码结构,代码逻辑一致,只要花长时间对代码进行梳理一样可找准核心代码,解密方法跟第一种一致。
第三种情况:加密。
这里以DexGuard为例。对于这种代码加密的方法,在程序运行中必定会进行解密,只要抽出它解密的逻辑便可。PS:我自己做过DexGuard的解密,如果用Dex2jar反编译看的话逻辑是不对的,一定要从Smali代码看。后来发现网上已经有人做了。
解密的脚本:A look inside Dexguard
第四种情况:加壳。
这种情况跟第三种类似。无论你怎么加壳,运行的时候必定是Dalvik可识别的Odex代码,建议直接在内存里mp出来。这里推荐Xpose的ZjDroid。
⑩ Java反编译后得到的不是Java源代码。
估计你得到的是java虚拟机指令,因为.class文件与java源代码不是一一对应的,但与虚拟机指令却是一一对应的,就像exe文件中的机器指令与汇编指令是一一对应的,要看懂这些代码可以参考java虚拟机指令集