相關(guān)工具:
-
apktool
java -jar apktool.jar ssss.apk
1、反編譯dex -> smali文件
2、res文件夾可讀
3、AndroidManifest.xml文件可讀
R.java文件對應(yīng)的值在res/values/public.xml文件里 -
dex2jar
將dex文件反編譯成jar文件 -
Jadx
反編譯dex,轉(zhuǎn)成java文件,
優(yōu)點:能夠查找方法的引用 -
jd-gui
反編譯dex,轉(zhuǎn)成java文件
優(yōu)點:速度快
缺點:部分類可能會反編譯失敗 -
luyten 同上
遇到部分類反編譯失敗Jd-gui,Jadx,Luyten可以結(jié)合使用 - 動態(tài)調(diào)試smali
以上工具的具體使用方法請百度。
相關(guān)技巧:
-
查看當(dāng)前Activity信息:
1、通過如下命令你可以快速的定位到當(dāng)前頁面所對應(yīng)的Activity:
adb shell dumpsys activity top
2、使用如下工具,通過View Id 查找引用View的相關(guān)Activity,也可以分析當(dāng)前頁面的的布局結(jié)構(gòu):
image.png
View Id 可能需要現(xiàn)在R.java或者public.xml查找對應(yīng)的10進制或者16進制的值,然后才能在項目中找到。
微信可能做了資源混淆(或者以后遇到做了資源混淆的apk)的時候,如果發(fā)現(xiàn)通過public.xml中的id值查找不到結(jié)果,可以直接使用R.xxx.xxx進行查找id值。 使用Jadx進行方法跟蹤時候如果發(fā)現(xiàn)沒有結(jié)果,可能這個方法是抽象的,需要找到這個抽象方法最原始的定義的地方繼續(xù)跟蹤即可。
- 指定app安裝器包名:
使用命令pm install -i[指定安裝器包名] apk文件,這個命令可以指定一個app的安裝器 - 快速在反編譯的項目中找到自己想要的,除了掌握必要的反編譯技巧,還需要會猜測和想象力。
博客推薦:編碼美麗http://blog.csdn.net/jiangwei0910410003?viewmode=contents
