Libheap:一款用于分析Glibc堆结构的GDB调试工具

华盟原创文章投稿奖励计划

        Libheap:一款用于分析Glibc堆结构的GDB调试工具

  安装

  Glibc安装

  尽管Libheap不要求glibc使用GDB调试支持和符号进行编译,但是如果用户使用的话,也不会影响它的功能。已经有很多手动构建Glibc的指导说明,目前最合适的一个:

  Devpit – Building GLIBC

  Fedora上使用了以下简单的方法实现了该方法:

  debuginfo-install glibc

  使用该命令,系统会自动安装并设置调试Glibc。

  GDB安装

  如果用户使用的是较新版本的Fedora,其中的GDB使用加入了最新的python支持的新技术。否则,用户就需要从SVN中构建GDB,而不是使用Tom Tromey提供的步骤:

        Libheap:一款用于分析Glibc堆结构的GDB调试工具

  这一步完成后,用户就会得到一个可以在archer/install/bin/gdb上运行的编译版本GDB。

  Libheap安装

  最后一步是安装Libheap库,这一步相对简单,只需要将其移动到Python路径(sys.path)下:

  $ mv libheap.py /usr/lib/python2.6

  用法

  加载libheap同加载其他Python库的方法类似:

        Libheap:一款用于分析Glibc堆结构的GDB调试工具

  整体堆状态

  多个不同的状态用于输出堆的整体状态,如下:

  heap -h

        Libheap:一款用于分析Glibc堆结构的GDB调试工具

  heap

       Libheap:一款用于分析Glibc堆结构的GDB调试工具

  heap -b

       Libheap:一款用于分析Glibc堆结构的GDB调试工具

  heap -f

       Libheap:一款用于分析Glibc堆结构的GDB调试工具

  heap -f

       Libheap:一款用于分析Glibc堆结构的GDB调试工具

  heap -s

      Libheap:一款用于分析Glibc堆结构的GDB调试工具

  heap -l

       Libheap:一款用于分析Glibc堆结构的GDB调试工具

  heap -c

      Libheap:一款用于分析Glibc堆结构的GDB调试工具

  数据

  libheap为用户提供了多种方法用于检查内存分配数据块。该库使用一个比较完善的malloc_chunk结构体输出程序,因此只要是有效的数据库,就可以输出其地址:

       Libheap:一款用于分析Glibc堆结构的GDB调试工具

  为了获取数据库的更加细粒度的访问权限,libheap使用了一个代表内存分配数据块的python类:

       Libheap:一款用于分析Glibc堆结构的GDB调试工具

  默认情况下,程序会将一个地址看作已释放的数据库,并读取malloc_chunk结构体的所有字段。但是如果用户传递一个名为‘inuse’的可选布尔项就可以改变这种情况。如果用户只是想要读取已分配数据块的头部,那么可以传入一个名为‘read_data’的可选布尔项。该类默认读取数据块中指定的任意大小的内存,这样显示是有弊端的:攻击者可以使用虚假的值覆盖size字段。因此程序设置了一个可选的size标志,用户可以指定真实的数据块大小。综上所述,用户可以访问和更改数据块中独立的字段:

      Libheap:一款用于分析Glibc堆结构的GDB调试工具

  最后,如果用户想要查看内存分配数据块在堆实现中的表现形式,可以向该类传递一个行内存字符串,并查看解析情况:

        Libheap:一款用于分析Glibc堆结构的GDB调试工具

  Glibc结构体

  libheap中还包含malloc_par和malloc_state结构体的输出程序。用户可以通过请求输出全局变量查看:

        Libheap:一款用于分析Glibc堆结构的GDB调试工具

  以下为这两个重要结构体的Python类实现,用户可以使用这些类查看任意内存:

       Libheap:一款用于分析Glibc堆结构的GDB调试工具

  便捷函数

  如果用户想要扩展该库或使用其中的任意功能,以下为在Python中重新实现的Glibc函数列表:

        Libheap:一款用于分析Glibc堆结构的GDB调试工具

原文地址:https://hack.77169.com/201603/225578.shtm

本文原创,作者:华盟君,其版权均为华盟网所有。如需转载,请注明出处:https://www.77169.net/html/17054.html

发表评论