Python wrapper for libc-database.
Project description
LibcSearcher-ng
Introduction
- 这里是全新的 LibcSearcher 实现。基于 libc-database 云端数据库而非本地数据库。
- 原版 LibcSearcher 仓库由于年久失修,经测试发现其基本失效。
- 选择新建一个项目而非基于原有 LibcSearcher 继续开发的原因如下:
- 原仓库基于 libc-database ,拷贝其数据库中的部分常用 libc 文件,在本地进行求解。这一方案有两个问题:
- libc 库不完整,仅包含了常用 libc 文件。若下载整个数据库则磁盘占用和下载成本过大。
- 上游数据库更新时不方便及时获悉,且需要手动更新本地数据库。
- libc-database 现已提供 web-api,可直接向其服务发起请求获取查询结果,解决了上述两个问题。
- 原仓库基于 libc-database ,拷贝其数据库中的部分常用 libc 文件,在本地进行求解。这一方案有两个问题:
- 同时为了确保师傅们以前的 exp 的可用性,LibcSearcher-ng 将以与原 LibcSearcher 完全相同的接口来构建。
- 比起原版 LibcSearcher 只多了一个缺点:断网就不可用了。🤣
- 若需要基于本地数据库的
可以抵御断网攻击的LibcSearcher,github 上已有其他师傅维护了相应实现的 LibcSearcher 仓库。
Installation
使用 PIP
sudo pip3 install LibcSearcher
更新
sudo pip3 install -U LibcSearcher
使用本仓库
git clone https://github.com/IZAY01/LibcSearcher.git
cd LibcSearcher
sudo python3 setup.py develop
如要更新,只需拉取最新代码后,重新在仓库目录内执行
sudo python3 setup.py develop
Usage
from LibcSearcher import *
obj = LibcSearcher("fgets", 0x7ff39014bd90) # 使用一个已知符号地址作为初始约束,初始化 LibcSearcher
obj.add_condition("atoi", 218528) # 添加一个约束条件
obj.dump("printf") # 根据已有约束条件,查询某个符号在 Libc 中的地址
此外,比起以上原版接口,添加了如下些许姿势
len(obj) # 返回在当前约束条件下,可能的 Libc 数量
print(obj) # 若 Libc 已被唯一确定,打印其详细信息
for libc in obj :
print(libc) # 实现了迭代器,打印(或其它操作)当前所有可能的 Libc
obj.select_libc() # 打印可能的 Libc 列表,手动选择一个认为正确的 Libc
obj.select_libc(2) # 手动选择 2 号 Libc 作为正确的 Libc
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
LibcSearcher-1.1.5.tar.gz
(3.9 kB
view details)
File details
Details for the file LibcSearcher-1.1.5.tar.gz
.
File metadata
- Download URL: LibcSearcher-1.1.5.tar.gz
- Upload date:
- Size: 3.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/53.0.0 requests-toolbelt/0.9.1 tqdm/4.57.0 CPython/3.9.1
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 302246d0e5bcb0aa1c464f65ef349c85f82520120d45ca5a58d3445d45833f76 |
|
MD5 | 7b446e968faab250c8b587ea69b05b9a |
|
BLAKE2b-256 | 9ff1dc5c09afd234f63de8ecd35977e427201fcf4acbe45b56d0dba978973509 |