零基础逆向工程学习实战笔记-01

查看 88|回复 9
作者:dabingmin   
作为刚入门逆向的小白来说,这是一个非常要命的技术挑战,从零开始,工具!理论!实战!都不会!
官网有【零基础新手破解学习导航帖】https://www.52pojie.cn/thread-582852-1-1.html 但是你是小白啊,一上来就给整迷糊了,基本上容易被劝退!
首先我们要了解一下工具,这是敲门砖!
工具概览
  • 老版OllyDbg 工作流并需要 x86 动态调试,x64dbg 是现代且活跃的“继任者”。
  • 需要强脚本/利用开发能力(Python 支持)且基于 OllyDbg 思路,Immunity Debugger 很合适。
  • 要做深入静态分析 + 调试 + 反编译,主流选择是 IDA Pro / Ghidra / Binary Ninja(三者在反编译、脚本化与插件生态上各有侧重)。
  • 需要内核/系统级调试或微软官方支持,选 WinDbg(Debugging Tools for Windows)

    常用工具(按用途分类)静态分析
  • Ghidra(反编译、脚本) — 免费,多功能。
  • IDA Pro / Hex-Rays(行业标准,付费) — 强反编译器。
  • Binary Ninja(交互体验好,付费/免费版差异).
    动态分析 / 调试(Windows 用户态)
  • x64dbg(x86/x64 动态调试,现代、开源)
  • OllyDbg(x86,历史经典)
  • Immunity Debugger(集成 Python,适合 exploit/脚本)
  • WinDbg(微软官方,内核/用户态功能强)
    脱壳 / 打补丁 / 导入重建
  • Scylla / ScyllaHide(IAT 重建、dump OEP)
  • Import Reconstructor / ImportREC
  • Ultimate Packer for eXecutables (UPX) — packer 示例与解压(带压缩)
  • PE-bear / CFF Explorer / LordPE(编辑 PE 结构)
    辅助(十六进制、资源、监控)
  • HxD / 010 Editor(hex 编辑)
  • Resource Hacker / rcedit(资源/VersionInfo 修改)
  • Procmon / Process Explorer / Autoruns (Sysinternals)(运行时观察/启动项)
  • Wireshark / Fiddler(网络分析)
    自动化 / 注入 / Hook
  • Frida(动态注入/Hook,支持脚本)
  • DynamoRIO / PIN(动态二进制插桩)
    Packer / 检测工具
  • Detect It Easy (DIE)PEiD(旧) — 用于识别打包器、编译器签名
  • Exeinfo PEPEStudio(静态指纹)
    工具详解(按重要性与用途排序)1) x64dbg
  • 定位:Windows 用户态调试器,专为逆向与调试设计,支持 x86 与 x64。
  • 主要功能:交互式断点、内存/寄存器/堆栈视图、内置反汇编、插件系统、可视化跟踪、基本脚本支持(插件生态丰富)。
  • 与 OllyDbg 的差异:支持 64-bit(OllyDbg 原生只到 x86),现代 UI,活跃维护与社区。许多 Olly 的插件在 x64dbg 上有对应版本或替代。
  • 优势:免费且开源,活跃更新,适合替代 OllyDbg 做日常逆向。
  • 缺点:有些高级功能(如高级自动化反编译)仍不如 IDA/BinaryNinja。
    2) Immunity Debugger
  • 定位:基于 OllyDbg 思路但带 Python 脚本支持的调试器(常被用于漏洞/利用开发)。
  • 主要功能:交互式调试、強大的 Python API(便于写 exploit 腳本与自动化检测)、插件支持(以 exploit research 为导向)。
  • 与 OllyDbg 差异:更注重自动化与脚本化,原 Olly 的交互体验被保留并扩展。
  • 优势:适合需要写 PoC/Exploit 自动化的高级用户。
  • 劣势:较旧但稳定,商业版/社区版差异需注意许可。
    3) IDA Pro(Interactive DisAssembler)
  • 定位:行业级静态分析/反汇编平台,支持多 CPU 架构,带付费调试器与反编译器(Hex-Rays)。
  • 主要功能:强大的静态反汇编、优秀的交互式分析、插件与脚本(IDC/Python)、付费版有强反编译器。
  • 与 OllyDbg 差异:IDA 更偏向静态分析+反编译,也可以作为调试器(但调试体验与 x64dbg/Olly 不同)。适合做深度逆向与大型项目。
  • 优势:企业级、生态成熟(大量插件 & 社区年限长)。
  • 劣势:昂贵(付费);学习曲线陡峭。
    4) Ghidra
  • 定位:NSA 开源的逆向平台(反编译 + 静态分析),免费且功能强大。
  • 主要功能:多平台反汇编/反编译、脚本(Java/Python)、项目管理、可扩展插件。
  • 与 OllyDbg 差异:Ghidra 是静态分析为主,但也有调试插件生态(社区)。适合替代 IDA 的免费选项。
  • 优势:免费且功能全面;劣势:调试体验不如专注的调试器,UI/性能上与付费工具有差距但快速进步。
    5) Binary Ninja
  • 定位:现代化、付费但相对亲民的静态分析平台,注重用户体验与脚本化。
  • 功能:中到高质量反编译(付费版)、良好的 API、插件生态。
  • 优势:交互式操作流畅、脚本化友好;
  • 劣势:功能与生态还不如 IDA/Ghidra 那么庞大,商业授权模式。
    6) WinDbg (WinDbg Preview)
  • 定位:微软官方调试器,支持用户态与内核态调试,适合驱动/系统级分析与崩溃排查。
  • 功能:内核模式调试、符号支持(Microsoft 符号服务器)、堆栈分析、远程/内核调试。
  • 与 OllyDbg 差异:WinDbg 针对系统级别和专业诊断,不适合做交互式逆向的小步调试(尽管也能做)。
  • 优势:必备的系统级/驱动调试工具;
  • 劣势:学习成本高,交互性比 Olly/x64dbg 差。
    7) Radare2 + Cutter(r2 / Cutter GUI)
  • 定位:强力开源逆向框架(radare2)与 GUI 前端 Cutter。适合自动化、脚本与跨平台。
  • 功能:命令行脚本化、反汇编、支持多架构、可做二进制差异分析。Cutter 给出 GUI。
  • 优势:完全开源、可在 CI 中自动化;
  • 劣势:radare2 的学习曲线陡峭,GUI(Cutter)在用户体验上与 IDA/Ghidra 有差距。
    8) Frida(动态注入/Hook 框架)
  • 定位:运行时注入与 Hook(跨平台),适合移动/桌面动态分析与逆向交互式探测。
  • 功能:在目标进程中注入 JavaScript 脚本,Hook API、截获参数/返回值、动态修改行为。
  • 优势:对现代软件(带反调试/anti-tamper)非常有用;劣势:不是传统意义上的静态调试器,需要注入能力。
    9) Hopper / IDA Free / Hopper(macOS/Linux 向)
  • 定位:针对 macOS / Linux 的反汇编/调试工具,更适合多平台逆向。适合在非 Windows 平台上做本地分析。
  • 优势:跨平台支持;
  • 劣势:Windows 生态的插件/社区资源较少。
    10) Immunity / OllyDbg 插件生态与其它工具
  • 还有很多补充工具:Cheat Engine(内存扫描/修改,游戏调试常用)、PE tools(CFF Explorer/PE-bear)Procexp/Procmon(Sysinternals) 用于进程/系统层面分析,都是逆向日常必备。

    功能对照(摘要表)
    [td][table][tr][td]功能 / 工具

    脚本, 插件

  • yjsai   

    期待下文
    xiangzz   

    通过事例能更好的学习,但理论知识是基础
    yoga2joker   

    谢谢楼主分享,跟学+1
    lyliucn   

    楼主把工具整理个工具箱。
    vincent999   

    跟进学习,期待新作!
    Mint_Grass   

    感谢分享,楼主整理的好仔细。
    这笔记是看了几套教程后整理的么?
    sbwfnhn   

    上次开始学 ,看到论坛的xp模拟器,很多软件无法正常运行,第一步就放弃了。。汇编又没学好
    ffffffff   

    之前只是稀里糊涂的在用这些工具,第一次比较全面的了解到工具的具体详细介绍,感谢楼主分享,期待下一篇
    跌宕起伏   

    这理论厉害了,好像很多教材都说不清楚,帖子真心不错
    您需要登录后才可以回帖 登录 | 立即注册

    返回顶部