右键点两下,密码就出来了 - Ponce4Ghidra 符号执行实战:从 crackme 到 license key 全流程

读完本文,你将获得: 理解符号执行的核心原理——为什么 16 字节输入有 2^128 种可能,但 Z3 能在秒级给出答案 掌握 Ponce4Ghidra 从安装到实战的完整工作流:符号化输入 → 标记 Find/Avoid → 一键求解 通过两个递进样本(4 字节 crackme + 19 字节 license key)看到约束收集和 SMT 求解的完整过程 学会选择正确的符号化方式(argv vs Function Argument vs Register vs Memory) 了解 Veritesting、Unicorn 加速等高级选项的使用场景 〇、摘要 笔者在做 DRM 逆向时,经常需要从混淆的 native 函数中提取加密参数。手动逆向一个 check_password 不难,但面对 19 字节的 license key(4 组 × 4 字符 + 3 个连字符 + 跨组 checksum),手工推导就变得乏味且容易出错。 于是笔者开发了 Ponce4Ghidra——一个基于 angr + Z3 的 Ghidra 交互式符号执行插件。核心想法很简单:在 Ghidra 的反汇编视图中右键标记"我要到达这里"和"我要避开那里",符号化输入变量,点击求解——angr 自动探索所有路径,Z3 自动求解约束方程,密码/key/参数直接显示在面板上。 ...

October 3, 2026 · 16 min · 3270 words · +5
CC BY-NC-SA 4.0 © 2026 +5 · Repost with attribution, non-commercial only
All research is for academic and security purposes only. No functional exploit code or keys provided. For takedown requests contact overkazaf@gmail.com.
本站总访问量 次  ·  访客数 人