apkTool---一個簡單好用的apk反編譯工具
前言
一直聽說過反編譯,感覺很高大上,一直沒自己用過,今天因緣巧合之下,終於要開始逐漸認識,瞭解和學習一下反編譯了~先給自己說下加油,鼓勵一下下
apktool的下載和安裝
apktool 下載地址:
Apktool [![Join the chat athttps://gitter.im/iBotPeaches/Apktool]
apktool 安裝教程:
這個是上面網站上給出的安裝使用文件:
Apktool - How to Install
注:以上都需科學上網.
首先,先反編譯一下
當完成以上步驟之後,我們 window +R->開啟 cmd 視窗
1.執行 apktool 命令 出現了 apktool 的版本號和指導的命令
2.隨便找來一個 apk ,嘗試反編譯一下,執行 apktool d -f c:\test.apk -o c:\test 命令,把 test.apk 反編譯,反編譯後的檔案放入 c 盤下的 test 檔案中
3.反編譯的檔案結構如下:
造成這個現象的原因是:
Android 的 assets 和 res 檔案都不會編譯為二進位制檔案,所以反編譯後,基本都是能看到它的全貌.
Android 中 .Java 檔案,在 JVM 編譯之後變成 .class 檔案,然後再經過Android 的虛擬機器 Dalvik,程式碼編譯為 .smali 檔案
smali 是另外一種語言,和彙編是有點像的,涉及暫存器操作等,下面是一個截圖,對於我來說,只能是大概能看懂:
若是對 smali 語法有興趣,可以去下面網址看一下,StackOverFlow 上面萬能網友們給出了很多學習的網址.
What’s the best way to learn Smali (and how/when to use Dalvik VM opcodes)?
然後,想想反編存在的意義在哪裡?
Every coin have two sides.這是我高中英文作文基本都會寫的一句話.每個工具都是一把雙刃劍,就像一枚硬幣有正反兩面一樣.那麼 強大的 apktool 肯定也是一樣.以下屬於,我個人的見解,如有不對,還望指正.
帶來便利一面:
提供一個方式,去反編譯優秀的軟體,學習知識
smali 是 Dalvik 的執行語言,你完全可以通過反編譯去檢視 Java 程式碼的 smali 語言,去更深入的瞭解程式的執行原理和流程
帶來威脅一面:
釋出的 APK 被二次打包,作為盜版產品使用,甚至惡意插入廣告,病毒等,對軟體公司帶來損失
釋出的 APK 被反編譯,獲取的有關伺服器的資訊,給伺服器帶來威脅.
通過反編譯修改 smali 檔案,減去客戶端的限制,去獲取不正當的利益,一般發生在遊戲軟體上
對於開發者來說,前者你可以不用,但是後者不得不防,於是,我們必須給自己的 APK 加上保護.
至於怎麼加,表示最近正在瞭解和學習這方面的知識^_^,也許下篇部落格會講,我會回來補上鍊接的.
連結來了:Android-安全-簽名驗證讓二次打包變的更難(https://blog.csdn.net/qq_32452623/article/details/54351364)
相關文章
- Android Apk反編譯系列教程(一)如何反編譯APKAndroidAPK編譯
- 反編譯apk編譯APK
- [轉]andriod的apk檔案相關的編譯反編譯工具APK編譯
- 練習向:一次簡單的APK反編譯後二次打包APK編譯
- APK反編譯後程式碼分析(一)APK編譯
- Android APK反編譯就這麼簡單 詳解(附圖)AndroidAPK編譯
- 常見 APK 反編譯工具安裝與使用APK編譯
- apk 包的破解與反編譯APK編譯
- Java反編譯工具使用對比,最好用的Java反編譯工具 --- JD-GUI、XJadJava編譯GUI
- Mac平臺反編譯Unity編譯的安卓apkMac編譯Unity安卓APK
- 安卓apk檔案反編譯安卓APK編譯
- mac上Apk反編譯工具合集整理與資源MacAPK編譯
- 關於Android APK反編譯AndroidAPK編譯
- javascript編寫一個簡單的編譯器JavaScript編譯
- apkTool反編譯apk碰到的問題APK編譯
- Android Apk反編譯系列教程(二)APK重打包AndroidAPK編譯
- 一個簡單好用的java增量更新工具Java
- 使用AndroidKiller進行APK反編譯AndroidAPK編譯
- android 反編譯APK取原始碼。Android編譯APK原始碼
- Android反編譯:反編譯工具和方法Android編譯
- 反編譯Apk後 找到對應的佈局編譯APK
- apk decompile 線上反編譯工具-toolfk程式設計師線上工具網APKCompile編譯程式設計師
- java反編譯工具Java編譯
- Android APK反編譯技巧全講解AndroidAPK編譯
- Android Apk反編譯得到Java原始碼AndroidAPK編譯Java原始碼
- 反編譯APK資原始檔與原始碼編譯APK原始碼
- 10個最好用的線上編譯/除錯工具編譯除錯
- 實現一個簡單的 JavaScript 編譯器JavaScript編譯
- 爬蟲app資訊抓取之apk反編譯抓取爬蟲APPAPK編譯
- MacOS X APK 最新版本 反編譯MacAPK編譯
- .net反編譯工具ILSpy編譯
- Reflector(.Net的Dll反編譯工具)編譯
- 用Python做一個簡單的翻譯工具Python
- Android 安全之如何反編譯與加密apk包Android編譯加密APK
- Android安全之如何反編譯與加密apk包Android編譯加密APK
- 簡單又好用的高效工具
- jad反編譯工具的那些事編譯
- Android Apk 檔案反編譯和重新打包的過程分析AndroidAPK編譯