首页 新闻 会员 周边

逆向工程小白该怎么学习

0
悬赏园豆:5 [待解决问题]

以后想走病毒分析这路,看了网上的介绍逆向工程需要学习c/c++和汇编和计算机系统但是我不知道接下来学什么有大佬给介绍吗

1231321312的主页 1231321312 | 初学一级 | 园豆:199
提问于:2026-09-17 17:53
< >
分享
所有回答(2)
0

一、先搭安全环境,再谈分析

不要用个人主机跑样本。建议:

  • 虚拟机:VMware / VirtualBox
  • Windows 分析环境:Flare VM
  • Linux 分析环境:REMnux
  • 隔离网络:Host-Only / 自定义 NAT,配合 FakeNet-NG、INetSim
  • 快照:每次分析前恢复快照
  • 关闭共享文件夹、剪贴板共享、拖拽
  • 样本加密压缩保存,不传播,遵守法律

二、总体学习顺序

阶段 1:语言与系统基础(2~4 个月)

C/C++

  • C:指针、数组、结构体、内存分配、文件 IO、函数指针、回调、编译链接
  • C++:类、虚函数、继承、多态、STL、异常、RAII
  • 目标:能读懂恶意样本里的 C/C++ 代码模式,能自己写小工具

汇编与体系结构

  • x86/x64:寄存器、栈、堆、寻址方式、EFLAGS、指令集
  • 调用约定:cdecl、stdcall、fastcall、thiscall、x64 调用约定
  • 重点:栈帧、参数传递、返回值、局部变量、全局变量
  • 方法:写 C 程序 → 编译 → 反汇编 → 单步调试,对照看

计算机系统与操作系统

  • 《深入理解计算机系统》CSAPP:进程、虚拟内存、链接、异常控制流、系统调用
  • Windows:进程/线程、虚拟内存、PE、DLL、API、注册表、服务、句柄、COM
  • Linux:ELF、syscall、/proc、权限、脚本

推荐书

  • 《深入理解计算机系统》
  • 《Windows 核心编程》
  • 《汇编语言:基于 x86 处理器》

阶段 2:逆向工程基础(3~6 个月)

工具

  • 静态:IDA Free / Ghidra、PE-bear、CFF Explorer、Detect It Easy
  • 动态:x64dbg、WinDbg、Process Explorer、Procmon、API Monitor、Regshot
  • 网络:Wireshark、Fiddler、Burp Suite
  • 辅助:CyberChef、Python

必须掌握

  • PE 格式:DOS 头、NT 头、节表、导入表、导出表、重定位、TLS、资源、调试目录、IAT
  • 静态分析:字符串、导入函数、节区特征、编译器识别、壳识别
  • 动态分析:断点、单步、内存修改、补丁、API 跟踪、注册表/文件监控
  • 常见代码模式:循环、switch、结构体、数组、虚表、加密算法、压缩

练习

  • crackmes.one 上的 crackme
  • CTF 逆向题
  • Flare-On
  • 自己写 C 程序,编译后反汇编,尝试还原逻辑

阶段产出

  • 写一个简易 PE 解析器
  • 完成 10~20 个 crackme
  • 能独立用 IDA/Ghidra + x64dbg 分析一个正常程序

阶段 3:恶意代码分析(6~12 个月)

这是你真正进入病毒分析的核心阶段。

分析流程

  1. 样本信息:哈希、文件名、类型、大小、签名
  2. 静态初筛:字符串、PE 结构、导入表、YARA、壳检测
  3. 动态行为:进程、文件、注册表、服务、计划任务、网络
  4. 调试逆向:定位核心函数、C2、加密、持久化
  5. 提取 IOC:IP、域名、URL、文件路径、注册表键、互斥量
  6. 写报告:行为、ATT&CK、IOC、检测建议

