android逆向基礎:apk 反編譯 重打包 重簽名

來源:互聯網
上載者:User

標籤:

apk 反編譯大家都比較熟悉,這裡只做一個筆記。

1 反編譯 apk

apktool d perfect.apk

這樣就把資源檔解壓縮了, classes.dex 也反編譯成了 smali 檔案

2 修改 smali 檔案

得到 smali 檔案,現在就可以對 smali 檔案進行修改和添加自己的代碼了。 

當然可以進一步用  dex2jar 處理將  dex 轉成 java class 檔案, 再用  jd-jui 等反編譯成 java 代碼。

現在 apk 基本都做了混淆, 但仔細讀還是基本能夠明白意思的。

修改 smali 是考驗你 smali 彙編的基礎, 這個就是孰能生巧,多讀多練了, 比 arm 彙編要簡單多了。

3 重新打包

apktool b perfect

4 重簽名

重新打包後沒有簽名資訊, 還需要重新簽名,因為 apk 沒有簽名是不能安裝的。

簽名也很簡單用 jarsigner 就行,  jarsigner 和 keytool 其實都是 jdk 中的工具, 在 java 安裝目錄下可找到, 本來就是給 jar 檔案簽名的

jarsigner -verbose -keystore leslie.keystore -storepass 123456 -keypass 123456 -signedjar  perfect-hack-signed.apk  perfect-hack.apk lesliekeystore

也可以用預設的 debug key 簽名,  debug.keystore 一般位於  ~/.android 目錄下

jarsigner -verbose -keystore debug.keystore -storepass android -keypass android -signedjar  perfect_signed.apk  perfect.apk androiddebugkey

如果沒有 keystore 可以用 keytool 產生一個

jarsigner -verbose -keystore leslie.keystore -storepass 123456 -keypass 123456 -signedjar  perfect-hack-signed.apk  perfect-hack.apk lesliekeystore

這是基礎中的基礎了,看著很簡單,但自己在 smali 中注入了一行彈 toast 的代碼還是用了一天的時間。

 

android逆向基礎:apk 反編譯 重打包 重簽名

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.