【逆向】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;

 

这样就是用汇编调用了一个函数

posted @ 2022-06-14 20:06  Hello霖  阅读(1129)  评论(0编辑  收藏  举报