Skip to content

v1.3.1

Choose a tag to compare

@weihang1258 weihang1258 released this 06 Jul 10:31

v1.3.1

兼容 DPI 版本:v1.0.7.0

Bug 修复(抓包停止/启动,capture.py)

  • tcpdump_stop:幂等 + 信号升级 SIGINT→SIGTERM→SIGKILL + 精确 PID kill(os.kill)。原 pkill -f 把客户端传入的
    path 当扩展正则,存在注入风险且 SIGKILL 会误杀无关同名进程。
  • tcpdump_isrun:改用 pgrep -x 精确匹配进程名 + /proc/{pid}/cmdline 字面子串校验 path,返回 (running, pids)
    元组,杜绝误杀同名 tcpdump/dumpcap。
  • Tcpdump_scapy._sniff:删除 _sniff 开头 self.e=False 的竞态覆盖(冷导入期间 stop() 设的 True 被覆盖);分段
    sniff 循环(每轮≤1s),解决无包到达时 stop_filter 不触发导致 stop 卡死 30s。
  • flush 校验:改用 _wait_file_stable 轮询文件大小稳定(连续两次相同)。原 getsize/os.access 对 root
    恒真,是空操作。

sudo 兼容(netutils.py)

  • _strip_sudo_if_root:root 下剥离裸 sudo 前缀,规避目标机 sudo 损坏(libldap/OpenSSL ABI 不匹配导致 sudoers.so
    加载失败)。

子进程环境清理(netutils.py)

  • _clean_subprocess_env:清除 PyInstaller 注入的 LD_LIBRARY_PATH_PYI_*,避免 DPI 的 xsa 从临时目录加载错版本
    libcrypto 启动即崩、被 dpi_monitor 反复重启。

Shell 注入修复(客户端可控参数全部改 list args + shell=False)

  • tcpdump_start:path/extended/eth
  • mtu:eth(同时去掉 grep/awk 管道,改 Python 解析)
  • unzip:filename/passwd/outdir
  • handlers datatype 131:chromium_path

其他

  • wait_until/wait_not_until 异常分支补 sleep,避免 CPU 空转
  • handlers datatype 122 处理 stop() 返回值,停止失败时返回错误 JSON
  • 新增 test_e2e.py 用于部署后回归测试

完整变更v1.3.0...v1.3.1