java -jar apktool.jar d- d nixiang.apk -o out
在out文件中打開AndroidManifest.xml然後在application節點中設置屬性android:debuggable="true"
找到含有<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
的activity節點,其android:name的屬性值爲應用的主類
在主類的第一句(即.method public 後面)插入invoke-static {}, Landroid/os/Debug;->waitForDebugger()V(如果逆向後的文件前面有前綴,那麼也要加前綴到前面),和Landroid有個空格不然會出錯
然後用命令java -jar apktool.jar b -d out -o debug.apk將其重新編譯爲debug.apk
然後利用signapk軟件簽名,java -jar signapk.jar testkey.x509.pem testkey.pk8 debug.apk debug.sig.apk生成簽名後的debug.sig.apk
然後將debug.sig.apk安裝。安裝後會一直白屏等待調試。
利用android studio逆向步驟見https://blog.csdn.net/u013736724/article/details/53292855
使用dex2jar和jd-gui反編譯apk得到Java源代碼 https://blog.csdn.net/ygd1994/article/details/51809142
關於R的介紹https://ask.csdn.net/questions/235448
關乎react-native見https://www.jianshu.com/p/97692b1c451d
Smali 是 Android 的 Dalvik 虛擬機所使用的一種 dex 格式的中間語言