常见恶意技术

  • 持久化:注册表 Run、服务、计划任务、启动目录
  • 进程注入:远程线程、APC、Process Hollowing、Reflective DLL
  • 无文件:PowerShell、WMI、宏、脚本
  • 混淆/加壳:UPX、自定义壳、反调试、反虚拟机
  • 网络:HTTP/HTTPS、DNS、C2、加密通信
  • 凭据窃取、勒索、下载器、键盘记录、RAT

工具

  • 沙箱:CAPE、Cuckoo、Any.Run、Hybrid Analysis
  • 内存取证:Volatility
  • 规则:YARA、Sigma、Suricata
  • 模拟网络:FakeNet-NG、INetSim

推荐书

  • 《恶意代码分析实战》Practical Malware Analysis
  • 《IDA Pro 权威指南》
  • 《加密与解密》

阶段产出

  • 分析 3~5 个公开教学样本,写完整报告
  • 写 10 条以上 YARA 规则
  • 用 MITRE ATT&CK 标注行为

阶段 4:进阶与方向选择

  • 自动化:IDAPython、Ghidra 脚本、Python
  • 模拟执行:Unicorn、Qiling
  • 插桩:Frida
  • 检测工程:YARA、Sigma、EDR 规则
  • 威胁情报:MITRE ATT&CK、IOC、TTP
  • 方向:Windows 恶意软件、Linux/ELF、移动端、固件、勒索软件、APT

三、接下来 90 天可执行计划

第 1~2 周

  • 复习 C:指针、结构体、内存、函数指针
  • 写小程序:链表、文件加密、Socket
  • 编译后反汇编,用 x64dbg/GDB 单步

第 3~4 周

  • 学 x86/x64 汇编:寄存器、栈、调用约定
  • 每天反汇编一个自己写的 C 函数,标注栈帧和参数

第 5~6 周

  • 学 PE 格式
  • 用 PE-bear/CFF 看正常程序
  • 用 Python 写一个 PE 导入表解析器

第 7~8 周

  • 学 IDA/Ghidra 基础
  • 分析 crackme,尝试还原注册算法
  • 学 x64dbg 动态调试

第 9~10 周

  • 学 Procmon、Process Explorer、Wireshark、Regshot
  • 观察正常程序行为,再观察简单教学恶意样本

第 11~12 周

  • 在 Flare VM 中分析 1~2 个公开教学样本
  • 写报告:静态、动态、IOC、ATT&CK、检测建议
  • 写几条 YARA 规则

四、推荐资源

  • 书:《恶意代码分析实战》《IDA Pro 权威指南》《深入理解计算机系统》《Windows 核心编程》《加密与解密》
  • 课程:OpenSecurityTraining、MalwareUnicorn RE101、SANS FOR610/GREM
  • 社区:看雪、吾爱破解、Reddit r/Malware、r/ReverseEngineering
  • 练习:crackmes.one、Flare-On、CTF 逆向题
  • 环境:Flare VM、REMnux、CAPE、Volatility、YARA

五、避坑建议

  1. 不要一上来啃 APT 样本,先分析正常程序和 crackme。
  2. 汇编不用学到能写大型程序,但要能读、能调试、懂调用约定。
  3. C++ 不用学模板元编程,但要懂虚函数、多态、STL、内存布局。
  4. 逆向只是手段,病毒分析还要行为分析、网络、检测、报告。
  5. 一定要动手:每个知识点都写代码、编译、反汇编、调试。
  6. 安全第一:隔离环境、快照、不传播样本、遵守法律。
  7. 坚持 6~12 个月:每天 1~2 小时,6 个月可入门,1~2 年可求职。

如果你现在零基础,我建议你先从 C 指针 + x86 汇编 + PE 格式 + IDA/Ghidra + crackme 这条线开始。等你能够独立分析一个 crackme 并写报告,再进入恶意代码分析。

01o00o10 | 园豆:204 (菜鸟二级) | 2026-09-21 19:09
0

把C++和汇编学了,之后再学习工具的使用,最后后再找个CTF-PWN的样本进行分析。在这个过程中自己就慢慢入门了

人生可贵别浪费 | 园豆:202 (菜鸟二级) | 2026-09-26 20:59
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册。