返回介绍

1.5.11 jemalloc

发布于 2022-02-28 21:35:51 字数 3703 浏览 986 评论 0 收藏 0

  • 利用技术
  • CTF 实例
  • 参考资料
  • 简介

    jemalloc 是 Facebook 推出的一种通用 malloc 实现,在 FreeBSD、firefox 中被广泛使用。比起 ptmalloc2 具有更高的性能。

    编译安装

    我们来编译一个带调试信息的 jemalloc(注:4.x和5.x之间似乎差别比较大):

    wget https://github.com/jemalloc/jemalloc/releases/download/5.0.1/jemalloc-5.0.1.tar.bz2
    tar -xjvf jemalloc-5.0.1.tar.bz2
    cd jemalloc-5.0.1
    ./configure --prefix=/usr/local/jemalloc --enable-debug
    make -j4 && sudo make install
    

    接下来修改链接信息:

    # echo /usr/local/jemalloc/ >> /etc/ld.so.conf.d/jemalloc.conf
    # ldconfig
    

    当我们想要在编译程序时指定 jemalloc 时可以像下面这样:

    $ gcc -L/usr/local/jemalloc/lib -Wl,--rpath=/usr/local/jemalloc/lib -ljemalloc test.c
    $ ldd a.out
            linux-vdso.so.1 (0x00007fff69b62000)
            libjemalloc.so.2 => /usr/local/jemalloc/lib/libjemalloc.so.2 (0x00007f744483b000)
            libc.so.6 => /usr/lib/libc.so.6 (0x00007f744447f000)
            libm.so.6 => /usr/lib/libm.so.6 (0x00007f74440ea000)
            libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x00007f7443d61000)
            libpthread.so.0 => /usr/lib/libpthread.so.0 (0x00007f7443b43000)
            libdl.so.2 => /usr/lib/libdl.so.2 (0x00007f744393f000)
            libgcc_s.so.1 => /usr/lib/libgcc_s.so.1 (0x00007f7443727000)
            /lib64/ld-linux-x86-64.so.2 => /usr/lib64/ld-linux-x86-64.so.2 (0x00007f7444f02000)
    

    可以看到 libjemalloc.so.2 已经被链接到程序里了。

    jemalloc 详解

    我们以 jemalloc-4.5.0 版本来讲解。

    数据结构

    利用技术

    CTF 实例

    查看章节 6.1.29、6.1.34。

    参考资料

    如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

    扫码二维码加入Web技术交流群

    发布评论

    需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
    列表为空,暂无数据
      我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
      原文