帮酷LOGO
  • 显示原文与译文双语对照的内容
A repository for learning various heap exploitation techniques.

  • 源代码名称:how2heap
  • 源代码网址:http://www.github.com/shellphish/how2heap
  • how2heap源代码文档
  • how2heap源代码下载
  • Git URL:
    git://www.github.com/shellphish/how2heap.git
  • Git Clone代码到本地:
    git clone http://www.github.com/shellphish/how2heap
  • Subversion代码到本地:
    $ svn co --depth empty http://www.github.com/shellphish/how2heap
    Checked out revision 1.
    $ cd repo
    $ svn up trunk
  • 基于的教育堆开发

    这里 repo 用于学习各种堆开发技术。 我们在 hack 会议中提出了这个想法,并实现了以下技术:

    文件技术适用的解决
    first_fit.cDemonstrating行为第一匹配的演示。
    fastbin_dup.c哄骗malloc通过滥用fastbin空闲项来返回已经分配的堆指针。
    fastbin_dup_into_stack.c哄骗malloc通过滥用fastbin空闲值来返回几乎任意的指针。9447 -search-engine0ctf 2017-babyheap
    fastbin_dup_consolidate.c将一个已经分配的指针放在fastbin空闲列表和未排序的bin空闲列表中,诱骗malloc返回已经分配的堆指针。Hitcon 2016 SleepyHolder
    unsafe_unlink.c在损坏的块上释放自由以获取任意写入。,Robots,Robots,Robots,Robots 。
    house_of_spirit.c释放伪fastbin块以使malloc返回几乎任意的指针。hack.lu 协调器 2014-OREO
    poison_null_byte.c利用单个空字节溢出。PlaidCTF 2015-plaiddb
    house_of_lore.c哄骗malloc通过滥用smallbin空闲值来返回几乎任意的指针。
    overlapping_chunks.c在未排序的bin中覆盖已经释放的块大小,以使新分配与现有块重叠。hack.lu CTF 2015-bookstoreNuit,hack 2016 -night-deamonic-heap
    overlapping_chunks_2.c为使新分配与现有块重叠,利用正在使用的块大小的覆盖
    house_of_force.c为了让malloc返回几乎任意的指针,利用顶块( 荒原) header波士顿主要 Party 2016-cookbook,BCTF 2016-bcloud
    unsorted_bin_attack.c在未排序的bin空闲列表上覆盖释放的块,将大值写入任意地址0ctf 2016-zerostorage
    house_of_einherjar.c利用一个空字节 overflow 欺骗malloc返回一个受控指针Seccon 2016-tinypad
    house_of_orange.c利用顶部块( 荒原) 来获得任意代码执行Hitcon 2016 houseoforange

    有个好例子在这里加? ! 尝试在一个单一的--中使用整个技术,这样学习起来更容易。

    堆开发工具

    有一些堆开发工具在周围浮动。

    阴影

    jemalloc开发框架:https://github.com/CENSUS/shadow

    libheap

    检查gdb中的glibc堆: https://github.com/cloudburst/libheap

    Playground

    给定的malloc_playground.c 文件是一个程序的源,提示用户交互地分配和释放内存。

    其他资源

    一些很好的堆开发资源,大致按它的发布顺序,是:

    硬化

    在glibc中嵌入了几个"hardening"度量,比如 export MALLOC_CHECK_=1 ( 启用一些检查) 。export MALLOC_PERTURB_=1 ( 数据被覆盖) 。export MALLOC_MMAP_THRESHOLD_=1 ( 始终使用 mmap ( ) ) 。

    更多信息:mcheck()mallopt() 。

    此外,还有一些跟踪支持作为 mtrace() 插件。malloc_stats() 插件。malloc_info()memusage插件以及该系列的其他功能。




    Copyright © 2011 HelpLib All rights reserved.    知识分享协议 京ICP备05059198号-3  |  如果智培  |  酷兔英语