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

相关推荐
问心无愧05137 小时前
ctf show web入门99
android·前端·笔记
8Qi88 小时前
LeetCode 746:使用最小花费爬楼梯 —— 题解笔记
java·笔记·算法·leetcode·动态规划
JoyCong19988 小时前
ToDesk游戏操控功能:用手柄与虚拟键盘畅玩3A大作
安全·游戏·计算机外设·电脑·远程工作·远程操作
二哈赛车手8 小时前
新人笔记---继图片搜索功能后续以及AI网络搜索功能一些经验与踩坑点,吐槽一下自己在做这方面的崩溃瞬间
java·网络·人工智能·spring boot·笔记·spring
再玩一会儿看代码8 小时前
Java抽象类和接口区别_场景理解
java·开发语言·经验分享·笔记·python
梦里捡到一只猫丶8 小时前
简单的Payload加密方法
笔记·网络安全
听你说328 小时前
从用户顾虑到平台信任:泰到位破解到家服务的安全命题
安全
狒狒热知识8 小时前
178软文网软文营销平台完善多层风控体系护航企业稳健安全传播
大数据·人工智能·安全
liana87448 小时前
构建私有化安全协作平台:以金融级协作平台与全链路安全防护体系重塑政企数字化底座
大数据·安全·金融
不灭锦鲤9 小时前
网络安全第117天
安全·web安全