4.9(预习)部分

LoadLibraryA GetProcAddress 编写代码,获取 VirtualAlloc 并且调用成功

#include 
#include 
#include 
#include 
#include
int main()
{
	HMODULE hModule=0;
	FARPROC space=NULL;
	hModule = LoadLibraryExA("kernel32.dll", NULL, DONT_RESOLVE_DLL_REFERENCES);
	if (!hModule)
	{
		printf("erro!!");
	}
	space = GetProcAddress(hModule, "VirtualAlloc");
	if (!space)
	{
		printf("erro!!");
	}
	else
	{
		char* ch = (char*)space();
		if (ch!=NULL)
		{
			printf("success!");
		}
    }
	return 0;
}
问题
1.space这里返回的是VirtualAlloc这个函数吗?
2.这里的路径不清楚是否给正确了?
3.假设这个参数给对了,那为什么使用space的时候不是VirtualAlloc的样子
4.VirtualAllocFree的功能怎么实现?(用free吗,因为这里space也是个指针类型)
5.从编译器这边的运行来讲,上述代码没有错误,能正常运行
6.上面图中如果space是VirtualAlloc,这里是没有初始化的
7.FARPROC space函数指针参数都没有

目前:没有用OD动态调试,存在些问题,也没有用IDA看
这两函数没怎么用过
getprocadress,返回的是函数指针
参考c语言,函数指针那节内容
所谓成功,是函数功能正确实现

你可能感兴趣的:(上课内容,学习)