其他分享
首页 > 其他分享> > 【Reverse】 VirtualFunctionTable HOOK

【Reverse】 VirtualFunctionTable HOOK

作者:互联网

就是将虚表中的函数地址修改为我们的想要的,使得程序运行我们的代码

#include "stdafx.h"
#include<windows.h>

class test{
public:
	virtual void t(){
		printf("Hello!!\n");
	}
};

void Hello(){
	printf("HOOKED!!!!\n");
}

int main(int argc, char* argv[])
{
	test* a = new test();
	
	
	DWORD* pFun = (DWORD*)*(DWORD*)(a);
	//修改访问属性
	DWORD pOldProc=0;		//要将原属性保存,否则会执行失败
	VirtualProtect(pFun,4,PAGE_EXECUTE_READWRITE,&pOldProc);
	a->t();
	*pFun = (DWORD)Hello;
	a->t();
	return 0;
}

标签:Reverse,int,pFun,HOOK,printf,test,DWORD,VirtualFunctionTable,Hello
来源: https://www.cnblogs.com/Aurora-M/p/15469744.html