使用gcore dump出apk 的内存,在从内存中扣出来dex文件,此方法只针对于简单的加壳应用生效。
使用gdb dump出来内存的方法有两种:
1、使用正常gdbserver 与gdb 的方法去dump内存
正常 gdbserver 与gdb的用法
在手机端:
gdbserver :6000 --attach pid
在电脑端:
adb forward tcp:6000 tcp:6000
使用ndk中对应的gdb进行操作
gdb
target remote :6000
之后在gdb中使用gcore 将apk的内容dump出来。
2、使用之前编译 android 版本的gdb
在shell中进入可读写的目录,推荐为data/local/tmp
直接运行gdb attach到指定进程,调用gcore 去 dump 进程的内存
因为进程内存比较大,往往接近1G,所以推荐第二种方法,比较快。
获取apk整个内存后,使用二进制文本工具,后这vim 配合xxd命令,去打开 内存文件,
在文件中找到dex.035,即
64 65 78 0A 30 33 35 00, 这一行即为dex文件的 开头
从此位置跳过24字节读到的4个字节 即为dex文件的大小,
之后使用dd命令,将其 从内存中扣出来即可。
经过验证360的壳可以扣除apk