WASM 逆向实战手册:从观测到复刻
WASM 逆向实战手册:从观测到复刻 核心原则:不要先删除,先证明它没被执行。 直接裁剪可能触发完整性校验、crash 或行为检测。正确顺序是:观测 → 定位执行路径 → 在必要时才考虑工具化裁剪。 第一层:动态覆盖率观测 目标:用最小成本判断哪些代码根本没跑过。 Chrome DevTools 的 Coverage 面板可以直接记录 WASM 执行覆盖。操作路径: 打开 DevTools → F12 按 Ctrl+Shift+P(Mac: Cmd+Shift+P)打开命令菜单 输入 coverage,选择 Show Coverage 在 Coverage 面板顶部下拉框中选择…
关键词驱动的 WASM / Web 风控签名逆向实战
关键词驱动的 WASM / Web 风控签名逆向实战手册 核心思路:不要分析代码,分析关键词之间的关系。 真正重要的不是“这个函数怎么实现”,而是“timestamp 从哪来、nonce 从哪来、deviceId 从哪来,它们最后进了哪个 hash”。 总流程图 入口 ↓ 提取关键词 ↓ 建立实体表 ↓ grep 反向扩散 ↓ 构建调用树 / 依赖树 ↓ 标记关键节点 + 打权重 ↓ 结合执行日志过滤 ↓ 裁剪垃圾分支…
WASM 逆向工程流程规范 v4.0
WASM 逆向工程流程规范 v4.0 适用范围:Web 风控、签名参数、Token 生成、HLS Token、WebSocket 握手签名、加密参数复刻。核心原则:先逆 JS 对 WASM 的调用关系,再逆 WASM 本身。 v4.0 整合了普通样本、Rust / Go / Emscripten、混淆样本、控制流平坦化、VM 型 WASM 的完整分析体系。 目录 零、总原则 一、阶段一:识别编译器 二、阶段二:Import 分析(第一优先级) 三、阶段三:JS Glue 分析(第二优先级) 四、阶段四:Export…
在 Rust 中Windows 的作业对象(Job Object) 机制
在 Rust 中,你可以利用 Windows 的作业对象(Job Object) 机制,以一种由操作系统内核保证的方式,可靠地关闭自己创建的所有子进程。 🛡️ 核心原理:内核级保障 正如之前讨论的,单纯依靠父子进程关系(如 taskkill /T)并不可靠。Rust 的可靠方案同样是基于作业对象。 它的核心优势在于,通过设置 JOB_OBJECT_LIMIT_KILL_ON_JOB_CLOSE 限制,当你的 Rust 主进程无论以何种方式(正常退出、崩溃、被强杀)终止时,Windows 内核会自动关闭作业句柄,并强制终止作业内所有关联的进程。你不需要在代码里手动执行清理逻辑。 💻 Rust 实现方式 在 Rust 中,你有两个主要途径来使用这一机制: 1. 使用高层封装库(推荐)最直接的方式是使用 win32job 这个 crate。它提供了安全的 Rust API…
Debian wireguard client
在 Debian 上安装 WireGuard 客户端主要分两步:先安装软件包,再导入或创建配置文件。 1. 安装 WireGuard 在终端中执行以下命令即可安装 WireGuard 及其工具: sudo apt update sudo apt install wireguard Debian Wiki 指出,wireguard 这个元数据包会自动引入所需的 wireguard-tools。如果你的 Debian 版本较旧(如 Buster),可能需要先启用 backports 仓库。 2. 配置客户端 你有两种方式来完成配置: 方式一:使用已有的配置文件如果你已经从服务商或管理员那里拿到了…
给Debian系统增加一个新用户
给Debian系统增加一个名为 `hb` 的新用户,操作如下: --- ## 创建用户 hb ### 基础创建命令 ```bash useradd -m -s /bin/bash hb ``` 参数说明: - `-m`:自动创建家目录 `/home/hb` - `-s /bin/bash`:指定默认shell为bash --- ### 设置密码 ```bash passwd hb ``` 输入两次密码(输入时不会显示,正常现象)。 ---…
LD_PRELOAD shim: 让 headless-shell 以为有 H.264/AAC 解码器
```c // avcodec_shim.c // LD_PRELOAD shim: 让 headless-shell 以为有 H.264/AAC 解码器,实际不干活 // 编译: gcc -shared -fPIC -o libavcodec_shim.so avcodec_shim.c #define _GNU_SOURCE #include <dlfcn.h> #include <stdint.h> #include <stdlib.h> #include <string.h> // ========== 模拟的结构体…
git chrome
#!/bin/bash set -e # 断点续传编译脚本 # ============ 环境变量与配置(彻底远离 src 目录) ============ WORK_DIR="/root" CHROMIUM_DIR="$WORK_DIR/chromium" SRC_DIR="$CHROMIUM_DIR/src" DEPOT_TOOLS_DIR="$WORK_DIR/depot_tools" # 核心安全区:将所有自定义状态和脚本放在 chromium 根目录下,防 gclient sync 抹除 STATE_DIR="$CHROMIUM_DIR/.build_state" BUILD_SCRIPT="$CHROMIUM_DIR/build_headless.sh" TAG_VERSION="108.0.5359.125" # ============ 辅助函数 ============ mkdir -p "$STATE_DIR"…
args.gn
is_debug = falseis_official_build = truechrome_pgo_phase = 0symbol_level = 0blink_symbol_level = 0is_component_build = false # --- 性能优化配置 (ThinLTO) --- # 如果内存足够大(至少 16GB+),建议开启;如果编译经常因内存溢出(OOM)中断,建议设为 false use_thin_lto = truethin_lto_enable_optimizations = true # --- 基础架构 --- target_os…