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
Metadata
Release files for LibcSearcher 1.1.5
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| LibcSearcher-1.1.5.tar.gz | 3.9 kB | Without provenance | Details for LibcSearcher-1.1.5.tar.gz |
Release files / LibcSearcher-1.1.5.tar.gz
| Download URL | LibcSearcher-1.1.5.tar.gz |
|---|---|
| Size | 3.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
302246d0e5bcb0aa1c464f65ef349c85f82520120d45ca5a58d3445d45833f76
|
|
BLAKE2b-256 checksum How to use checksums |
9ff1dc5c09afd234f63de8ecd35977e427201fcf4acbe45b56d0dba978973509
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is 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
|
Security for LibcSearcher 1.1.5
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.