-
-
[原创]libcdb:pwntools中的LibcSearcher替代功能
-
发表于: 2025-11-2 21:29 2140
-
笔者去年给 pwntools 写了一点小功能,让他能在本地离线的场景下根据泄露出来的地址搜索 libc 版本,不用安装其他的库了,可以更好的集成exp脚本。现在完整功能终于在正式版本 4.15.0 中发布了,这里简单分享一下使用方法。

第一次使用会询问你是否要在 /var/lib/libc-database 目录初始化,输入 yes 之后自动下载

之后运行相同的命令会更新 /var/lib/libc-database 的仓库代码

使用 pwn libcdb fetch -u xxx 可以下载/更新指定分类的 libc,一般来说 ubuntu 和 debian 就够了


添加 --offline-only 实现离线搜索


这个功能会默认尝试 unstrip 恢复 libc 的符号,想完全离线需要同时添加 --offline-only --no-unstrip 参数
和正常的导入方法一样 import 即可

也可以离线搜索并直接选择 index

有这几个函数,调用方法都是一样的
这里以 search_by_md5 举例

添加如下参数可以完全离线
更多详细用法参考官方文档:
pwn libcdb fetchpwn libcdb fetchpwn libcdb file xxxpwn libcdb file xxxpwn libcdb lookuppwn libcdb lookuppwn libcdb hashpwn libcdb hashfrom pwn import *from pwn import *from pwn import *res = libcdb.search_by_symbol_offsets({"puts": 0xe50, "printf": 0x6f0, "dup2": 0x010})print(res)from pwn import *res = libcdb.search_by_symbol_offsets({"puts": 0xe50, "printf": 0x6f0, "dup2": 0x010})print(res)from pwn import *path = libcdb.search_by_symbol_offsets( {"puts": 0xe50, "printf": 0x6f0, "dup2": 0x010}, select_index=1, offline_only=True,)libc = ELF(path)print(libc)from pwn import *path = libcdb.search_by_symbol_offsets( {"puts": 0xe50, "printf": 0x6f0, "dup2": 0x010}, select_index=1, offline_only=True,)[培训]Windows内核深度攻防:从Hook技术到Rootkit实战!
最后于 2025-11-2 21:52
被Th3S编辑
,原因: 更新
赞赏记录
参与人
雪币
留言
时间
mcrock
感谢你分享这么好的资源!
2025-11-10 16:30
kkte
+1
非常支持你的观点!
2025-11-5 20:54
trackL
感谢你的贡献,论坛因你而更加精彩!
2025-11-4 15:40
mb_hfvycjls
非常支持你的观点!
2025-11-4 10:28
hkdong
谢谢你的细致分析,受益匪浅!
2025-11-3 12:16
东方玻璃
感谢你的贡献,论坛因你而更加精彩!
2025-11-3 01:07
赞赏
他的文章
赞赏
雪币:
留言: