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>
<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 格式的中间语言