search-libc 项目教程
search-libcWeb wrapper of niklasb/libc-database项目地址:https://gitcode.com/gh_mirrors/se/search-libc
1. 项目的目录结构及介绍
search-libc/
├── libc-database/
│ ├── gitignore
│ ├── gitmodules
│ ├── LibcSearcher.py
│ ├── README.md
│ └── setup.py
├── .gitignore
├── .gitmodules
├── README.md
└── setup.py
-
libc-database/: 该目录包含了与 libc 数据库相关的文件,主要用于存储 libc 版本信息和相关工具。
- gitignore: Git 忽略文件。
- gitmodules: Git 子模块配置文件。
- LibcSearcher.py: 主要功能文件,用于搜索 libc 函数偏移。
- README.md: 项目说明文件。
- setup.py: 项目安装脚本。
-
.gitignore: 主项目的 Git 忽略文件。
-
.gitmodules: 主项目的 Git 子模块配置文件。
-
README.md: 主项目的说明文件。
-
setup.py: 主项目的安装脚本。
2. 项目的启动文件介绍
项目的启动文件是 LibcSearcher.py
,该文件位于 libc-database/
目录下。该文件的主要功能是根据已知的 libc 函数地址,搜索并返回相应的 libc 版本及其函数偏移。
使用示例
from LibcSearcher import *
# 第二个参数为已泄露的实际地址或最后12位(比如:d90),int类型
obj = LibcSearcher("fgets", 0X7ff39014bd90)
# 获取 system 函数的偏移
obj.dump("system")
# 获取 /bin/sh 字符串的偏移
obj.dump("str_bin_sh")
# 获取 __libc_start_main_ret 函数的偏移
obj.dump("__libc_start_main_ret")
3. 项目的配置文件介绍
项目中没有明确的配置文件,但可以通过以下方式进行配置和使用:
安装
git clone https://github.com/lieanu/LibcSearcher.git
cd LibcSearcher
python setup.py develop
添加限制条件
如果遇到返回多个 libc 版本库的情况,可以通过 add_condition(leaked_func, leaked_address)
来添加限制条件,也可以手工选择其中一个 libc 版本(如果你确定的话)。
obj.add_condition("leaked_func", "leaked_address")
其它
- 水平一般,代码很烂,如有 bug,欢迎吐槽。
- 欢迎贡献不同 Linux 发行版的 libc 信息。
search-libcWeb wrapper of niklasb/libc-database项目地址:https://gitcode.com/gh_mirrors/se/search-libc