成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

關(guān)于如何對Android代碼進(jìn)行混淆的教程

移動開發(fā) Android
對apk進(jìn)行反編譯,可以很容易的得到j(luò)ava代碼,導(dǎo)致辛辛苦苦編寫的程序代碼泄露,我想這是程序員不愿意看到的結(jié)果,這里分享如何對Android代碼進(jìn)行混淆的教程,希望對你有所幫助。

apk直接可以 解壓,然后很容易的就可以反編譯出.java,找了找,果然,這一切只不過是 一分鐘的事兒:

1、得到classes.dex文件;直接用你機(jī)器上的解壓軟件打開.apk 文件,解壓出 classes.dex 文件。

2、還原.jar文件;這一步需要用到一個工具 dex2jar (谷歌的代碼庫里有 http://code.google.com/p/dex2jar/)

下載完了,解壓,然后把***步的 產(chǎn)物(即那個classes.dex文件)放到 dex2jar的解壓目錄里。

cmd命令行,目錄切換到dex2jar的目錄下:

“ dex2jar.bat classes.dex”

看到命令行的 “Done” 之后, dex2jar文件夾里 就會有“classes.dex.dex2jar.jar” 文件了,這個就是傳說中的jar包了。

3、查看.jar文件;這一步就是傳統(tǒng)的反編譯了,需要工具輔助,我這里用到的工具是jd-gui(http://java.decompiler.free.fr/?q=jdgui)

下載你的系統(tǒng)對應(yīng)的版本、解壓,你會看到一個.exe文件,雙擊,選擇第二步生成的.jar, 好吧,你的項目是不是完全還原了呢?

非常簡單的步驟就能讓代碼暴露。

那么,如何對我們的代碼混淆呢?

新建一個 2.3.3的項目,你會看到項目文件里有一個proguard.cfg 文件,google已經(jīng)幫我們做了這么多事,可惜是從2.3開始的,那我 悲催的項目(基于2.2的sdk) 該如何是好?

呵呵,其實(shí)不用,你只要 把 proguard.cfg 文件 拷貝到 你的 舊項目里就好了。

當(dāng)然這樣還不夠,因?yàn)?google是默認(rèn)不混淆項目的:

To enable ProGuard so that it runs as part of an Ant or Eclipse build,  set the proguard.config property in the <project_root>/default.properties file.  The path can be an absolute path or a path relative to the project's root.  

google 告訴我們 還要 配置 default.properties.

嗯,把 proguard.config=proguard.cfg 加上,好了,再次生成 新的  .apk文件,然后用上面的方法 反編譯你的 項目,你會看到 aa bb cc 的包、aa bb cc 的類 和 aa bb cc 的變量名,方法名.

再看看 proguard.cfg 文件

  1. -optimizationpasses 5 
  2. -dontusemixedcaseclassnames 
  3. -dontskipnonpubliclibraryclasses 
  4. -dontpreverify 
  5. -verbose 
  6. -optimizations !code/simplification/arithmetic,!field/*,!class/merging/* 
  7.   
  8. -keep public class * extends android.app.Activity 
  9. -keep public class * extends android.app.Application 
  10. -keep public class * extends android.app.Service 
  11. -keep public class * extends android.content.BroadcastReceiver 
  12. -keep public class * extends android.content.ContentProvider 
  13. -keep public class com.android.vending.licensing.ILicensingService 
  14.   
  15. -keepclasseswithmembernames class * { 
  16.     native <methods>; 
  17.   
  18. -keepclasseswithmembernames class * { 
  19.     public <init>(android.content.Context, android.util.AttributeSet); 
  20.   
  21. -keepclasseswithmembernames class * { 
  22.     public <init>(android.content.Context, android.util.AttributeSet, int); 
  23.   
  24. -keepclassmembers enum * { 
  25.     public static **[] values(); 
  26.     public static ** valueOf(java.lang.String); 
  27.   
  28. -keep class * implements android.os.Parcelable { 
  29.   public static final android.os.Parcelable$Creator *; 

這里是 google默認(rèn)不混淆 Activity 、Service類的子類, 正如上面的截圖中看到的 所有activity的子類名稱是被保留的。想自定義混淆細(xì)節(jié)的話就琢磨琢磨這個配置文件吧!~

責(zé)任編輯:徐川 來源: eoeAndroid
相關(guān)推薦

2024-07-30 08:11:16

2023-01-03 10:46:29

2014-05-14 00:50:18

JoyentNode

2017-03-02 13:05:10

Android代碼混淆

2024-03-01 08:23:39

2017-12-12 13:17:36

機(jī)器學(xué)習(xí)代碼單元測試

2021-11-04 05:43:38

GoKartGo代碼靜態(tài)安全分析

2010-02-22 10:18:29

Python代碼

2010-02-02 14:11:14

Python 進(jìn)行編程

2010-01-13 18:47:53

C++教程

2016-01-12 10:38:58

Angular.js代碼調(diào)試

2017-07-24 13:00:52

2023-08-04 17:52:22

2011-01-20 10:33:30

Postfix

2023-01-30 08:30:09

Tomcat性能優(yōu)化

2010-03-03 14:51:02

Android手機(jī)

2017-03-07 08:45:24

AndroidCPU鎖頻

2011-08-24 15:42:38

LUA源代碼

2011-09-07 13:42:36

Android Wid實(shí)例

2011-09-14 10:37:43

Android 2.3StrictMode
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 国产精品国产 | 国产成人自拍一区 | 欧美成人免费在线 | 久久精品国产一区二区电影 | 国产成人免费网站 | 国产精品久久久久久久久动漫 | 成人九色 | 国产一区2区 | 中文字幕一区二区三区在线乱码 | 久国产视频 | 97福利在线 | 99久久婷婷国产亚洲终合精品 | 久久午夜国产精品www忘忧草 | 色在线免费视频 | 欧美一级久久 | 99精品国自产在线观看 | 欧美一区二区三区四区在线 | 一级a性色生活片久久毛片波多野 | 欧美精品一区二区三区蜜臀 | 国产在线视频一区二区 | 91av在线视频观看 | 色婷婷一区| 国产十日韩十欧美 | 国产精品夜夜夜一区二区三区尤 | 日p视频免费看 | 欧美精品二区 | 国产一区二区黑人欧美xxxx | 免费在线a视频 | 一级高清 | 99re在线视频免费观看 | 亚洲午夜精品视频 | 免费国产一区二区 | 欧美日韩专区 | 国产欧美一区二区在线观看 | 欧美精品一区二区三区四区五区 | 99精品欧美一区二区蜜桃免费 | 亚州一区二区三区 | 91视频免费黄| 91综合网 | 人人叉| 欧洲高清转码区一二区 |