逆向工程师该用什么语言写工具

按场景说,不搞语言之争:

Python —— 默认选择
生态压倒性:capstone 反汇编、unicorn 模拟执行、pwntools 做交互、lief 解析可执行文件格式、angr 符号执行。脚本化分析、批处理、CTF 都用它。慢,但大多数时候你等的是 IO 不是 CPU。

C/C++ —— 需要贴着目标跑的时候
写 hook、注入的 DLL、驱动、性能敏感的分析 pass。另外,要看懂编译器产物就得会写 C——这本身就是逆向的基本功。

Rust —— 越来越多人用来写工具
解析不可信输入(固件、样本、网络包)时,内存安全是实打实的价值——你的分析工具不该被你分析的东西打穿。生态在长:goblin、iced-x86、yaxpeax。

JavaScript —— Frida 的代价
不是选的,是 Frida 的脚本语言。习惯就好。

实际建议:先把 Python 用熟,需要性能或者要注入目标进程的时候再补 C。Rust 值得学但不是入门优先级。

一个我自己的经验:写一个自己的小工具,比多装十个别人的工具学到的多。哪怕只是个 PE 头解析器。