mov-[地址值]-call
Posted sec875
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mov-[地址值]-call相关的知识,希望对你有一定的参考价值。
mov dest, src
- src:来源 dest:目标 类似 dest=src
[地址值]
- []里面放的一定是地址值
int a = 3; //使用4个字节存储一个3
mov dword ptr [ebp-8],3 //3放入内存需要指定大小
dword ptr //ptr是语法,用于指定大小,左边是单位
word是字,表示2字节,dword是4字节(double word),qword是8字节(quad word)
call函数地址
call 00112233 //会跳转到函数地址
jmp 44556677 //会跳转到函数的真正地址
为什么不直接用a的地址,而是ebp-8
int a = 3; //函数调用,开辟局部空间,每次ebp都是一个全新的值
cout << &a << endl;
全局变量a的地址值是写死的地址
CPU的大小端模式 大部分都是小端模式(00000011先放到内存低地址处)
mov dword ptr [ebp-8],3 //存
00000000 00000000 00000000 00000011 //00000011先放到内存4个字节空间的哪里呢
mov eax,dword ptr [ebp-8] //读,从内存低到高吞并4字节
00000000 00000000 00000000 00000011 //00000011读出来放到最后,小端模式
- 调试-窗口-内存-选择一个
以上是关于mov-[地址值]-call的主要内容,如果未能解决你的问题,请参考以下文章
Android 逆向x86 汇编 ( call 子函数调用指令 | jmp 跳转指令 | lea 加载指令 | mov 数据传送指令 )
Windows 逆向OD 调试器工具 ( 分析 OD 硬件断点处的关键代码 | 添加硬件断点 | 关键代码 | MOV 指令 | EAX 寄存器值分析 | 使用命令查看 esi+0cc 地址 )(代码
Windows 逆向使用 CE 工具挖掘关键数据内存真实地址 ( 数据查找技巧 | 地址访问调试 | 指令选择技巧 | MOV 汇编指令含义 | 基址值搜索 ) ★