用DumpDex反编译App

Posted wodongx123

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用DumpDex反编译App相关的知识,希望对你有一定的参考价值。

文章目录


注:反编译是一个双方都在不断迭代升级的技术,该文章仅供个人记录使用,现在已经不建议使用该方法反编译。

事前准备

  1. 一个解锁,并且安装了Magisk和Xposed的手机

  2. android Studio

1. 操作

DumpDex项目

https://github.com/WrBug/dumpDex

  1. 下载项目源码,用Android Studio打开,调试到可以安装的程度。
  2. 打包之后安装到手机上,同时Android Studio的logcat中搜索dump,查看日志。
  3. 在Xposed Manager中,启动DumpDex,然后重启手机。
  4. 打开目标App。
  5. 如果没有遇到明显的报错日志,应该就没问题了。
  6. 下载一个es浏览器,在开启root权限之后,进入系统根目录,data/data/目标的应用包名/dump

1.1 No variants found for ‘app’. Check build files to ensure at least one variant exists.

表示你的Android Studio没有对应版本的SDK

打开右上角的SDKManager,下载对应版本的Android SDK

1.2 A problem occurred configuring project ‘:app’.

A problem occurred configuring project ‘:app’.

java.lang.NullPointerException (no error message)

build -> rebuild project

1.3 签名


build -> gengereate signed Bundle/Apk -> 剩下的百度,这个app不能直接点绿色的运行,只能打包之后运行。

1.4 报错

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重启即可

  1. 解压app-release.apk文件(重命名为zip后解压),拷贝其中文件 lib\\armeabi-v7a\\libnativeDump.so 文件到手机目录:/data/local/tmp/libnativeDump64.so (因为我是64位手机,所以,so文件,的名字是这么多,如果是32位的,就没有64这个)(源so,不需要使用64位的)
  2. 将armeabi-v7a中的libnativeDump.so,复制到手机上的/data/local/tmp目录上,然后用es浏览器修改读写执行权限。
  3. 如果是64位手机(一般来说都是),将arm64-v8a中的libnativeDump.so改名为libnativeDump64.so,也丢到手机的/data/local/tmp中。

1.6 /data/local/tmp/libnativeDump64.so" is 64-bit instead of 32-bit

用cmd打开adb

输入

C:\\Users\\admin\\AppData\\Local\\Android\\Sdk\\platform-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

以上是关于用DumpDex反编译App的主要内容,如果未能解决你的问题,请参考以下文章

用FridaDexDump反编译APP

用FridaDexDump反编译APP

C++编译出来的程序怎么绕过uac盾牌

IOS APP反编译

iOS app反编译

360加固保dump出来的dex怎么修复