首页
社区
课程
招聘
未解决 [求助]关于C++成员函数 Inline Hook方式中内存指令的读取
发表于: 2018-12-4 18:18 1633

未解决 [求助]关于C++成员函数 Inline Hook方式中内存指令的读取

2018-12-4 18:18
1633
得到成员函数的地址之后,我想读取该地址的指令信息,我先采用了这样的方式:
ULONG_PTR SkipJmpAddress(ULONG_PTR uAddress)
{
	ULONG_PTR TrueAddress = 0;
	PBYTE pFn = (PBYTE)uAddress;

	if (pFn[0] == 0xE9)
	{
		TrueAddress = (ULONG_PTR)pFn + *(ULONG_PTR*)(pFn + 1) + 5;
		return TrueAddress;
	}
但是发现没有权限读取这块内存信息,转而使用:
	int pid = getpid();
	bool shd = ReadProcessMemory(OpenProcess(PROCESS_VM_READ, true, pid), (LPVOID)uAddress, pFn, 2, &dwBytesReturned);
	printf("%d\n", shd);
也没有权限,继续尝试:
DWORD dwOLD;

MEMORY_BASIC_INFORMATION MemInfo;  

VirtualQuery((LPCVOID)uAddress, &MemInfo, sizeof(MEMORY_BASIC_INFORMATION));

if (VirtualProtect(MemInfo.BaseAddress, MemInfo.RegionSize, PAGE_READWRITE, &dwOLD))
{
	PBYTE pFn = (PBYTE)uAddress;
	printf("fff:%x\n", pFn[0]);
}
继续失败,没有权限访问这块内存。
请问大家都是如何Hook C++成员函数的,能不能给我一个例子,谢谢。

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (1)
雪    币: 43
活跃值: (388)
能力值: ( LV9,RANK:140 )
在线值:
发帖
回帖
粉丝
2
贴完整代码吧
2018-12-4 20:31
0
游客
登录 | 注册 方可回帖
返回
//