當前位置:首頁 » 安卓系統 » android混淆jar

android混淆jar

發布時間: 2023-03-05 11:14:21

㈠ 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工具打包後上傳到"愛加密"網站進行處理,然後到網站上面下載,下載後還要用"愛加密"的打包工具再次進行打包即可。

㈡ 如何使用Android Studio打包混淆的Jar

混淆android工程打成的jar包方式如下:
從SDK2.3開始、在android-sdk-windows\tools\下面多了一個proguard文件夾讓proguard.cfg起作用的做法很簡單,就是在eclipse自動生成的default.properties文件中加上一句「proguard.config=proguard.cfg」就可以

㈢ Android第三方類庫中的jar包不被混淆

假如你的項目中有這樣一個image類庫, 打開image類庫下的build.gradle文件,查看裡面有哪些 引用包 ,如果lib裡面也有包, lib中的也需要查看

假如現在,讓 最後一個" compile'com.blankj:utilcode:1.9.8 '" 不被混淆

打開圖中的 External Libraries 文件, 我們導入的所有的第三方jar包都在裡面
找到" compile'com.blankj:utilcode:1.9.8 '"

查看包名,在混淆文件中添加

所有的jar包都依次寫上 -keep class "jar包名" ,就ok了
--注意事項--
1.保證實體類不被混淆
2.保證第三方的jar包不被混淆,類似於,友盟,地圖,等等,配置的時候,就把混淆文件也過來,免得再回去找
3.添加基礎混淆配置,網上有很多的實例

################ 以下直接到 proguard-rules.pro文件中,實體類,第三方部分,需修改####################

熱點內容
源碼的移碼 發布:2025-05-09 21:25:01 瀏覽:753
ie內核緩存 發布:2025-05-09 21:19:35 瀏覽:544
第五人格伺服器錯誤是怎麼解決 發布:2025-05-09 21:14:24 瀏覽:512
壓縮系數z 發布:2025-05-09 21:01:51 瀏覽:652
雙開助手緩存的文件在哪 發布:2025-05-09 21:01:41 瀏覽:525
酒仙腳本 發布:2025-05-09 21:00:40 瀏覽:905
牙髓存儲 發布:2025-05-09 20:50:22 瀏覽:433
安卓如何看自己去過哪裡 發布:2025-05-09 20:37:23 瀏覽:695
電腦怎麼製作手機版的我的世界伺服器 發布:2025-05-09 20:36:45 瀏覽:533
免流腳本破解 發布:2025-05-09 20:33:49 瀏覽:182