Ⅰ 为何C和C++编写生成的可执行程序不可反编译回源程序
因为不同的源程序经过编译可能得到相同的可执行程序,因此如果反向操作就存在二义性了
Ⅱ 安装jadClipse插件后,还是不能反编译.class:
完整步骤如下:
1.下载jad.exe(Jad v1.5.8g版本)和net.sf.jadclipse_3.3.0.jar;
2.将jad.exe放进\java\jdk1.7.0\jre\bin目录底 下,如果你的环境变量设置的没有问题,那么在DOS环境下敲入cmd->jad,你会发现jad命令已经可以使用了,但是要与 MyEclipse6.5结合使用,请看下一步;
3.将net.sf.jadclipse_3.3.0.jar放到下面的目录下 D:\MyEclipse 6.5\eclipse\plugins;
4.重新启动MyEclipse6.5,进入 Preferences->Java->JadClipse,设置(1)Path to decompiler路径为Jad.exe的全路径,例如:C:\Program Files (x86)\Java\jdk1.6.0_07\jre\bin\jad.exe设置(2)在Directory for temporary files中指定临时文件的路径 如:C:\Program Files (x86)\MyEclipse 6.5\myeclipse\temp(如果没有temp文件夹,自己创建一个空的取名为temp就行)点击Apply->OK;
5.Window->Preferences->General->Editors->File Associations,将.class文件默认成通过JadClipse Class File Viewer打开。
Ⅲ 反编译java核心类 能不能反编译java核心类,比如java.lang.String,再编写自己的代码放到里面去
我估计你是想重编译String.class文件并覆盖吧,这个目前行不通,据说像HotSpot这种商业JVM内部都存有一张关于核心类库的装载信息表专供根加载器使用,这个表内容是以通过硬写在JVM底层C\C++程序中的方式存在的,在装载核心类库的.Jar文件时不仅要比对其中.class文件的有效性,还要比较.Jar文件的SHA1哈希值与装载信息表中的记录是否一致!(或许哈希弱无碰撞算法出现时会有希望,呵呵)同时JVM会运行各种安全沙箱机制(比如装载约束、访问权限等等)来保护运行环境的安全性,所以除非重编译JVM否则目前没有什么好方法。
Ⅳ C++程序可以被反编译吗
c/c++程序是不能被反编译的,除非是debug版本(包含各种标识符及调试信息),release版本没有任何有关源码的信息,是不能被反编译的
Ⅳ MD5码是不可逆的,但是他的加密算法是公开的,为什么不能反向编译呢
在MD5里面一些算法是在理论上可以反向但实际中是很难反向实现的!