前言;本文主要是介绍脱壳的方法,并不涉及原理,若是想要了解加固及脱壳的原理,请移驾别处。git
最近遇到一款app须要开通Vip才能进行视频下载,像我这种贫穷的程序员怎么能忍,既然没钱解决问题那就用技术解决吧!果断开始反编译,但反编译以后的文件倒是下面这样的程序员
额,这明显是通过加固后的文件,将真正的dex文件隐藏起来了,这就想让我放弃吗?确定不可能,因而便有了本文。github
在操做以前,请确保已经具有如下条件:shell
虽然网上已经有dumpDex.apk的成品,但有可能你找到的是比较老的版本了,致使脱壳不成功,即费时又费力,不如本身动手编译最新源码,生成最新的apk,这样能够大大的提升脱壳成功率。bash
dumpDex的仓库地址为:github.com/WrBug/dumpD…app
怎么将dumpDex导入AndroiddStudio就不说了,这里主要说下,导入项目编译源码的时候会遇到哪些错误及解决方法。工具
“SSL peer shut down incorrectly”错误gradle
解决方法:将gradle-wrapper.properties
中的如下代码ui
distributionUrl=https\://services.gradle.org/distributions/gradle-4.1-all.zip
复制代码
改为spa
distributionUrl=http\://services.gradle.org/distributions/gradle-4.1-all.zip
复制代码
便可解决问题。
Error while executing process cmake/3.6.4111459/bin/cmake with arguments {--build /Users/funaihui/搞基/dumpDex/app/.externalNativeBuild/cmake/debug/x86_64 --target nativeDump}
解决方法:将app中的build.gradle
中注释掉的这句
// ndk {
// abiFilters "armeabi", "armeabi-v7a","arm64-v8a"
// }
复制代码
取消注释并且还要将"armeabi"
这代码删除,不然还会报其余错误。
解决上面两个错误,这时编译的时候就不会报错了,出现如下界面则说明编译编译成功
但这个时候,你会发现AndroidStudio的工具栏中app
上面仍然有个红色的叉号,以下图
这个时候你不要认为尚未编译成功,其实已经成功了,出现这种状况是由于app没有主运行界面。这时点击菜单栏上面的Build-->Build Apk便可生成apk文件。
安装dumpDex.apk后还要作如下几件事:
arm32机型将 lib/armeabi/libnativeDump.so 复制到 /data/local/tmp/libnativeDump.so ,权限 设置为777,arm64机型还须要将将 lib/arm64-v8a/libnativeDump.so 复制到 /data/local/tmp/libnativeDump64.so能够经过文件管理器操做,也可使用以下adb shell命令。使用adb命令操做的代码以下
#仅适用于32位手机
adb shell
su
cp /data/data/com.wrbug.dumpdex/lib/libnativeDump.so /data/local/tmp
chmod 777 /data/local/tmp/libnativeDump.so
复制代码
在Xposed中☑️dumpDex.apk模块并激活便可。
上面的准备工做作完后,就能够愉快的脱壳了。脱壳的方法是启动Xposed,而后运行通过加固的app,这是界面可能会卡住,这时不要当即关掉,可能当即关掉会形成脱壳不完正,只须要等待几分钟关掉便可。
这时会在/data/data/包名/dump
目录下生成脱壳后的真正的dex文件,拿到真正的dex文件后你就能够作你想作的事了。
若是不能编译生成dumpDex.apk
,能够点击这里进行下载。若是遇到什么其余问题能够在下方留言讨论。