鱼C论坛

 找回密码
 立即注册
查看: 1808|回复: 3

[已解决]求大佬指点就学过几门语言的基础逆向工程和Pwn怎么自学

[复制链接]
发表于 2024-8-14 13:47:52 | 显示全部楼层 |阅读模式
60鱼币
各位大佬们好,我是软工的大一新生,但我对网安方向很感兴趣,想要涉猎一下,目前就学过python,java,C,C++,但也都只是学完语法的地步,C++学的能更多一点点。刚刚买了王爽先生的汇编语言书和零元购了一本大黑书名字就叫做汇编语言,求一份关于逆向工程和pwn的学习指南就是我从几乎是零基础开始在每一个阶段学什么,每个大板块该怎么循序渐进的学,如果可以的话还请各位大佬推荐一些书籍,谢谢鱼油大佬们。
最佳答案
2024-8-14 13:47:53
前置基础阶段(当前你的位置)
你已经学过 Python / Java / C / C++,这是非常好的基础。
(小甲鱼老师的课程一定要看)

现在的目标应该是打牢以下几个基础知识:
操作系统和计算机体系结构
了解内存结构(栈、堆、数据段、代码段)
进程、线程、寄存器的作用
虚拟内存和地址空间

推荐书:
《王爽 汇编语言》:作为第一本汇编书很合适
《深入理解计算机系统(CSAPP)》:这是计算机底层最经典的书之一,尤其是 pwn 会大量涉及 stack/heap,这本书讲得特别系统(建议大一下或大二认真啃一遍)

基础汇编 + 静态逆向分析阶段
这一阶段目标是:看懂反编译出来的汇编,理解常见编译器行为。

学习目标:
学习 x86/x64 汇编语言基础
掌握 IDA Free、Ghidra 等逆向工具
看懂 C 编译出来的汇编逻辑
能理解简单程序的反汇编结果

推荐资源:
《汇编语言(黑马程序员那本)》:相对浅显易懂
Ghidra 官方文档 + 教程

工具:
Ghidra、IDA Free、Cutter + Radare2
objdump, gdb, x64dbg

逆向工程入门阶段
学习目标:
静态+动态分析结合

破解简单的 CrackMe、软件注册机制

理解函数调用、字符串加密、混淆等

