Skip to content

myhexdump 模块总览 ​

🐍 r0capture 内联的十六进制 dump 工具,把抓到的明文字节渲染成可读文本。

在 r0capture 里的角色 ​

r0capture.py 的 on_message 拿到 SSL hook 的明文字节流后,调用本模块的 hexdump() 把字节渲染成「偏移量 + 十六进制 + ASCII」三栏格式打印。控制台里那行行 00000000: 47 45 54 20 ... GET ... 就是本模块的产物。

教学价值 ​

#价值说明
1经典 hexdump 格式算法Wireshark/hd/xxd 都是这格式
2Python 2/3 字符串模型bytes vs str,如何写兼容代码
3生成器惰性求值大流量不一次性占内存
4序列/文件统一抽象鸭子类型分派

来源 ​

fork 自 anatoly techtonik 的 hexdump 库(Public Domain),r0capture 内联进仓库省去 pip install hexdump 依赖。

输出格式 ​

00000000: 00 00 00 5B 68 65 78 64  75 6D 70 5D 00 00 00 00  ...[hexdump]....
00000010: 00 11 22 33 44 55 66 77  88 99 AA BB CC DD EE FF  .."3DUfw........

三栏:

  1. 偏移量(8 位十六进制)
  2. 十六进制字节(每行 16 字节,中间多一空格分两半)
  3. ASCII 可读字符(不可打印字符显示为 .)

核心函数 ​

函数作用
hexdump()主入口,支持 print/generator/return 三种输出
dumpgen()生成器版,逐行 yield
dump()二进制 → hex 字符串(如 00 DE AD)
dehex()hex 字符串 → 二进制(反向)
chunks()序列定长分块生成器
chunkread()文件流分块生成器
genchunks()鸭子类型分派(序列 or 文件)
restore()从 hex dump 还原二进制
normalize_py()Windows stdout 切二进制模式

子文档 ​

基于 VitePress 构建 · 教学用途