朱皮特的博客 自由的飞翔

猜猜看如下三个程序会弹出几个对话框?

2009-03-06
朱皮特
阅读量:

//猜猜看如下三个程序,会弹出几个对话框?

#include "windows.h"

void main()

{

	HMODULE module = GetModuleHandle(0);

	CHAR buffer[MAX_PATH];

	GetModuleFileName(module, buffer, sizeof(buffer));

	UnmapViewOfFile(module);

	MessageBox(0, buffer, 0, 0);

}

//----------------------------

#include "windows.h"

void main()

{

	HMODULE module = GetModuleHandle(0);

	CHAR buffer[MAX_PATH];

	GetModuleFileName(module, buffer, sizeof(buffer));

	__asm

	{

		lea eax, buffer

		lea esi, goon

		push 0

		push 0

		push eax

		push 0

		push esi

		push module

		push MessageBox

		push UnmapViewOfFile

		ret

	}

goon:

	MessageBox(0, 0, 0, 0);

}

//----------------------------

#include "windows.h"

void main()

{

	HMODULE module = GetModuleHandle(0);

	static CHAR buffer[MAX_PATH];

	GetModuleFileName(module, buffer, sizeof(buffer));

	__asm

	{

		lea eax, buffer

		lea esi, goon

		push 0

		push 0

		push eax

		push 0

		push esi

		push module

		push MessageBox

		push UnmapViewOfFile

		ret

	}

goon:

	MessageBox(0, 0, 0, 0);

}

Comments

Content