Go to file
Yue Liu 3448c8016f
Merge pull request #10 from Inv0k3r/master
only read *.symbols file can search quicklier
2019-05-27 22:22:41 +08:00
libc-database add all binary and symbols info 2018-11-09 14:55:48 +08:00
.gitignore do not ignore libc binary 2018-11-09 14:54:06 +08:00
.gitmodules change libc-database url to my forked repo 2016-04-22 15:12:08 +08:00
LibcSearcher.py only read *.symbols file can search quicklier 2019-05-24 18:08:38 +08:00
README.md Update README.md 2018-11-20 09:18:48 +08:00
setup.py 1. modify readme 2017-05-30 22:14:45 +08:00

README.md

Search libc function offset

简介

这是针对CTF比赛所做的小工具在泄露了Libc中的某一个函数地址后常常为不知道对方所使用的操作系统及libc的版本而苦恼常规方法就是挨个把常见的Libc.so从系统里拿出来与泄露的地址对比一下最后12位。

为了不在这一块浪费太多生命,写了几行代码,方便以后重用。

这里用了libc-database的数据库。

安装

git clone https://github.com/lieanu/LibcSearcher.git
cd LibcSearcher
python setup.py develop

示例

from LibcSearcher import *

#第二个参数,为已泄露的实际地址,或最后12位(比如d90)int类型
obj = LibcSearcher("fgets", 0X7ff39014bd90)

obj.dump("system")        #system 偏移
obj.dump("str_bin_sh")    #/bin/sh 偏移
obj.dump("__libc_start_main_ret")    

如果遇到返回多个libc版本库的情况可以通过add_condition(leaked_func, leaked_address)来添加限制条件也可以手工选择其中一个libc版本如果你确定的话

其它

水平一般代码很烂如有bug欢迎吐槽。

欢迎贡献不同linux发行版的libc信息。