转载

安卓Hacking:转储和分析APP内存

安卓Hacking:转储和分析APP内存

在本文中,我们将讨论如何使用Android Studio的堆转储功能转储特定应用程序的内存 以及 如何使用 EclipseMemoryAnalyzer(MAT)来分析我们获得 堆转储

创建Android应用程序的堆的转储是可行的。我们可以使用EclipseMemoryAnalyzer这样的工具进一步分析和使用。但是,这些转储是二进制格式的,不能直接由EclipseMemoryAnalyzer解析。因此我们需要将这些文件转换成可以由EclipseMemoryAnalyzer解析的标准格式,而这可以通过使用hprof-conv Android SDK来转换。

我们先将样本程序安装在Android模拟器中,并输入数据。如下图:

安卓Hacking:转储和分析APP内存

此示例 应用程序使用SharedPreferences存储用户插入的数据。

现在,打开Android Studio - >  Tools ->  Android- > Android Device Monitor

安卓Hacking:转储和分析APP内存

这样就会打开安卓监视器窗口,然后选择你正在运行应用程序的模拟器,再选中目标的包名,再点击“Update Heap”和“Dump HPROF File”。

安卓Hacking:转储和分析APP内存

点击Dump HPROF File会弹出对话框,选择要保存文件的位置。

安卓Hacking:转储和分析APP内存

现在下载

EclipseMemoryAnalyzer并安装它。

( http://www.eclipse.org/mat/downloads.php )

尝试着打开刚从Android Studio导出的hprof文件,

EclipseMemoryAnalyzer无法解析它并弹出一个错误提示如下图。

安卓Hacking:转储和分析APP内存

使用HPROF-CONV命令行工具,我们可以将HPROF文件转换成可以由MAT解析的标准格式。

正如前面提到的,Android SDK自带了HPROF-CONV,在platform-tools目录下。

我们通过执行如下命令将hprof转换为标准格式。

hprof-conv <in file> <out file>

在这个例子中,我们输入

hprof-conv com.example.m1_shared.hprof memory.hprof

如果一切顺利,我们应该能够使用MAT打开这个memory.hprof文件。

在MAT中打开这个文件。

安卓Hacking:转储和分析APP内存

点击“Dominator tree”查看所有的转储。

安卓Hacking:转储和分析APP内存

正如你所看到的,我们可以选择执行正则表达式搜索。并且可以使用这个搜索选项搜索特定的关键词。   

让我们从搜索我们的目标应用程序的包名,看看我们能找到什么有趣的东西。

安卓Hacking:转储和分析APP内存

在左下角,我们可以看到一些应用程序相关的对象,如bankname,cardnumber,save,username等。

而在本文的开头,我们已经在应用程序中输入了一些数据。通过搜索我们输入的关键字看看是否有任何发现。

*参考来源:resources.infosecinstitute,FB小编东二门陈冠希编译,转载请注明来自FreeBuf黑客与极客(FreeBuf.COM) 安卓Hacking:转储和分析APP内存

在上面的图我们可以看到,我们正在寻找关键字“srini。”

安卓Hacking:转储和分析APP内存

原文  http://www.freebuf.com/articles/terminal/104795.html
正文到此结束
Loading...