Re:从零开始的逆向笔记01day

0-汇编语言

运算

AND(&) OR(|) XOR(^) NOT(~) SHL(<<) SHR/SAR(>>)

加法计算:异或,与左移一位(重复)

通用寄存器
32位 16位 8位
EAX AX AL、AH
ECX CX CL、CH
EDX DX DL、DH
EBX BX BL、BH
ESP SP
EBP BP
ESI SI
EDI DI

注:AX、AL、AH分别表示EAX中的2个低位字节、1个低位字节和1个高位字节

内存

每个应用程序都会有自己的独立4GB内存空间

MOVE DOWRD/WORD/BYTE PTR DS:内存地址,立即数/32位通用寄存器

数据存储在ARM上采用大端模式(数据低位在高位地址中)

指令

MOVS指令默认使用ESI和EDI,执行完成后ESI、EDI的值会自增或自减(取决于DF位和传送数据的数据宽),按照数据宽度简写为MOVSB,MOVSW,MOVSD

STOS同理,将AL/AX/EAX的值储存到EDI指定的内存地址

REP MOVS指令/STOS指令,循环执行MOVS指令/STOS指令,次数取决于ECX中的值

窗口输入dd 7FFDF000即可看到堆栈的地址范围

堆栈

EIP存放CPU下次要执行的指令地址

平衡堆栈有两种情况三个方法:1.使用完堆栈后,POP释放数据;2.外平栈:使用ADD指令;3.内平栈:使用RET指令

ESP寻址:MOV EAX, DWORD PTR SS:ESP+4

EBP寻址:保存EBP的值,将EBP指向ESP的位置,在原来的堆栈基础上将ESP上移,变成新的堆栈

标志寄存器

条件标志位:SF(符号)、ZF(零)、OF(溢出有符号)、CF(进位无符号)、AF(辅助进位)、PF(奇偶)

控制标志位:DF、IF、TF

相关推荐
独隅8 小时前
Cursor 安全插件链:构建实时 SAST/DAST 辅助分析工作流
安全
峥无9 小时前
从0到1手撕红黑树:封装实现 my_map 与 my_set(SGI-STL 源码级深度解析)
开发语言·c++·笔记·算法·stl
fish-man9 小时前
ceshi ceshi yixia
网络·安全·web安全
不会代码的小猴10 小时前
3. 控件学习1
开发语言·c++·笔记·qt·算法
疯狂打码的少年11 小时前
【数据结构】图的存储结构:邻接矩阵与邻接表
数据结构·笔记
科技新资讯11 小时前
防护加密流量中的API接口安全有哪些安全产品措施
安全·系统安全
志栋智能11 小时前
安全超自动化:构建全方位安全可观测性的基础
网络·安全·自动化
蒸蒸yyyyzwd12 小时前
cpp 选手准备秋招学习笔记 day10
笔记·面试·求职招聘
Splashtop高性能远程控制软件12 小时前
AI 落地的连接基建评估:消费品行业远程连接方案的四个技术维度(性能 / 精度 / 安全 / 统一管理)
运维·人工智能·安全·远程工作·splashtop
智塑未来12 小时前
鸿蒙6.1隐私安全升级——加密分享限时查看+水印+应用锁+防诈一键开启
安全·华为·harmonyos