Skip to content

hexdump() 主函数 ​

🖨️ myhexdump 的主入口,r0capture 实际调用的函数。

📎 源码在线查看:myhexdump.py#L297-L330(hexdump)

r0capture 的调用 ​

python
gen = hexdump.hexdump(data, result="generator", only_str=True)
str_gen = ''.join(gen)
logger.info(f"{str_gen}")
  • result="generator":返回生成器,逐行惰性求值
  • only_str=True:只取 ASCII 可读栏(不打印十六进制栏),适合纯文本流量
  • ''.join(gen):把生成器所有行拼成一个字符串

签名 ​

python
def hexdump(binary, size=2, sep=' ', result='print', only_str=False)
参数默认含义
binary—待 dump 的二进制数据
size2hex 文本块长度(每字节一组)
sep' 'hex 块分隔符
result'print'输出方式:print/generator/return
only_strFalse只输出 ASCII 栏

result 三种模式 ​

值行为适用
print逐行 print命令行直接看
generator返回生成器,逐行 yieldr0capture 用(大流量省内存)
return返回完整字符串一次性拿全结果

only_str 模式 ​

r0capture 抓的明文多是 HTTP 等文本协议,only_str=True 让输出更紧凑可读。

实现要点 ​

hexdump 内部调 dumpgen(binary, size, sep) 拿到生成器(逐行产出格式化文本),再按 result 模式分流:print 模式逐行打印,generator 模式直接返回生成器,return 模式 '\n'.join。only_str 则在产出后只截取 ASCII 栏部分。

相关文档 ​

基于 VitePress 构建 · 教学用途