免责声明:内容仅供学习参考,请合法利用知识,禁止进行违法犯罪活动!
本次游戏没法给
内容参考于:微尘网络安全
工具下载:
链接:https://pan.baidu.com/s/1rEEJnt85npn7N38Ai0_F2Q?pwd=6tw3
提取码:6tw3
复制这段内容后打开百度网盘手机App,操作更方便哦
上一个内容:9.x86游戏实战-汇编指令mov
上一个内容写的是mov指令的用法与作用,本次的lea与mov差不多,mov是把右边的值给左边,lea是把右边的地址给左边,也就是说lea会把右边的值当成内存地址
如果按f8之后OD会卡死,尝试使用下图的菜单
如下图的四行代码为例
执行第一行 mov eax, ecx
执行第二行 lea eax,[ecx],还会把ecx的值给eax,它与mov eax, ecx一样
执行第三行lea eax, [ecx+30]
执行第四行 lea eax, [233]
这样lea与mov的区别不明显,接下来使用_asm,使用_asm就会很清晰,lea把右边的值的内存地址给左边,mov把右边的值给左边
然后有个反汇编
我们写的汇编代码,编译器会给我们做修改,如下图
#include <iostream> #include "Windows.h" int main() { int a = 1; int b = 2; int c = 3; int d = 4; _asm { mov eax,a mov c,eax lea ecx, [b] mov d,ecx } printf("%d, %x", c, d); printf("===="); //跨进程读内存(); //跨进程写内存(); }