2026-04-14
JMP
只修改 EIP,其余什么也不做
1MOV EIP, 寄存器/立即数 ;简写为:JMP 寄存器/立即数
CALL
修改 EIP,ESP 也会 -4,把下一句要执行的地址压栈
12PUSH 地址BMOV EIP, 地址A/寄存器 ;简写为:CALL 地址A/寄存器
RETN
修改 EIP,ESP + 4,弹出栈顶返回地址赋给 EIP。类...
阅读全文
2026-04-14
标志寄存器
在哪看?OD 已经把 32 位拆分好列出来了,C就是表示CF,P就表示PF…最下面那个 EFL 就是拆开前的样子,需要自己拆的时候就把这个 16 进制数展开成 32 位二进制就行
记住这几个寄存器的位置和名称:
进位标志 CF(Carry Flag):如果运算结果的最高位产生了一个进位或借位,那么,其值为 1,否则 0
研究进位时,要先...
阅读全文
2026-04-14
内存地址
反汇编窗口和寄存器窗口数据存储都是从高位到低位,数据区则是由低位到高位
寻址公式一:[立即数]
读取内存的值:
12MOV EAX, DWORD PTR DS:[0x13FFC4]MOV EAX, DWORD PTR DS:[0x13FFC8]
向内存中写入数据:
12MOV DWORD PTR DS:[0x13FFC4], eaxMOV...
阅读全文
2026-04-14
通用寄存器
32 位通用寄存器的指定用途如下:
寄存器
主要用途
编号
存储数据的范围
EAX
累加器
0
0 - 0xFFFFFFFF
ECX
计数
1
0 - 0xFFFFFFFF
EDX
I/O指针
2
0 - 0xFFFFFFFF
EBX
DS段的数据指针
3
0 - 0xFFFFFFFF
ESP
堆栈指针
4
0 - ...
阅读全文
2026-04-14
数据宽度
看成一个圆,当分正负的时候就从中间劈开,左边负数,右边正数,对应平时所讲的正数第一位为 0、负数第一位为 1,且左边最下面为最大的负数
几个重要的计量单位:
BYTE 字节 8bit
WORD 字 16bit 2字节
DWORD 双字 32bit 4字节
逻...
阅读全文
2026-04-14
课堂练习:
3 进制定义:由 3 个符号组成,分别是 0、1、2,逢 3 进 1
1234567890 1 210 11 1220 21 22100 101 102110 111 112120 121 122200 201 202210 211 212 220 221 222
3 进制定义:由 3 个符号组成,分别是 2、0、1,逢 3 进 1
123456...
阅读全文
2026-04-14
进制的本质
$N$ 进制的定义:由 $N$ 个符号组成,符号可任意定义,逢 $N$ 进一
二进制与十六进制的映射:
123456789101112131415160000 00001 10010 20011 30100 40101 50110 60111 71000 81001 ...
阅读全文
2026-04-13
突然想要重新搭建一个个人博客,只要不是学习的分内之事说干就干了,于是就有了这个新狗窝。
这个博客的用途依旧不会变,主要还是记录一下自己的学习经历吧。而说到为什么要建一个新的,一是因为之前的博客虽然写了很多,但是其实质量都很低,很多题目写wp时都是一知半解(当然也不是全部,也有很多都是自己真正摸透了的);二是因为一个全新的博客可以使我从一个初学者的角度出发,再...
阅读全文