首页
社区
课程
招聘
[原创]libcdb:pwntools中的LibcSearcher替代功能
发表于: 2025-11-2 21:29 2140

[原创]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 fetch
pwn libcdb fetch
pwn libcdb file xxx
pwn libcdb file xxx
pwn libcdb lookup
pwn libcdb lookup
pwn libcdb hash
pwn libcdb hash
from 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编辑 ,原因: 更新
收藏
免费 6
支持
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回