【逆向】c++中使用__asm内联汇编
一条普通的弹出信息框代码:
MessageBoxA(NULL, "欢迎", "提示框", MB_OK);
需要是4个参数
#include <windows.h> 需要导入该头文件,因为MessageBoxA函数需要
现在不用这种方式弹出信息框,改用asm汇编方式
使用 __asm{}
char str1[] = "hello world";
__asm {
push 0;
push 0;
lea eax,[str1];
push eax;
push 0;
call MessageBoxA;
}
因为需要四个参数,参数顺序是从右往左传入,我们只需要显示的内容是我们自定义的就好了,其它的暂时不需要,
因为不能直接传入字符串,第三个参数需要我们自己在外面定义 char str1[] = "hello world";
不能直接push 地址进来,需要用寄存器存储,这里就用
lea eax,[str1];
然后把eax push进去就好
最后call 信息框函数 call MessageBoxA;
这样就是用汇编调用了一个函数