1.汇编
2.API
3.内存
4.进程
5.窗口
必须熟悉的汇编指令:
PUSH 入栈
MOV 赋值
JMP(JNZ JE) 跳转
CALL 调用函数
RET 返回
Cmp 比较
Test 比较
必须知道什么叫寄存器并且使用
EAX 累加寄存器(一般情况下,运算结果,call的结果)
EBX 基址寄存器(存储的基址)
ECX 计数寄存器(计次循环)
EDX 数据寄存器(数据)
EBP 参数或局部变量
ESP 堆栈
EDI 目的变址寄存器(交换的目的)
ESI 源变址寄存器 (交换的源)
EIP 当前函数运行位置
程序无法被反编译,所以我们可以通过汇编的形式区了解功能。
也可以通过汇编代码来对函数或者是变量进行赋值操作
API:看懂API和调用API
在windows系统上的程序,都会调用API函数,我们只有找到关键的API函数,进行Hook可以到达意想不到的效果
内存:了解程序在内存的存储方式
所有的数据都是存在内存的,都会有一个存储的地址 这个地址我们叫做内存地址
进程:Hook是在进程中操作的
每个进程都是独立的,除非共享,注入 包括了很多DLL,Hook不仅仅是exe,更多的是DLL
窗口:消息机制
windows的系统是基于消息的