目录导航
逆向工程简介
逆向工程(也称为反向工程)是一种过程或方法,通过该过程或方法,人们试图通过演绎推理来理解先前制造的设备、过程、系统或软件如何以较少的步骤(如果有的话)完成任务并深入了解它是如何做到的。
逆向工程是适用的领域计算机工程,机械工程,设计,电子工程,软件工程,化学工程,和系统生物学。
逆向工程教程简介
这套全面的逆向工程教程涵盖 x86、x64 以及 32 位 ARM 和 64 位架构。如果您是想要学习逆向的新手,或者只是想要修改某些概念的人,那么您来对地方了。作为初学者,这些教程将带您从零到逆向工程的中级基础,这是网络安全领域的每个人都应该具备的技能。如果您在这里只是为了刷新一些概念,您可以方便地使用侧栏查看到目前为止已涵盖的部分。

教程目录列表
中文:
- x86 课程
- 第 1 部分:目标
- 第 2 部分:技术
- 第 3 部分:恶意软件的类型
- 第 4 部分:x86 程序集介绍
- 第 5 部分:二进制数系统
- 第 6 部分:十六进制数系统
- 第 7 部分:晶体管和存储器
- 第 8 部分 – 字节、字、双字等…
- 第 9 部分:x86 基本架构
- 第 10 部分:通用寄存器
- 第 11 部分:段寄存器
- 第 12 部分:指令指针寄存器
- 第 13 部分:控制寄存器
- 第 14 部分:标志
- 第 15 部分:堆栈
- 第 16 部分:堆
- 第 17 部分 – 如何安装 Linux
- 第 18 部分 – vim 文本编辑器
- 第 19 部分 – 为什么要学习组装
- 第 20 部分 – 指令代码处理
- 第 21 部分 – 如何编译程序
- 第 22 部分 – ASM 程序 1 [移动即时数据]
- 第 23 部分 – ASM 调试 1 [移动即时数据]
- 第 24 部分 – ASM 黑客 1 [移动即时数据]
- 第 25 部分 – ASM 程序 2 [在寄存器之间移动数据]
- 第 26 部分 – ASM 调试 2 [在寄存器之间移动数据]
- 第 27 部分 – ASM 黑客攻击 2 [在寄存器之间移动数据]
- 第 28 部分 – ASM 程序 3 [在内存和寄存器之间移动数据]
- 第 29 部分 – ASM 调试 3 [在内存和寄存器之间移动数据]
- 第 30 部分 – ASM Hacking 3 [在内存和寄存器之间移动数据]
- 第 31 部分 – ASM 程序 4 [在寄存器和内存之间移动数据]
- 第 32 部分 – ASM 调试 4 [在寄存器和内存之间移动数据]
- 第 33 部分 – ASM Hacking 4 [在寄存器和内存之间移动数据]
- 第 34 部分 – ASM 程序 5 [使用寄存器间接寻址]
- 第 35 部分 – ASM 调试 5 [使用寄存器间接寻址]
- 第 36 部分 – ASM 黑客 5 [使用寄存器间接寻址]
- 第 37 部分 – ASM 程序 6 [CMOV 指令]
- 第 38 部分 – ASM 调试 6 [CMOV 指令]
- 第 39 部分 – ASM 黑客 6 [CMOV 说明]
- 第 40 部分 – 结论
- ARM-32 课程 1
- 第 1 部分——生命的意义
- 第 2 部分 – 数字系统
- 第 3 部分 – 二进制加法
- 第 4 部分 – 二进制减法
- 第 5 部分 – 字长
- 第 6 部分 – 寄存器
- 第 7 部分 – 程序计数器
- 第 8 部分 – CPSR
- 第 9 部分 – 链接寄存器
- 第 10 部分 – 堆栈指针
- 第 11 部分 – ARM 固件引导过程
- 第 12 部分 – 冯诺依曼架构
- 第 13 部分 – 指令管道
- 第 14 部分 – 添加
- 第 15 部分 – 调试 ADD
- 第 16 部分 – 破解 ADD
- 第 17 部分 – ADD
- 第 18 部分 – 调试 ADDS
- 第 19 部分 – 攻击 ADDS
- 第 20 部分 – ADC
- 第 21 部分 – 调试 ADC
- 第 22 部分 – 攻击 ADC
- 第 23 部分 – SUB
- 第 24 部分 – 调试 SUB
- 第 25 部分 – 破解 SUB
- ARM-32 课程 2
- 第 1 部分 – 生命的意义第 2 部分
- 第 2 部分 – 数字系统
- 第 3 部分 – 二进制加法
- 第 4 部分 – 二进制减法
- 第 5 部分 – 字长
- 第 6 部分 – 寄存器
- 第 7 部分 – 程序计数器
- 第 8 部分 – CPSR
- 第 9 部分 – 链接寄存器
- 第 10 部分 – 堆栈指针
- 第 11 部分 – 固件引导程序
- 第 12 部分 – 冯诺依曼架构
- 第 13 部分 – 指令管道
- 第 14 部分 – 你好世界
- 第 15 部分 – 调试 Hello World
- 第 16 部分 – 破解 Hello World
- 第 17 部分 – 常量
- 第 18 部分 – 调试常量
- 第 19 部分 – 破解常量
- 第 20 部分 – 字符变量
- 第 21 部分 – 调试字符变量
- 第 22 部分 – 破解字符变量
- 第 23 部分 – 布尔变量
- 第 24 部分 – 调试布尔变量
- 第 25 部分 – 破解布尔变量
- 第 26 部分 – 整数变量
- 第 27 部分 – 调试整型变量
- 第 28 部分 – 破解整数变量
- 第 29 部分 – 浮点变量
- 第 30 部分 – 调试浮点变量
- 第 31 部分 – 破解浮点变量
- 第 32 部分 – 双变量
- 第 33 部分 – 调试双重变量
- 第 34 部分 – 破解双重变量
- 第 35 部分 – SizeOf 运算符
- 第 36 部分 – 调试 SizeOf 运算符
- 第 37 部分 – 破解 SizeOf 运算符
- 第 38 部分 – 预增量运算符
- 第 39 部分 – 调试预增量运算符
- 第 40 部分 – 破解预增量运算符
- 第 41 部分 – 后增量运算符
- 第 42 部分 – 调试后增量运算符
- 第 43 部分 – 破解后增量运算符
- 第 44 部分 – 预减运算符
- 第 45 部分 – 调试预减运算符
- 第 46 部分 – 破解预减运算符
- 第 47 部分 – 后递减运算符
- 第 48 部分 – 调试后减运算符
- 第 49 部分 – 破解后递减运算符
- x64 课程
- 第 1 部分 – 网络革命
- 第 2 部分 – 晶体管
- 第 3 部分 – 逻辑门
- 第 4 部分 – 数字系统
- 第 5 部分 – 二进制加法
- 第 6 部分 – 二进制减法
- 第 7 部分 – 字长
- 第 8 部分 – 通用架构
- 第 9 部分 – 调用约定
- 第 10 部分 – 布尔指令
- 第 11 部分 – 指针
- 第 12 部分 – 加载有效地址
- 第 13 部分 – 数据段
- 第 14 部分 – SHL 指令
- 第 15 部分 – SHR 说明
- 第 16 部分 – ROL 指令
- 第 17 部分 – ROR 说明
- 第 18 部分 – 引导扇区基础 [第 1 部分]
- 第 19 部分 – 引导扇区基础知识 [第 2 部分]
- 第 20 部分 – 引导扇区基础知识 [第 3 部分]
- 第 21 部分 – 引导扇区基础知识 [第 4 部分]
- 第 22 部分 – 引导扇区基础 [第 5 部分]
- 第 23 部分 – 引导扇区基础 [第 6 部分]
- 第 24 部分 – 引导扇区基础 [第 7 部分]
- 第 25 部分 – 引导扇区基础知识 [第 8 部分]
- 第 26 部分 – 引导扇区基础知识 [第 9 部分]
- 第 27 部分 – x64 组件 [第 1 部分]
- 第 28 部分 – x64 组件 [第 2 部分]
- 第 29 部分 – x64 组件 [第 3 部分]
- 第 30 部分 – x64 组件 [第 4 部分]
- 第 31 部分 – x64 组件 [第 5 部分]
- 第 32 部分 – x64 组件 [第 6 部分]
- 第 33 部分 – x64 组件 [第 7 部分]
- 第 34 部分 – x64 C++ 1 代码 [第 1 部分]
- 第 35 部分 – x64 C++ 2 调试 [第 2 部分]
- 第 36 部分 – x64 C++ 3 黑客攻击 [第 3 部分]
- 第 37 部分 – x64 C 和生命的起源
- 第 38 部分 – x64 网络基础知识
- 第 39 部分 – 为什么选择 C?
- 第 40 部分 – 破解 Hello World!
- 第 41 部分 – 破解变量!
- 第 42 部分 – 入侵分支!
- 第 43 部分 – 黑客指针!
- ARM-64 课程
- 第 1 部分 – 生命的意义
- 第 2 部分 – 开发设置
- 第 3 部分 – “Hello World”
- 第 4 部分 – 调试“Hello World”
- 第 5 部分 – 破解“Hello World”
- 第 6 部分 – 基本 I/O
- 第 7 部分 – 调试基本 I/O
- 第 8 部分 – 破解基本 I/O
- 第 9 部分 – 字符原始数据类型
- 第 10 部分 – 调试字符原始数据类型
- 第 11 部分 – 破解字符原始数据类型
- 第 12 部分 – 布尔原始数据类型
- 第 13 部分 – 调试布尔原始数据类型
- 第 14 部分 – 破解布尔原始数据类型
- 第 15 部分 – 浮点基本数据类型
- 第 16 部分 – 调试浮点基本数据类型
- 第 17 部分 – 破解浮点原始数据类型
- 第 18 部分 – 双原语数据类型
- 第 19 部分 – 调试双基本数据类型
- 第 20 部分 – 破解双重原始数据类型
- Pico 黑客课程
- 第 1 部分 – 为什么,如何…
- 第 2 部分 – 你好世界
- 第 3 部分 – 调试 Hello World
- 第 4 部分 – 破解 Hello World
- 第 5 部分 – 字符
- 第 6 部分 – 调试字符
- 第 7 部分 – 破解字符
- 第 8 部分 – 整数
- 第 9 部分 – 调试 int
- 第 10 部分 – 破解 int
- 第 11 部分 – 浮动
- 第 12 部分 – 调试float
- 第 13 部分 – 黑客float
- 第 14 部分 – 双倍
- 第 15 部分 – 调试双重
- 第 16 部分 – 黑客双打
- 第 17 部分 – “绝对权力绝对腐败!”,输入的悲惨故事……
- 第 18 部分 – “我训练了 800 年的绝地武士!”,输入的力量……
- 第 19 部分 – 输入
- 第 20 部分 – 调试输入
英文:
- x86 Course
- Part 1: Goals
- Part 2: Techniques
- Part 3: Types Of Malware
- Part 4: x86 Assembly Intro
- Part 5: Binary Number System
- Part 6: Hexadecimal Number System
- Part 7: Transistors And Memory
- Part 8 – Bytes, Words, Double Words, etc…
- Part 9: x86 Basic Architecture
- Part 10: General-purpose Registers
- Part 11: Segment Registers
- Part 12: Instruction Pointer Register
- Part 13: Control Registers
- Part 14: Flags
- Part 15: Stack
- Part 16: Heap
- Part 17 – How To Install Linux
- Part 18 – vim Text Editor
- Part 19 – Why Learn Assembly
- Part 20 – Instruction Code Handling
- Part 21 – How To Compile A Program
- Part 22 – ASM Program 1 [Moving Immediate Data]
- Part 23 – ASM Debugging 1 [Moving Immediate Data]
- Part 24 – ASM Hacking 1 [Moving Immediate Data]
- Part 25 – ASM Program 2 [Moving Data Between Registers]
- Part 26 – ASM Debugging 2 [Moving Data Between Registers]
- Part 27 – ASM Hacking 2 [Moving Data Between Registers]
- Part 28 – ASM Program 3 [Moving Data Between Memory And Registers]
- Part 29 – ASM Debugging 3 [Moving Data Between Memory And Registers]
- Part 30 – ASM Hacking 3 [Moving Data Between Memory And Registers]
- Part 31 – ASM Program 4 [Moving Data Between Registers And Memory]
- Part 32 – ASM Debugging 4 [Moving Data Between Registers And Memory]
- Part 33 – ASM Hacking 4 [Moving Data Between Registers And Memory]
- Part 34 – ASM Program 5 [Indirect Addressing With Registers]
- Part 35 – ASM Debugging 5 [Indirect Addressing With Registers]
- Part 36 – ASM Hacking 5 [Indirect Addressing With Registers]
- Part 37 – ASM Program 6 [CMOV Instructions]
- Part 38 – ASM Debugging 6 [CMOV Instructions]
- Part 39 – ASM Hacking 6 [CMOV Instructions]
- Part 40 – Conclusion
- ARM-32 Course 1
- Part 1 – The Meaning Of Life
- Part 2 – Number Systems
- Part 3 – Binary Addition
- Part 4 – Binary Subtraction
- Part 5 – Word Lengths
- Part 6 – Registers
- Part 7 – Program Counter
- Part 8 – CPSR
- Part 9 – Link Register
- Part 10 – Stack Pointer
- Part 11 – ARM Firmware Boot Procedures
- Part 12 – Von Neumann Architecture
- Part 13 – Instruction Pipeline
- Part 14 – ADD
- Part 15 – Debugging ADD
- Part 16 – Hacking ADD
- Part 17 – ADDS
- Part 18 – Debugging ADDS
- Part 19 – Hacking ADDS
- Part 20 – ADC
- Part 21 – Debugging ADC
- Part 22 – Hacking ADC
- Part 23 – SUB
- Part 24 – Debugging SUB
- Part 25 – Hacking SUB
- ARM-32 Course 2
- Part 1 – The Meaning Of Life Part 2
- Part 2 – Number Systems
- Part 3 – Binary Addition
- Part 4 – Binary Subtraction
- Part 5 – Word Lengths
- Part 6 – Registers
- Part 7 – Program Counter
- Part 8 – CPSR
- Part 9 – Link Register
- Part 10 – Stack Pointer
- Part 11 – Firmware Boot Procedures
- Part 12 – Von Neumann Architecture
- Part 13 – Instruction Pipeline
- Part 14 – Hello World
- Part 15 – Debugging Hello World
- Part 16 – Hacking Hello World
- Part 17 – Constants
- Part 18 – Debugging Constants
- Part 19 – Hacking Constants
- Part 20 – Character Variables
- Part 21 – Debugging Character Variables
- Part 22 – Hacking Character Variables
- Part 23 – Boolean Variables
- Part 24 – Debugging Boolean Variables
- Part 25 – Hacking Boolean Variables
- Part 26 – Integer Variables
- Part 27 – Debugging Integer Variables
- Part 28 – Hacking Integer Variables
- Part 29 – Float Variables
- Part 30 – Debugging Float Variables
- Part 31 – Hacking Float Variables
- Part 32 – Double Variables
- Part 33 – Debugging Double Variables
- Part 34 – Hacking Double Variables
- Part 35 – SizeOf Operator
- Part 36 – Debugging SizeOf Operator
- Part 37 – Hacking SizeOf Operator
- Part 38 – Pre-Increment Operator
- Part 39 – Debugging Pre-Increment Operator
- Part 40 – Hacking Pre-Increment Operator
- Part 41 – Post-Increment Operator
- Part 42 – Debugging Post-Increment Operator
- Part 43 – Hacking Post-Increment Operator
- Part 44 – Pre-Decrement Operator
- Part 45 – Debugging Pre-Decrement Operator
- Part 46 – Hacking Pre-Decrement Operator
- Part 47 – Post-Decrement Operator
- Part 48 – Debugging Post-Decrement Operator
- Part 49 – Hacking Post-Decrement Operator
- x64 Course
- Part 1 – The Cyber Revolution
- Part 2 – Transistors
- Part 3 – Logic Gates
- Part 4 – Number Systems
- Part 5 – Binary Addition
- Part 6 – Binary Subtraction
- Part 7 – Word Lengths
- Part 8 – General Architecture
- Part 9 – Calling Conventions
- Part 10 – Boolean Instructions
- Part 11 – Pointers
- Part 12 – Load Effective Address
- Part 13 – The Data Segment
- Part 14 – SHL Instruction
- Part 15 – SHR Instruction
- Part 16 – ROL Instruction
- Part 17 – ROR Instruction
- Part 18 – Boot Sector Basics [Part 1]
- Part 19 – Boot Sector Basics [Part 2]
- Part 20 – Boot Sector Basics [Part 3]
- Part 21 – Boot Sector Basics [Part 4]
- Part 22 – Boot Sector Basics [Part 5]
- Part 23 – Boot Sector Basics [Part 6]
- Part 24 – Boot Sector Basics [Part 7]
- Part 25 – Boot Sector Basics [Part 8]
- Part 26 – Boot Sector Basics [Part 9]
- Part 27 – x64 Assembly [Part 1]
- Part 28 – x64 Assembly [Part 2]
- Part 29 – x64 Assembly [Part 3]
- Part 30 – x64 Assembly [Part 4]
- Part 31 – x64 Assembly [Part 5]
- Part 32 – x64 Assembly [Part 6]
- Part 33 – x64 Assembly [Part 7]
- Part 34 – x64 C++ 1 Code [Part 1]
- Part 35 – x64 C++ 2 Debug [Part 2]
- Part 36 – x64 C++ 3 Hacking [Part 3]
- Part 37 – x64 C & Genesis Of Life
- Part 38 – x64 Networking Basics
- Part 39 – Why C?
- Part 40 – Hacking Hello World!
- Part 41 – Hacking Variables!
- Part 42 – Hacking Branches!
- Part 43 – Hacking Pointers!
- ARM-64 Course
- Part 1 – The Meaning Of Life
- Part 2 – Development Setup
- Part 3 – “Hello World”
- Part 4 – Debugging “Hello World”
- Part 5 – Hacking “Hello World”
- Part 6 – Basic I/O
- Part 7 – Debugging Basic I/O
- Part 8 – Hacking Basic I/O
- Part 9 – Character Primitive Datatype
- Part 10 – Debugging Character Primitive Datatype
- Part 11 – Hacking Character Primitive Datatype
- Part 12 – Boolean Primitive Datatype
- Part 13 – Debugging Boolean Primitive Datatype
- Part 14 – Hacking Boolean Primitive Datatype
- Part 15 – Float Primitive Datatype
- Part 16 – Debugging Float Primitive Datatype
- Part 17 – Hacking Float Primitive Datatype
- Part 18 – Double Primitive Datatype
- Part 19 – Debugging Double Primitive Datatype
- Part 20 – Hacking Double Primitive Datatype
- Pico Hacking Course
- Part 1 – The Why, The How…
- Part 2 – Hello World
- Part 3 – Debugging Hello World
- Part 4 – Hacking Hello World
- Part 5 – char
- Part 6 – Debugging char
- Part 7 – Hacking char
- Part 8 – int
- Part 9 – Debugging int
- Part 10 – Hacking int
- Part 11 – float
- Part 12 – Debugging float
- Part 13 – Hacking float
- Part 14 – double
- Part 15 – Debugging double
- Part 16 – Hacking double
- Part 17 – “ABSOLUTE POWER CORRUPTS ABSOLUTELY!”, The Tragic Tale Of Input…
- Part 18 – “FOR 800 YEARS HAVE I TRAINED JEDI!”, The FORCE That IS Input…
- Part 19 – Input
- Part 20 – Debugging Input
逆向工程教程官网地址
https://0xinfection.github.io/reversing/

教程pdf下载

云中转网盘:
https://yzzpan.com/#sharefile=eW0eeXtu_27002
解压密码:www.ddosi.org
转载请注明出处及链接
gitbook.com这个站不给力哦,下载都失效了。
别用国内网盘了。外国顶尖网盘那么多,墙都翻出来了,为什么还用国内大数据魔爪中渣渣网站
英文的,崩溃😵