一、什么是逆向
逆向工程(Reverse Engineering)是指对一个产品、设备或系统进行分析、解剖和研究,以了解其内部结构、原理、功能和设计,而不依赖于它的原始文档或源代码。逆向工程的目的可以是各种各样的,包括了解竞争对手的产品、改进现有系统、修复软件漏洞、破解加密算法、或者创建兼容性的实现。
简单来说就是拿到一个软件,通过底层代码(汇编)解析软件逻辑,然后你想干嘛就干嘛(除了违法行为)
二、逆向的种类
逆向分很多种方向,每种方向学习的东西都不同,但是总归是逆向,条条大路通罗马。只要你掌握一种,其他学起来会更容易
- win逆向(win32、win64)
- js逆向
- 安卓逆向
- linux逆向
- ios逆向
- 等等
三、win逆向所需知识
- C\C++ (了解基础概念,指针)
- MFC(C++窗口化程序框架)
- 汇编、反汇编(必需掌握)
- 进制(熟悉)
- PE(必须掌握)
- 等等