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編譯
- mac上Apk反編譯工具合集整理與資源MacAPK編譯
- Android Apk反編譯系列教程(二)APK重打包AndroidAPK編譯
- android 反編譯APK取原始碼。Android編譯APK原始碼
- 使用AndroidKiller進行APK反編譯AndroidAPK編譯
- Android APK反編譯技巧全講解AndroidAPK編譯
- 一個簡單好用的java增量更新工具Java
- apk decompile 線上反編譯工具-toolfk程式設計師線上工具網APKCompile編譯程式設計師
- 實現一個簡單的 JavaScript 編譯器JavaScript編譯
- java反編譯工具Java編譯
- 用Python做一個簡單的翻譯工具Python
- MacOS X APK 最新版本 反編譯MacAPK編譯
- 爬蟲app資訊抓取之apk反編譯抓取爬蟲APPAPK編譯
- Android Apk 檔案反編譯和重新打包的過程分析AndroidAPK編譯
- 簡單又好用的高效工具
- [譯]ViewModels:一個簡單的示例View
- Android反編譯工具Apktool淺析Android編譯APK
- 簡潔好用的文字編輯工具Typora
- 一個簡單的BypassUAC編寫
- 簡單好用的js 壓縮工具JS
- Android開發:APK的反編譯(獲取程式碼和資原始檔)AndroidAPK編譯
- Gluon 編譯 JavaFx -> android apk編譯JavaAndroidAPK
- MAC使用APKTool反編譯apk修改版本號後重新打包MacAPK編譯
- Android Apk反編譯系列教程(三)Android Studio除錯smali程式碼AndroidAPK編譯除錯
- 利用 Docker 構建一個簡單的 java 開發編譯環境DockerJava編譯
- badamczewski/PowerUp:Rust/Go語言的反編譯工具RustGo編譯
- 編譯程式(compiler)的簡單分析編譯Compile
- Java編譯與反編譯Java編譯
- APK編譯及安全防護APK編譯
- 一個簡單易用高效的工具庫
- Laravel 一個簡單的除錯工具Laravel除錯
- MDK5下完成一個stm32簡單程式的編譯編譯
- C# 編寫一個簡單易用的 Windows 截圖增強工具C#Windows
- Java Jar原始碼反編譯工具那家強JavaJAR原始碼編譯
- 編寫一個簡單的JavaScript模板引擎JavaScript
- 編寫一個簡單的智慧合約
- 編寫一個簡單的babel外掛Babel
- 推薦一款採用 .NET 編寫的 反編譯到原始碼工具 Reko編譯原始碼