首页
社区
课程
招聘
[旧帖] [求助]内联汇编堆栈平衡问题 0.00雪花
发表于: 2014-7-1 14:54 1533

[旧帖] [求助]内联汇编堆栈平衡问题 0.00雪花

2014-7-1 14:54
1533
__declspec(naked) void test()
{
	__asm
	{
		push ebp
		mov ebp,esp
		pushad
	}
	unsigned int Madress, Hadress;
	char jmphex[5];
	char putout[20];
	memset(jmphex,0 ,5);
	memset(putout, 0 , 20);
	memcpy(putout,"0x%X\r\n",7);
	__asm
	{
		mov eax,MessageBoxA
		mov Madress,eax
		mov eax,HookProcA
		mov Hadress,eax
		mov jmphex,0xEB
		push eax
		push putout
		call printf
		popad
		mov esp,ebp
		pop ebp
		ret
	}
}

为什么程序执行call printf返回后报内存错误,求大牛教育

[课程]FART 脱壳王!加量不加价!FART作者讲授!

收藏
免费 0
支持
分享
最新回复 (2)
雪    币: 7068
活跃值: (3517)
能力值: ( LV12,RANK:340 )
在线值:
发帖
回帖
粉丝
2
自己OD跟一下就知道了。。
暂且不说上面的那些东西。
printf是cdecl的,你得自己平衡栈。
就算要自己平衡栈,你popad什么意思?
你push了2个参数,都没有平衡回来,就popad?
2014-7-1 15:27
0
雪    币: 47
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
新手入门
我以为是__stdcall
原来需要自己平衡
灰常感谢bxc兄弟指点
2014-7-1 15:58
0
游客
登录 | 注册 方可回帖
返回
//