当前位置:首页 » 编程软件 » jar包防止反编译工具

jar包防止反编译工具

发布时间: 2022-10-19 17:48:59

‘壹’ 有哪些防止反编译 java 类库 jar 文件的办法

java本就是开源的,你加密感觉怪怪的。
想防止反编译,最简单的方法就是你可以向Jar注入无效代码。比如建一个类,建一个没有意义的方法private class Invalid{ },然后输出为jar。用解压缩软件打开这个jar,以文本方式找到那个类的class,然后将那个方法名的一个字母删掉,然后更新入压缩文件中。用jd-gui反编译提示错误。这种方式不能用于android中。
还有种方法就是混淆代码,加密class和高级加密class,方式比较复杂,可以自行网络。

‘贰’ java的打包后jar包里面的class文件都能被反编译成为源码

jd-gui这个工具可以进行反编译的操作。 不过反编译的质量随着混淆的程度而定。
特别复杂的代码(如加密算法)反编译一般都有问题。可以建议用 javap -c -p 来看字节码。然后参考jvm指令。
一般编译的文件,都可以反编译为源码,但如果是经过加密、以及代码异常复杂,是很难恢复全部的源码。

‘叁’ 几种java反编译软件的安装以及使用总结

下面是在网上找的几种反编译软件的安装以及使用:
一、JD-JUI
官网下载链接:http://jd.benow.ca/
下载之后解压
点击“jd-gui.exe”运行:
直接将".jar"文件拖入进去即可查看里边的“.class”文件,如上图所示。
二:Luyten
官网下载链接:https://github.com/deathmarine/Luyten/releases/tag/v0.5.3
点击“luyten-0.5.3.exe”下载,下载之后点击运行,运行后的界面如图所示,同样也是讲“.jar”文件拖入进入即可。
三、在eclipse中安装反编译工具
准备工作:
“jad.exe”下载:https://varaneckas.com/jad/
“net.sf.jadclipse_3.3.0.jar”下载:https://sourceforge.net/projects/jadclipse/files/
jad.exe”下载:
“net.sf.jadclipse_3.3.0.jar”下载:
然后将“net.sf.jadclipse_3.3.0.jar”拷贝到eclipse的plugins目录下,再删除eclipse的configuration目录下“org.eclipse.update”文件,这一步很重要!
重启eclipse,点击window->Preference->Java,你会发现里边多了一个插件“JadClipse”,
选中这个插件,将下图中红圈圈的地方的地址填写为你 “jad.exe”文件的地址
还没有配置完,先不要close,
点击General->Editors->File Associations 后,进入下边的界面
设置.class 文件默认打开方式:
设置.class without source文件的默认打开方式,
需要注意的是,“JadClipse Class File Viewer”这个一开始是没有的,需用添加,如下图所示:
接下来在eclipse中查看反编译后的代码:(这种方法可能不合适,但是能够查看)
新建一个EJB project,右键“import”,选中"EJB JAR file",导入你的jar包,Finish
在项目下找你要查看的反编译的文件即可,如果你遇到了下边的这种情况
关闭这个文件后再次打开,就可以查看了(我的是这样,所以我感觉这个方法不太好,但别的方法又不知道怎么查看):
有错误或者有更好的方法,希望大家在下边留言指出

‘肆’ 被混淆的jar包如何反编译

暂时想到的只有将jar文件解压,用反编译工具反编译相关类,修改,编译成类替换原文件,再打包成。

‘伍’ 如何在MyEclipse10中配置Jad反编译工具

第一种:在eclipse外部打开jar文件

JavaDecompiler.exe,该软件可以打开整个jar包,功能很强大。

二、在MyEclipse内部打开jar文件

第一步:

下载jad.exe文件

下载jadeclipse插件

第二步:

(1)将jad.exe解压到java的jdkin目录下

(2)将jadeclipse插件net.sf.jadclipse_3.3.0.jar

拷贝到myeclipse安装目录GenuitecCommonplugins目录下。

(3)

在myeclipse安装目录下的dropins中创建eclipse文件夹,然后在eclipse文件夹中分别创建features、plugins文

件夹,将

net.sf.jadclipse_3.3.0.jar分别拷贝到features和plugins文件夹中。

(4)重新启动myeclipse后,配置jadeclipse插件

1)在eclipse窗口下,点击Window>Preferences>Java>JadClipse

>Pathto

Decompiler。(设置jad的绝对路径,如

C:javaJadjad.exe)。UseEclipsecodeformatter(overridesJad

formatting

instructions)选项打勾,与格式化出来

的代码样式一致。

2)在eclipse窗口下,点击Window>Preferences>Java>JadClipse

>Misc,将ConvertUnicodestringsinto

ANSI

strings选项打勾,避免反编译后可能出现的中文乱码。

‘陆’ android app怎么防止反编译

APK在PC上面就被看作一个压缩格式文件,在手机上面它就算一个可执行格式文件。两种格式对它的读取要求也有区别,所以说利用这个区别来实现伪加密。对PC端来讲伪加密的APK没法被解包无法被反编译,但是对android系统来说它完全不会影响正常的安装运行(对4.2以前的系统)。

