我的位置: 首頁 > 學習專區(qū) > 安卓技術(shù) > android反編譯和防止反編譯的方法

android反編譯和防止反編譯的方法

2012-02-15 11:25:00
來源:
[導讀] android基于java的,而java反編譯工具很強悍,所以對正常apk應(yīng)用程序基本上可以做到100%反編譯還原。  因此開發(fā)人員如果不準備開源自己的

android基于java的,而java反編譯工具很強悍,所以對正常apk應(yīng)用程序基本上可以做到100%反編譯還原。  因此開發(fā)人員如果不準備開源自己的項目就需要知道怎樣防止反編譯和反編譯他人的項目來學習。

2.3版本以上在eclipse自動生成的default.properties文件中加上一句“proguard.config=proguard.cfg”可以對代碼進行混淆,反編譯后是很難看懂的。

2.3之前的SDK版本也沒關(guān)系,把上面的proguard.cfg文件復制一份放到項目中,然后進行相同的操作即可。

有些應(yīng)用反編譯后java代碼用jd-ui根本都無法打開,連混淆的代碼都看不到的,本人嘗試多次都做不到,希望知道的告知下怎么處理的。

注意:上面的功能只是把java代碼混淆了,xml和資源文件、圖片并沒有混淆,有些游戲應(yīng)用圖片比較重要需要轉(zhuǎn)換成dat文件 再加上自己的加密解密算法還原。

另外加了混淆功能后還有壓縮的功能,混淆后的apk比原來的小(具體比例看你的代碼重復量了)

說完防止反編譯再來說說怎么反編譯吧

先說一下反編譯的流程和原理:

1.用apktool 把apk--> 資源包(java代碼變成smali文件看不懂的),可以修改資源包里面的文件。

2.apk后綴名改成zip或rar解壓,獲取 classes.dex 文件,用dex2jar轉(zhuǎn)換成jar包(注:直接解壓出來的資源文件是不能直接打開的,要用第一步的反編譯工具)。

3.用jd-ui等java反編譯工具直接查看java代碼。

4.把java代碼和第一版的資源包整到一起重新組成一個新的應(yīng)用。

5.用apktool 重新編譯。

6.用簽名工具重新簽名。

7.重新發(fā)布帶新的簽名的應(yīng)用。

注:如果不用改java代碼,只是換換風格和漢化2.3.4步則不用做。

google code上的開源項目

apktool http://code.google.com/p/android-apktool/

dex2jar http://code.google.com/p/dex2jar/

另外有人做了個工具套裝,集成了apktool dex2jar jd-ui,不過我下載了運行不了 不知道是不是相應(yīng)環(huán)境沒有配對導致的

hackapk http://code.google.com/p/hackapk/

評論
熱點專題
>>
相關(guān)文章推薦
>>
好吊妞免费视频在线观看,久久亚洲国产人成综合网,久久精品国产2020,欧美精品综合在线
三级国产国语三级在线蔓延 | 亚洲国产AⅤ久久综合 | 亚洲色精品V一区二区 | 亚洲日本视频在线观看 | 久久精品男人资源 | 在线观看国产日韩欧美 |