标注的博客| 安全研究| 渗透测试| APT

首页

wapiflapi/villoc:堆操作的可视化。

作者 krahenbuhl 时间 2020-03-10
all

Villoc是一个堆可视化工具,它是一个呈现静态HTML文件的python脚本。这里可以看到一个例子:http://wapiflapi.github.io/villoc/,这是villoc在利用PlaidCTF 2015的挑战PlaidDB上运行。

如何

使用villoc最简单的方法可能是在浏览器中运行以下命令和openout.html。

为可重复的结果禁用ASLR并使用afile将ltrace传递给villoc可能是一个好主意,因为否则目标的错误输出将被交错,有时可能会混淆villoc。

使用发电机

ltrace的问题是它没有跟踪来自其他库或libc本身的malloc调用。

请查看https://github.com/wapiflapi/villoc/tree/master/tracers/dynamoriofor(简单!)使用发电机工具实现完全跟踪的说明。

注释

Villoc的输入应该看起来像ltrace的输出,其他跟踪器应该输出兼容的日志。Villoc还听取以下形式的注释:

@villoc(comma separated annotations) = <void>`

当使用这种方法时,可以将某个块标记为重要块,这使得分析villoc的输出更加容易。

从C代码到DynamoRIO的注释。

使用dynamorio跟踪器时,有一种方法可以轻松地从目标的源代码中插入注释:

将格式字符串12注入villoc的日志中,并将FOOand BAR标记添加到受下一个内存操作影响的块中。

Format string 1 2 FOO BAR

哪个马洛克

这是在考虑glibc的dl_malloc的情况下做出的。但它应该适用于其他实现,特别是当您使用--header和--footer选项来指示目标malloc为用户数据增加了多少开销时。

--header --footer