伪加密的原理:读取APK的字节,找到连续4位字节标记为”P K 01 02”的后第5位字节,如果是0表示不加密,如果是1就表示加密(伪加密就强行改成1 反伪加密就是把1改成0就可以了)。
2
伪加密前和伪加密后的对比图如下:
伪加密前:

3
伪加密后:

END
使用第三方平台加密

步骤如下:
登录/注册→上传APK→等待系统加密→完成后下载APK→给APK签名→完成!

2
爱加密作为移动安全行业的第三方平台,为Android APP移动应用提供专业的加固保护方案,包括DEX文件保护、资源文件保护、XML主配文件保护、防二次打包保护、so文件保护、内存保护、高级混淆等,全方位保护Android App,防止被反编译、破解等,维护广大开发者朋友的切身利益!

‘柒’ java反编译工具有哪些

1、 Java反编译插件—Jadclipse
JadClipse是Jad的Eclipse插件,是一款非常实用而且方便地Java反编译插件,我们只需将下载的插件包复制到eclipse的plugins目录下,然后修改window -> Preferences -> Java -> JadClipse 下的Path to decompiler ,如:C:\pin\jadnt158\jad.exe,最后在Windows -> Perference -> General -> Editors -> File Associations中修改“*.class”默认关联的编辑器为“JadClipse Class File Viewer” 即可。
2、 Java反编译工具 —jad
jad是一款使用非常广泛地Java反编译工具,上面这款Jadclipse就是基于jad的反编译插件,JAD 文件包含 MIDlet 套件的标题信息,例如开发应用程序的公司、应用程序名称和大小。
3、 Java 反编译器—JD-GUI
JD-GUI 是一个用 C++ 开发的 Java 反编译工具,由 Pavel Kouznetsov开发,支持Windows、linux和苹果Mac Os三个平台。而且提供了Eclipse平台下的插件JD-Eclipse。JD-GUI不需要安装,直接点击运行,可以反编译jar,class文件。
4、 Java反编译器—jdec
jdec是一个Java反编译器。它能够把出现在一个.class文件中的字节码还原成Java源代码,反编译的结果几乎与原始Java文件相同。它还自带一个利用swing开发的用户操作界面。
5、 uuDeJava
uuDeJava是Java Class文件的反编译工具。反编译的Java源程序被输出到Class的相同目录。内部使用jad.exe。反编译Class文件时,可以直接点击Class文件(关联后),或者选中文件或目录发送到uuDeJava的快捷方式。还可以拖动文件或目录到uuDeJava的主窗口。
6、 Java 反向工程软件—Minjava
Minjava 是一个 Java 反向工程软件,可帮助理解已存在一些 Java 软件的架构和行为。
7、 Java Decompiler
这款反编译器叫 “Java Decompiler”, 由 Pavel Kouznetsov开发,目前最新版本为0.2.5. 它由 C++开发,并且官方可以下载 windows、linux和苹果Mac Os三个平台的可执行程序。
参考资料:http://www.kiwisec.com/news/detail/592e90c09a3e7a3fddc62db7.shtml

‘捌’ 如何对java的jar包反编译

使用现有的反编译工具或者自己写一个,jar包实际上是class文件打包的,class文件是二进制文件,使用流将class文件读入,然后转为字符再写入到文件中就完成反编译了。不过经过混淆过的jar包好像不能反编译。

‘玖’ 如何把 jar 文件加密

1,打开一个要加密的文本文档。
2,确保一下里面的内容都保存好了后,关闭退出。
3,返回存放这个文本文档的地方,然后选中它,右键一下,在弹出来的列表中我们选择“重命名”选项。
4,接着就可以对这个jar档转换一下格式,比如可以把它转换成表格或者word文档,即把后缀改成“.doc”等格式,然后转换成文档后,这时就知道文档里面是加密功能的。

‘拾’ 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工具打包后上传到"爱加密"网站进行处理,然后到网站上面下载,下载后还要用"爱加密"的打包工具再次进行打包即可。

热点内容
我的世界服务器圈太大了怎么办 发布:2025-05-17 11:15:21 浏览:614
便宜的免费云服务器 发布:2025-05-17 11:08:50 浏览:776
中国顶级dhcp解析服务器地址 发布:2025-05-17 11:06:27 浏览:33
php转义html 发布:2025-05-17 11:04:00 浏览:567
钢筋笼加密区规范 发布:2025-05-17 10:59:50 浏览:4
我的世界网易手机版主播服务器房号 发布:2025-05-17 10:40:59 浏览:227
竖编译 发布:2025-05-17 09:56:08 浏览:229
编程画飞机 发布:2025-05-17 09:54:03 浏览:803
手机如何解锁密码屏幕锁怎么删除 发布:2025-05-17 09:52:04 浏览:125
网络无法访问网页 发布:2025-05-17 09:51:40 浏览:651