Android編程之防止反編譯的實(shí)現(xiàn)方法
本文實(shí)例講述了Android編程之防止反編譯的實(shí)現(xiàn)方法。分享給大家供大家參考,具體如下:
1. 判斷程序是否運(yùn)行在模擬器上
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.product.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已經(jīng)修復(fù)了
5. 花指令,影響jd-gui 但是最新版本的jd-gui已經(jīng)修復(fù)
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";
在每個(gè)類里面加入 如上字段。。。。
https://***/ 一個(gè)第三方得”愛加密“網(wǎng)站 1.需要使用官方的打包key工具打包后上傳到"愛加密"網(wǎng)站進(jìn)行處理,然后到網(wǎng)站上面下載,下載后還要用"愛加密"的打包工具再次進(jìn)行打包即可。
希望本文所述對大家Android程序設(shè)計(jì)有所幫助。
相關(guān)文章
android列表控件實(shí)現(xiàn)展開、收縮功能
這篇文章主要為大家詳細(xì)介紹了android支持展開/收縮功能的列表控件,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-11-11淺談onTouch先執(zhí)行,還是onClick執(zhí)行(詳解)
onTouch先執(zhí)行,還是onClick執(zhí)行?下面小編就為大家?guī)硪黄獪\談onTouch先執(zhí)行,還是onClick執(zhí)行(詳解)。希望對大家有所幫助。一起跟隨小編過來看看吧2017-03-03Android實(shí)現(xiàn)拍照或者選取本地圖片
這篇文章主要為大家詳細(xì)介紹了Android實(shí)現(xiàn)拍照或者選取本地圖片,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-03-03Android進(jìn)階之使用時(shí)間戳計(jì)算時(shí)間差
這篇文章主要為大家詳細(xì)介紹了Android進(jìn)階之使用時(shí)間戳計(jì)算時(shí)間差,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-12-12Android Zipalign工具優(yōu)化Android APK應(yīng)用
本文主要介紹Android Zipalign工具優(yōu)化Android APK應(yīng)用,這里整理了相關(guān)資料及簡單優(yōu)化實(shí)例,有需要的小伙伴可以參考下2016-09-09Android viewpager自動輪播和小圓點(diǎn)聯(lián)動效果
這篇文章主要為大家詳細(xì)介紹了Android viewpager自動輪播和小圓點(diǎn)聯(lián)動效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-10-10Android中Android Virtual Device(AVD)使用教程
這篇文章主要介紹了Android中Android Virtual Device(AVD)使用教程,本文還對使用過程中發(fā)生的一些錯(cuò)誤給出了處理方法,需要的朋友可以參考下2015-01-01