快速Dump应用运行时内存

380 阅读1分钟

一、前提条件

root环境,可以是模拟器或者root的手机

二、执行命令core_dump命令

1、windows的cmd命令窗口下

adb 先连接上设备

然后执行adb shell连接进入设备的命令窗口

adb shell

再执行su获取设备的root的权限执行后续命令

su

然后先后执行

toybox ulimit -P $(pidof 应用包名) -c unlimited

sysctl kernel.core_pattern="data/data/应用包名/files/core.%p.%t"

kill -SIGXCPU $(pidof 应用包名)

其中应用包名替换为需要dump的应用包名,执行完最后一条命令后,则会在data/data/应用包名/files/目录下生成名为:core.xxxx.xxxxxxx 的core_dump内存文件。

查看core文件,使用cd 命令到目录下

cd data/data/应用包名/files/

使用ls命令列出当前目录下的文件

ls

为了能在windows使用adb pull把文件拉到电脑中,需要先赋予文件的读写权限,使用chmod 777命令

chmod 777 要pull出来的文件(这里是core.xxxx.xxxxxxx文件)

在当前命令行下,先后执行2个exit命令回到windows的cmd环境

exit

exit


最后执行adb pull把core文件提取到电脑端D盘的files目录下

adb pull data/data/应用包名/files/core.xxxx.xxxxxxx D:\Files

三、使用010editor可以搜索并分析该应用的内存

则不在本文讨论范围内。

四、后记

由此可见,Android即使是运行时的内存都能很轻易地被dump出来,所以我们放在内存中的数据是不是要稍微考虑安全方面的情况?至少核心敏感内容千万不要明文。