日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
關(guān)于如何對(duì)Android代碼進(jìn)行混淆的教程

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

成都創(chuàng)新互聯(lián)公司專注于網(wǎng)站建設(shè)|成都網(wǎng)站維護(hù)|優(yōu)化|托管以及網(wǎng)絡(luò)推廣,積累了大量的網(wǎng)站設(shè)計(jì)與制作經(jīng)驗(yàn),為許多企業(yè)提供了網(wǎng)站定制設(shè)計(jì)服務(wù),案例作品覆蓋成都茶藝設(shè)計(jì)等行業(yè)。能根據(jù)企業(yè)所處的行業(yè)與銷售的產(chǎn)品,結(jié)合品牌形象的塑造,量身設(shè)計(jì)品質(zhì)網(wǎng)站。

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

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

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

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

“ dex2jar.bat classes.dex”

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

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

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

非常簡(jiǎn)單的步驟就能讓代碼暴露。

那么,如何對(duì)我們的代碼混淆呢?

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

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

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

To enable ProGuard so that it runs as part of an Ant or Eclipse build,  set the proguard.config property in the /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文件,然后用上面的方法 反編譯你的 項(xiàng)目,你會(huì)看到 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 
  17.   
  18. -keepclasseswithmembernames class * { 
  19.     public (android.content.Context, android.util.AttributeSet); 
  20.   
  21. -keepclasseswithmembernames class * { 
  22.     public (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é)的話就琢磨琢磨這個(gè)配置文件吧!~


分享文章:關(guān)于如何對(duì)Android代碼進(jìn)行混淆的教程
文章起源:http://www.dlmjj.cn/article/dpcedjg.html