推荐资源:
OSEP 或 RE for Beginners 电子书(可搜索下载)
《Practical Reverse Engineering》英文但非常经典
CTF Wiki - 逆向部分(https://ctf-wiki.org

练手网站:
Crackmes.one
reversing.kr(经典题)


PWN入门阶段(超关键)
pwn 就是利用程序漏洞拿 Shell 的一种方式,重点是二进制漏洞利用。

学习目标:
熟练掌握 gdb + pwndbg + peda 使用
理解栈溢出、格式化字符串、ROP、Heap漏洞
能看懂 CTF 中 pwn 类题目的代码、理解其利用原理

推荐资料:
《CTF PWN入门指南》(github 上有很多)
Pwn College:特别适合新手的免费课程,由 ASU 安全实验室制作
《Linux 高级程序设计》:用于补充 Linux 系统编程知识
CTF Wiki:PWN 部分讲得非常详细(强烈推荐)

工具:
gdb / pwndbg / peda
pwntools(Python 编写的 PWN 利用框架)
one_gadget / ROPgadget / libc-database


练手平台:
pwnable.kr
pwnable.tw
CTFHub
NSSCTF

建议的学习顺序(路线图)
  1. 1. 语言基础(已完成)
  2. 2. 汇编 + 操作系统(你正在做)
  3. 3. 静态逆向(CrackMe + Ghidra)
  4. 4. 动态调试(gdb + x64dbg)
  5. 5. CTF PWN 入门(栈溢出等经典漏洞)
  6. 6. 中级逆向(混淆、packer、反虚拟化等)
  7. 7. 高级进阶(Kernel Pwn、Windows逆向)
复制代码


最佳答案

查看完整内容

前置基础阶段(当前你的位置) 你已经学过 Python / Java / C / C++,这是非常好的基础。 (小甲鱼老师的课程一定要看) 现在的目标应该是打牢以下几个基础知识: 操作系统和计算机体系结构 了解内存结构(栈、堆、数据段、代码段) 进程、线程、寄存器的作用 虚拟内存和地址空间 推荐书: 《王爽 汇编语言》:作为第一本汇编书很合适 《深入理解计算机系统(CSAPP)》:这是计算机底层最经典的书之一,尤其是 pwn 会 ...
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2024-8-14 13:47:53 | 显示全部楼层    本楼为最佳答案   
前置基础阶段(当前你的位置)
你已经学过 Python / Java / C / C++,这是非常好的基础。
(小甲鱼老师的课程一定要看)

现在的目标应该是打牢以下几个基础知识:
操作系统和计算机体系结构
了解内存结构(栈、堆、数据段、代码段)
进程、线程、寄存器的作用
虚拟内存和地址空间

推荐书:
《王爽 汇编语言》:作为第一本汇编书很合适
《深入理解计算机系统(CSAPP)》:这是计算机底层最经典的书之一,尤其是 pwn 会大量涉及 stack/heap,这本书讲得特别系统(建议大一下或大二认真啃一遍)

基础汇编 + 静态逆向分析阶段
这一阶段目标是:看懂反编译出来的汇编,理解常见编译器行为。

学习目标:
学习 x86/x64 汇编语言基础
掌握 IDA Free、Ghidra 等逆向工具
看懂 C 编译出来的汇编逻辑
能理解简单程序的反汇编结果

推荐资源:
《汇编语言(黑马程序员那本)》:相对浅显易懂
Ghidra 官方文档 + 教程

工具:
Ghidra、IDA Free、Cutter + Radare2
objdump, gdb, x64dbg

逆向工程入门阶段
学习目标:
静态+动态分析结合

破解简单的 CrackMe、软件注册机制

理解函数调用、字符串加密、混淆等

推荐资源:
OSEP 或 RE for Beginners 电子书(可搜索下载)
《Practical Reverse Engineering》英文但非常经典
CTF Wiki - 逆向部分(https://ctf-wiki.org

练手网站:
Crackmes.one
reversing.kr(经典题)


PWN入门阶段(超关键)
pwn 就是利用程序漏洞拿 Shell 的一种方式,重点是二进制漏洞利用。

学习目标:
熟练掌握 gdb + pwndbg + peda 使用
理解栈溢出、格式化字符串、ROP、Heap漏洞
能看懂 CTF 中 pwn 类题目的代码、理解其利用原理

推荐资料:
《CTF PWN入门指南》(github 上有很多)
Pwn College:特别适合新手的免费课程,由 ASU 安全实验室制作
《Linux 高级程序设计》:用于补充 Linux 系统编程知识
CTF Wiki:PWN 部分讲得非常详细(强烈推荐)

工具:
gdb / pwndbg / peda
pwntools(Python 编写的 PWN 利用框架)
one_gadget / ROPgadget / libc-database


练手平台:
pwnable.kr
pwnable.tw
CTFHub
NSSCTF

建议的学习顺序(路线图)
  1. 1. 语言基础(已完成)
  2. 2. 汇编 + 操作系统(你正在做)
  3. 3. 静态逆向(CrackMe + Ghidra)
  4. 4. 动态调试(gdb + x64dbg)
  5. 5. CTF PWN 入门(栈溢出等经典漏洞)
  6. 6. 中级逆向(混淆、packer、反虚拟化等)
  7. 7. 高级进阶(Kernel Pwn、Windows逆向)
复制代码


小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2025-3-21 23:01:05 | 显示全部楼层
你对网络安全感兴趣,尤其是逆向工程和Pwn方向,这是一个非常有趣且具有挑战性的领域。以下是一个从零基础开始的学习指南,帮助你逐步掌握逆向工程和Pwn技能。

1. 基础知识准备
计算机体系结构:了解计算机的基本工作原理,包括CPU、内存、I/O设备等。推荐书籍《计算机组成与设计:硬件/软件接口》。

操作系统:学习操作系统的基本概念,尤其是进程管理、内存管理、文件系统等。推荐书籍《操作系统概念》。

网络基础:了解TCP/IP协议栈、HTTP、DNS等基本网络协议。推荐书籍《计算机网络:自顶向下方法》。

2. 编程语言进阶
C语言:深入学习C语言,尤其是指针、内存管理、数据结构等。推荐书籍《C程序设计语言》。

汇编语言:学习x86汇编语言,理解CPU如何执行指令,掌握寄存器、栈、堆等概念。推荐书籍《汇编语言》(王爽)和《汇编语言程序设计》(大黑书)。

Python:学习Python的高级用法,尤其是脚本编写、自动化工具开发等。推荐书籍《Python编程:从入门到实践》。

3. 逆向工程基础
逆向工程入门:学习如何使用工具(如IDA Pro、Ghidra)进行二进制文件的分析。推荐书籍《逆向工程核心原理》。

调试技术:学习使用调试器(如GDB、WinDbg)进行程序调试。推荐书籍《软件调试》。

反汇编与反编译:学习如何将二进制代码转换为汇编代码或高级语言代码。推荐书籍《逆向工程实战》。

4. Pwn基础
漏洞利用基础:学习常见的漏洞类型(如栈溢出、堆溢出、格式化字符串漏洞等)。推荐书籍《漏洞利用与渗透测试基础》。

Shellcode编写:学习如何编写Shellcode,理解其工作原理。推荐书籍《Shellcoder's Handbook》。

CTF入门:参加CTF比赛,练习Pwn题目。推荐网站CTFtime.org和Pwnable.kr。

5. 进阶学习
操作系统安全:深入学习操作系统的安全机制(如ASLR、DEP、SEH等)。推荐书籍《操作系统安全》。

漏洞挖掘:学习如何发现和利用软件中的漏洞。推荐书籍《漏洞挖掘与利用》。

高级逆向工程:学习如何分析复杂的二进制文件(如恶意软件、驱动程序等)。推荐书籍《高级逆向工程》。

6. 实践与项目
开源项目:参与开源安全项目,积累实战经验。推荐项目Metasploit、Radare2。

CTF比赛:持续参加CTF比赛,提升实战能力。推荐比赛DEF CON CTF、Plaid CTF。

个人项目:尝试自己编写漏洞利用工具或分析工具,提升编程和逆向能力。

7. 持续学习与社区参与
关注安全社区:加入安全社区(如Reddit的r/netsec、Hack The Box),了解最新的安全动态。

阅读论文与博客:阅读安全领域的论文和博客,了解前沿技术。推荐博客Google Project Zero、Krebs on Security。

参加安全会议:参加安全会议(如Black Hat、DEF CON),与行业专家交流。

8. 资源推荐
在线课程:Coursera、Udemy上的网络安全课程。

书籍:《黑客与画家》、《Web应用安全权威指南》。

工具:IDA Pro、Ghidra、GDB、WinDbg、Radare2。

9. 时间规划
第一阶段(1-3个月):打好编程和计算机基础。

第二阶段(4-6个月):学习逆向工程和Pwn基础。

第三阶段(7-12个月):参与CTF比赛和开源项目,积累实战经验。

第四阶段(1年以上):深入学习高级技术,参与安全研究和项目。

通过以上步骤,你可以逐步掌握逆向工程和Pwn技能,并在网络安全领域取得进展。记住,网络安全是一个需要不断学习和实践的领域,保持好奇心和持续学习的动力非常重要。祝你学习顺利!
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2025-3-30 23:02:01 | 显示全部楼层
         大神们都是跟着兴趣和爱好走的,没有一个会问出这样的问题!
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-5-30 14:34

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表