反编译混淆的jar包
jar包可以用 jd-gui去反编译。
war包需要把它解压。因为war包里有一堆的jar。
⑵ Android项目里如何混淆自己打的jar包或者防止被反编译
Android之防止反编译技巧:
1. 判断程序是否运行在模拟器上
boolean isRunningInEmualtor() {
boolean qemuKernel = false;
Process process = null;
DataOutputStream os = null;
try{
process = Runtime.getRuntime().exec("getprop ro.kernel.qemu");
os = new DataOutputStream(process.getOutputStream());
BufferedReader in = new BufferedReader(new InputStreamReader(process.getInputStream(),"GBK"));
os.writeBytes("exit\n");
os.flush();
process.waitFor();
// getprop ro.kernel.qemu == 1 在模拟器
// getprop ro.proct.model == "sdk" 在模拟器
// getprop ro.build.tags == "test-keys" 在模拟器
qemuKernel = (Integer.valueOf(in.readLine()) == 1);
Log.d("com.droider.checkqemu", "检测到模拟器:" + qemuKernel);
} catch (Exception e){
qemuKernel = false;
Log.d("com.droider.checkqemu", "run failed" + e.getMessage());
} finally {
try{
if (os != null) {
os.close();
}
process.destroy();
} catch (Exception e) {
}
Log.d("com.droider.checkqemu", "run finally");
}
return qemuKernel;
}
2. 检测keystore签名,再与之前得做比较
public int getSignature(String packageName) {
PackageManager pm = this.getPackageManager();
PackageInfo pi = null;
int sig = 0;
try {
pi = pm.getPackageInfo(packageName, PackageManager.GET_SIGNATURES);
Signature[] s = pi.signatures;
sig = s[0].hashCode();
} catch (Exception e1) {
sig = 0;
e1.printStackTrace();
}
return sig;
}
3. 检测包名,版本名和版本号,然后做判断:
private String getAppInfo() {
try {
String pkName = this.getPackageName();
String versionName = this.getPackageManager().getPackageInfo(
pkName, 0).versionName;
int versionCode = this.getPackageManager()
.getPackageInfo(pkName, 0).versionCode;
return pkName + " " + versionName + " " + versionCode;
} catch (Exception e) {
}
return null;
}
4. 把jpg图片写成是png格式得图片 但是最新版本的apktool已经修复了
5. 花指令,影响jd-gui 但是最新版本的jd-gui已经修复
private static final char[] wJ = "0123456789abcdef".toCharArray();
public static String imsi = "204046330839890";
public static String p = "0";
public static String keyword = "电话";
public static String tranlateKeyword = "%E7%94%B5%E8%AF%9D";
在每个类里面加入 如上字段。。。。
https://***/ 一个第三方得”爱加密“网站 1.需要使用官方的打包key工具打包后上传到"爱加密"网站进行处理,然后到网站上面下载,下载后还要用"爱加密"的打包工具再次进行打包即可。
⑶ java反编译class文件的工具jar包(例如dom4j-1.6.1.jar)
第一种方法:
- 将jar包的扩展名改为zip格式,然后解压到一个文件夹(假设为example文件夹)
- 将jad.exe程序放置在与example文件同一个目录下,并在此目录打开命令行窗口。
- 输入命令:jad -o -r -s java -d src example/**/*.class
- 此时便将该example目录下所有.class文件转为.java文件并按照原目录的格式存储好了。
第二种方法:
直接用jd-gui.exe打开jar文件就可以查看java代码了,如果需要的话可以复制后新建一个文件把代码粘贴进去。
⑷ 反编译的java源码,里面全是abcdef的类名和包名,如何解决
这是被混淆过的jar包。
没有被混淆是可以反编译出来的。
⑸ 如何编译反编译后的jar包中的java文件
这个很简单,把jar包碃孩百绞知悸版溪保娄反编译这个你应该知道了,很多工具jd gui就是不错的一个,然后,你用Eclipse等工具把你反编译的文本贴到java文件中。
这时肯定有编译错误,你可以把你软件中的jar包都引为classpath下。
编译通过后,就可以去取.class文件了再放回jar包中原有的目录。
全部搞定。
~如果你认可我的回答,请及时点击【采纳为满意回答】按钮
~~手机提问的朋友在客户端右上角评价点【满意】即可。
~你的采纳是我前进的动力
~~O(∩_∩)O,记得好评和采纳,互相帮助,谢谢。
⑹ 有哪些防止反编译 Java 类库 jar 文件的办法
java本就是开源的,你加密感觉怪怪的。
想防止反编译,最简单的方法就是你可以向Jar注入无效代码。比如建一个类,建一个没有意义的方法private class Invalid{ },然后输出为jar。用解压缩软件打开这个jar,以文本方式找到那个类的class,然后将那个方法名的一个字母删掉,然后更新入压缩文件中。用jd-gui反编译提示错误。这种方式不能用于android中。
还有种方法就是混淆代码,加密class和高级加密class,方式比较复杂,可以自行网络。
⑺ jar游戏反编译疑问,Java达人求助
我同学有买书赠送光盘的,里边有代码,但都不怎么好。
不是别人把代码的方法和类都做处理方法名和类只有字母代替,没有注释,而是打jar包的时候打的混淆包,这样的话就会产生你说的效果,如果所编译混淆包,80%以上的类和方法都报错,这个倒没有试过。
别人故意用一些错误的但不会引起异常的方法和类来混淆我的视线,这个是不可能的,jar游戏文件本来就要求小而精的,没用的东西越多,效率越低,没有人会这样做的。
其它问题我也想看看别人是怎么回答的,我刚学3个月j2ME
⑻ 我把android.jar包进行反编译,为什么只有方法而没有实现
1、混淆安卓自带了混淆法,具体请网络关键词:proguard,但是混淆只是加大了反编译的难度,可以这么说,即便混淆了,只要有足够的耐心,破解指日可待。2、使用linux的静态链接so库这类似于windows平台的dll库,如果使用了so库,那么这个安卓程序几乎不可能被反编译到原来的代码,所以,重要的代码可以放入so库。但是,道高一尺,魔高一丈,即便是so库,也还是会有法能破解,但是,要获得真正的源码,几乎不可能无源代码的安卓APK反编译、修改,只有你想不到,没有做不到@@724949472
⑼ 被混淆的jar包如何反编译
暂时想到的只有将jar文件解压,用反编译工具反编译相关类,修改,编译成类替换原文件,再打包成。
⑽ 如何对java的jar包反编译
使用现有的反编译工具或者自己写一个,jar包实际上是class文件打包的,class文件是二进制文件,使用流将class文件读入,然后转为字符再写入到文件中就完成反编译了。不过经过混淆过的jar包好像不能反编译。