HackPluto's Blog

使用free-libc,任意切换程序libc版本

字数统计: 410阅读时长: 1 min
2020/09/27 Share

free-libc

free-libc是致力于在一个ubuntu环境下实现做各个ubuntu版本环境题目的项目。安装完成后,你可以使用clibc(change libc)指令指定你的程序加载什么样版本的libc,使程序在你的ubuntu环境下以高版本或者低版本的libc库去运行。
在做一些ctf pwn的题目时就会很方便,做题的时候就不需要频繁切换虚拟机。

安装

1
2
3
1,git clone https://github.com/dsyzy/free-libc.git
2,cd free-libc
3,sudo sh ./install

gfree-libc

gfree-libc是基于free-libc改写的能使你以libc源码级别调试能力的项目。安装完成后,你可以使用gclibc指令指定你的程序加载什么样版本的libc源码,这和clibc命令使用方法是一样的。区别于free-libc的是,free-libc不具备源码级调试能力,所以他很轻量化,而gfree-libc具有源码级调试能力,所以需要你使用build命令在本地添加你想要进行源码级调试的libc版本库。

​由于是本地编译,所以build命令执行时间可能会很长,大约二十分钟左右。

安装

1
2
3
1,git clone git@github.com:dsyzy/gfree-libc.git
2,cd gfree-libc
3,sudo sh ./install.sh

添加想要源码级别调试的libc版本

build libc版本

1
build 2.27

使用

加载指定libc

1
gclibc 程序名 libc版本

使用前
3u9MCG

使用后

1
2
3
$ gclibc pwn1 2.26                                                         
debug:set debug-file-directory /glibc/source/glibc-2.26
success!!!

ryaNgk

加载指定文件

如果需要指定libc,如libc.so,前提你已经知道libc版本

1
2
3
$ gclibc pwn1 2.26 libc-2.26.so
debug:set debug-file-directory /glibc/source/glibc-2.26
success!!!
CATALOG
  1. 1. free-libc
    1. 1.1. 安装
  2. 2. gfree-libc
    1. 2.1. 安装
    2. 2.2. 使用
      1. 2.2.1. 加载指定libc
      2. 2.2.2. 加载指定文件