逆向工程简介
逆向工程(也称为反向工程)是一种过程或方法,通过该过程或方法,人们试图通过演绎推理来理解先前制造的设备、过程、系统或软件如何以较少的步骤(如果有的话)完成任务并深入了解它是如何做到的。
逆向工程是适用的领域计算机工程,机械工程,设计,电子工程,软件工程,化学工程,和系统生物学。
逆向工程教程简介
这套全面的逆向工程教程涵盖 x86、x64 以及 32 位 ARM 和 64 位架构。如果您是想要
学习逆向的新手,或者只是想要修改某些概念的人,那么您来对地方了。作为初学者,这些教程将带您从零到逆向工程的中级基础,这是网络安全领域的每个人都应该具备的技能。如果您在这里只是为了刷新一些概念,您可以方便地使用侧栏查看到目前为止已涵盖的部分。
教程目录列表
中文:
· 第 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 部分– 结论
· 第 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
· 第 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 部分– 逆向后递减运算符
· 第 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 部分– 黑客指针!
· 第 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 部分– 逆向双重原始数据类型
· 第 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 部分– 调试输入
英文:
· Part 1:Goals
· Part2: Techniques
· Part3: Types Of Malware
· Part4: x86 Assembly Intro
· Part5: Binary Number System
· Part6: Hexadecimal Number System
· Part7: Transistors And Memory
· Part8 – Bytes, Words, Double Words, etc…
· Part9: x86 Basic Architecture
· Part10: General-purpose Registers
· Part11: Segment Registers
· Part12: Instruction Pointer Register
· Part13: Control Registers
· Part14: Flags
· Part15: Stack
· Part 16:Heap
· Part17 – How To Install Linux
· Part18 – vim Text Editor
· Part19 – Why Learn Assembly
· Part20 – Instruction Code Handling
· Part21 – How To Compile A Program
· Part22 – ASM Program 1 [Moving Immediate Data]
· Part23 – ASM Debugging 1 [Moving Immediate Data]
· Part24 – ASM Hacking 1 [Moving Immediate Data]
· Part25 – ASM Program 2 [Moving Data Between Registers]
· Part26 – ASM Debugging 2 [Moving Data Between Registers]
· Part27 – ASM Hacking 2 [Moving Data Between Registers]
· Part28 – ASM Program 3 [Moving Data Between Memory And Registers]
· Part29 – ASM Debugging 3 [Moving Data Between Memory And Registers]
· Part30 – ASM Hacking 3 [Moving Data Between Memory And Registers]
· Part31 – ASM Program 4 [Moving Data Between Registers And Memory]
· Part32 – ASM Debugging 4 [Moving Data Between Registers And Memory]
· Part33 – ASM Hacking 4 [Moving Data Between Registers And Memory]
· Part34 – ASM Program 5 [Indirect Addressing With Registers]
· Part35 – ASM Debugging 5 [Indirect Addressing With Registers]
· Part36 – ASM Hacking 5 [Indirect Addressing With Registers]
· Part37 – ASM Program 6 [CMOV Instructions]
· Part38 – ASM Debugging 6 [CMOV Instructions]
· Part39 – ASM Hacking 6 [CMOV Instructions]
· Part40 – Conclusion
· Part1 – The Meaning Of Life
· Part2 – Number Systems
· Part3 – Binary Addition
· Part4 – Binary Subtraction
· Part5 – Word Lengths
· Part6 – Registers
· Part7 – Program Counter
· Part 8 –CPSR
· Part9 – Link Register
· Part10 – Stack Pointer
· Part11 – ARM Firmware Boot Procedures
· Part12 – Von Neumann Architecture
· Part13 – Instruction Pipeline
· Part 14 –ADD
· Part15 – Debugging ADD
· Part16 – Hacking ADD
· Part 17– ADDS
· Part18 – Debugging ADDS
· Part19 – Hacking ADDS
· Part 20 –ADC
· Part21 – Debugging ADC
· Part22 – Hacking ADC
· Part 23 –SUB
· Part24 – Debugging SUB
· Part25 – Hacking SUB
· Part1 – The Meaning Of Life Part 2
· Part2 – Number Systems
· Part3 – Binary Addition
· Part4 – Binary Subtraction
· Part5 – Word Lengths
· Part6 – Registers
· Part7 – Program Counter
· Part 8 –CPSR
· Part9 – Link Register
· Part10 – Stack Pointer
· Part11 – Firmware Boot Procedures
· Part12 – Von Neumann Architecture
· Part13 – Instruction Pipeline
· Part14 – Hello World
· Part15 – Debugging Hello World
· Part16 – Hacking Hello World
· Part17 – Constants
· Part18 – Debugging Constants
· Part19 – Hacking Constants
· Part20 – Character Variables
· Part21 – Debugging Character Variables
· Part22 – Hacking Character Variables
· Part23 – Boolean Variables
· Part24 – Debugging Boolean Variables
· Part25 – Hacking Boolean Variables
· Part26 – Integer Variables
· Part27 – Debugging Integer Variables
· Part28 – Hacking Integer Variables
· Part29 – Float Variables
· Part30 – Debugging Float Variables
· Part31 – Hacking Float Variables
· Part32 – Double Variables
· Part33 – Debugging Double Variables
· Part34 – Hacking Double Variables
· Part35 – SizeOf Operator
· Part36 – Debugging SizeOf Operator
· Part37 – Hacking SizeOf Operator
· Part38 – Pre-Increment Operator
· Part39 – Debugging Pre-Increment Operator
· Part40 – Hacking Pre-Increment Operator
· Part41 – Post-Increment Operator
· Part42 – Debugging Post-Increment Operator
· Part43 – Hacking Post-Increment Operator
· Part44 – Pre-Decrement Operator
· Part45 – Debugging Pre-Decrement Operator
· Part46 – Hacking Pre-Decrement Operator
· Part47 – Post-Decrement Operator
· Part48 – Debugging Post-Decrement Operator
· Part49 – Hacking Post-Decrement Operator
· Part1 – The Cyber Revolution
· Part2 – Transistors
· Part3 – Logic Gates
· Part4 – Number Systems
· Part5 – Binary Addition
· Part6 – Binary Subtraction
· Part7 – Word Lengths
· Part8 – General Architecture
· Part9 – Calling Conventions
· Part10 – Boolean Instructions
· Part11 – Pointers
· Part12 – Load Effective Address
· Part13 – The Data Segment
· Part14 – SHL Instruction
· Part15 – SHR Instruction
· Part16 – ROL Instruction
· Part17 – ROR Instruction
· Part18 – Boot Sector Basics [Part 1]
· Part19 – Boot Sector Basics [Part 2]
· Part20 – Boot Sector Basics [Part 3]
· Part21 – Boot Sector Basics [Part 4]
· Part22 – Boot Sector Basics [Part 5]
· Part23 – Boot Sector Basics [Part 6]
· Part24 – Boot Sector Basics [Part 7]
· Part25 – Boot Sector Basics [Part 8]
· Part26 – Boot Sector Basics [Part 9]
· Part27 – x64 Assembly [Part 1]
· Part28 – x64 Assembly [Part 2]
· Part29 – x64 Assembly [Part 3]
· Part30 – x64 Assembly [Part 4]
· Part31 – x64 Assembly [Part 5]
· Part32 – x64 Assembly [Part 6]
· Part33 – x64 Assembly [Part 7]
· Part34 – x64 C++ 1 Code [Part 1]
· Part35 – x64 C++ 2 Debug [Part 2]
· Part36 – x64 C++ 3 Hacking [Part 3]
· Part37 – x64 C & Genesis Of Life
· Part38 – x64 Networking Basics
· Part 39– Why C?
· Part40 – Hacking Hello World!
· Part41 – Hacking Variables!
· Part42 – Hacking Branches!
· Part43 – Hacking Pointers!
· Part1 – The Meaning Of Life
· Part2 – Development Setup
· Part3 – “Hello World”
· Part4 – Debugging “Hello World”
· Part5 – Hacking “Hello World”
· Part6 – Basic I/O
· Part7 – Debugging Basic I/O
· Part8 – Hacking Basic I/O
· Part9 – Character Primitive Datatype
· Part10 – Debugging Character Primitive Datatype
· Part11 – Hacking Character Primitive Datatype
· Part12 – Boolean Primitive Datatype
· Part13 – Debugging Boolean Primitive Datatype
· Part14 – Hacking Boolean Primitive Datatype
· Part15 – Float Primitive Datatype
· Part16 – Debugging Float Primitive Datatype
· Part17 – Hacking Float Primitive Datatype
· Part18 – Double Primitive Datatype
· Part19 – Debugging Double Primitive Datatype
· Part20 – Hacking Double Primitive Datatype
· Part1 – The Why, The How…
· Part2 – Hello World
· Part3 – Debugging Hello World
· Part4 – Hacking Hello World
· Part 5 –char
· Part6 – Debugging char
· Part7 – Hacking char
· Part 8 –int
· Part9 – Debugging int
· Part10 – Hacking int
· Part 11– float
· Part12 – Debugging float
· Part13 – Hacking float
· Part14 – double
· Part15 – Debugging double
· Part16 – Hacking double
· Part17 – “ABSOLUTE POWER CORRUPTS ABSOLUTELY!”, The Tragic Tale Of Input…
· Part18 – “FOR 800 YEARS HAVE I TRAINED JEDI!”, The FORCE That IS Input…
· Part 19– Input
· Part20 – Debugging Input
逆向工程教程官网地址
https://0xinfection.github.io/reversing/
教程pdf下载
[ PDF | MOBI ]