问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

Android项目里如何混淆自己打的jar包或者防止被反编译?

发布网友 发布时间:2022-04-28 17:17

我来回答

4个回答

热心网友 时间:2022-04-20 10:30

我们打出的apk是混淆的,根本原因是这样的。1、代码编译成class文件2、代码打成jar包3、混淆jar包4、用jar包生成classes.dex5、resources.ap_6、生成apk以及签名只不过工具帮我们一次性全做了,如果你要写批处理来做,就要按上面的步骤来做了。 到eoeAndroid网站查看回答详情>>

热心网友 时间:2022-04-20 11:48

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

热心网友 时间:2022-04-20 13:23

此举多此一举。若真有人有心去解你的包 。不好吗。有人去完善它。

热心网友 时间:2022-04-20 15:14

在protect文件中设置
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
生产车间员工岗位职责及权限、任职要求分别是什么 车间普工岗位职责(集合6篇) "上海"的地名是谁起的,什么意思? 老公的爸妈是表亲,我爸妈也是表兄妹,孩子会怎么样吗? 爸妈是近亲结婚他们是表兄妹 我生孩子会有问题吗? 爸妈是亲表兄妹结婚对这代没事。。不知道下一代有问题没。。。_百度... 鉴证实录 法证女朋友怎么死的0 沈阳御通实业有限公司怎么样? 玉环御通广告有限公司御通服务 问御石通效果怎么样啊,治疗结石的 中央空调室内机什么材料制造的呀?铜和铝的比例正常是多少? 家用中央空调除室外主机,室内机,另进风的叫什么机 中央空调四面出风内机叫什么 嘀嗒顺风车资格证怎么收费 嘀嗒拼车收费就是约车时显示的费用吗? 嘀嗒顺风车车主提现要佣金吗 为什么滴答顺风车车主要求乘客叫我取消订单 加他微信支付 嘀嗒确认后还可以加价吗 嘀嗒顺风车要求私下给钱 给了现金没办法证明怎么办 嘀嗒顺风车含加价费包括一起吗 顺风车主私下要求加钱怎么办 电动开门机接红外感应器有什么好处? 手机上怎么设置才能把天气显示在桌面上英文改中文 被动式红外探测器的优缺点 手机上的红外线感应器有什么作用? 在B站看魔卡少女樱里片尾弹幕都刷:猴! 这是什么梗??? 在bilibili看视频时很卡,CPU使用率非常高,关掉弹幕后仍然有问题 CPU单核2.6G 64MB显卡 512内存 求解决方 红外气体传感器的优点是什么? 东方PROJECT弹幕游戏里哪个玩起来不会卡? 羊肚菌蛋白质的变性温度 中央空调内机50FD是什么意思 jar解压后 如何把解压出来的文件夹 重新编译成jar ??? jar游戏反编译疑问,Java达人求助 这两天在家里老是做梦梦见女人,然后遗精,我要怎么办呢… jar包反编译出来的如何编译 梦见女人,梦遗 梦见一个女生,然后遗精了。什么意思 几兆的移动宽带可以正常看电影 经常梦遗怎么办啊? 老公昨天遗精了,梦见和陌生的女人。可是我们前天刚做了呀?老公告诉我后,也不知道为什么很生气,只是一 移动宽带一年多少兆够用 昨晚睡觉(算清醒的,赖床)梦见美女,然后遗精,今天帮忙看着小卖部,坐着的时候后背不管怎么坐都很痛, 我男友每次遗精他都会梦到我。什么意思啊?男人遗精的时候梦见的女人是不... 南雄移动宽带装一部一年要多少钱,多少兆的? 为什么男生遗精总梦见同一个女人 晚上做梦会梦到跟女人做(遗精)...这会有什么严重问题??????? 为什么一梦到女人**就遗精 一台电脑加一台网络电视如果用移动宽带,大概要多少兆网速才不卡 男生回答,你每次做春梦都梦见女友,而且一梦见就遗精,这个说明了啥_百度... 怎么才能在遗精的时候梦见和女神那个