事前准备1. 操作
1.1 No variants found for 'app'. Check build files to ensure at least one variant exists.1.2 A problem occurred configuring project ':app'.1.3 签名1.4 报错1.5 libnativeDump.so not found1.6 /data/local/tmp/libnativeDump64.so" is 64-bit instead of 32-bit1.7 DumpDex Error: unable to find the Symbol :
参考材料
注:反编译是一个双方都在不断迭代升级的技术,该文章仅供个人记录使用,现在已经不建议使用该方法反编译。建议右转
https://blog.csdn.net/qq_41872247/article/details/123466197
一个解锁,并且安装了Magisk和Xposed的手机
Android Studio
DumpDex项目
https://github.com/WrBug/dumpDex
- 下载项目源码,用Android Studio打开,调试到可以安装的程度。打包之后安装到手机上,同时Android Studio的logcat中搜索dump,查看日志。在Xposed Manager中,启动DumpDex,然后重启手机。打开目标App。如果没有遇到明显的报错日志,应该就没问题了。下载一个es浏览器,在开启root权限之后,进入系统根目录,data/data/目标的应用包名/dump
表示你的Android Studio没有对应版本的SDK
打开右上角的SDKManager,下载对应版本的Android SDK
A problem occurred configuring project ‘:app’.
java.lang.NullPointerException (no error message)
build -> rebuild project
1.3 签名
build -> gengereate signed Bundle/Apk -> 剩下的百度,这个app不能直接点绿色的运行,只能打包之后运行。
java.lang.NoSuchMethodError: java.lang.DexCache#getDex()#bestmatch
at de.robv.android.xposed.XposedHelpers.findMethodBestMatch(XposedHelpers.java:443)
at de.robv.android.xposed.XposedHelpers.findMethodBestMatch(XposedHelpers.java:456)
at de.robv.android.xposed.XposedHelpers.callMethod(XposedHelpers.java:1263)
at com.wrbug.dumpdex.dump.LowSdkDump.dump(LowSdkDump.java:51)
at com.wrbug.dumpdex.dump.LowSdkDump.access$000(LowSdkDump.java:24)
at com.wrbug.dumpdex.dump.LowSdkDump$1.afterHookedMethod(LowSdkDump.java:42)
at de.robv.android.xposed.MethodHooker.handleHookedMethod(MethodHooker.java:94)
at EdHooker_2fbedf373afdb897c32b735747eec14394845d63.hook(Unknown Source:60)
有可能是因为你的Android版本太高了,找到XposedInit.java这个文件,将handleLoadPackage中的if/else加载改成固定加载OreoDump.init。
1.5 libnativeDump.so not found官网介绍:
将 lib/armeabi-v7a/libnativeDump.so 复制到 /data/local/tmp/libnativeDump.so ,权限 设置为777,arm64机型还需要将将 lib/arm64-v8a/libnativeDump.so 复制到 /data/local/tmp/libnativeDump64.so可以通过文件管理器操作,也可以使用如下adb shell命令
#仅适用于32位手机 adb shell su cp /data/data/com.wrbug.dumpdex/lib/libnativeDump.so /data/local/tmp chmod 777 /data/local/tmp/libnativeDump.so
配置完成后激活xposed重启即可
- 解压app-release.apk文件(重命名为zip后解压),拷贝其中文件 libarmeabi-v7alibnativeDump.so 文件到手机目录:/data/local/tmp/libnativeDump64.so (因为我是64位手机,所以,so文件,的名字是这么多,如果是32位的,就没有64这个)(源so,不需要使用64位的)将armeabi-v7a中的libnativeDump.so,复制到手机上的/data/local/tmp目录上,然后用es浏览器修改读写执行权限。如果是64位手机(一般来说都是),将arm64-v8a中的libnativeDump.so改名为libnativeDump64.so,也丢到手机的/data/local/tmp中。
用cmd打开adb
输入
C:UsersadminAppDataLocalAndroidSdkplatform-tools>adb shell
alioth:/ $ su
alioth:/ # getenforce
Enforcing
alioth:/ # setenforce 0
alioth:/ # getenforce
Permissive
alioth:/ #
如果输入su的时候提示permission denied,打开手机的magisk点击下方的盾牌,看看shell是否有被授予权限。
1.7 DumpDex Error: unable to find the Symbol :DumpDex无法反编译这个app
参考材料https://www.jianshu.com/p/4d64eb2e46cb
https://github.com/WrBug/dumpDex
https://github.com/WrBug/dumpDex/issues/40



