16,551
社区成员
发帖
与我相关
我的任务
分享
DWORD dwProtect = 0;
VirtualProtect(GetRoutineAddress(ReThread), 32, PAGE_EXECUTE_READ | PAGE_NOCACHE, &dwProtect);
memcpy(szOpCodes+30, (LPBYTE)GetRoutineAddress(ReThread)+30, 1);
szOpCodes[1] = *((LPBYTE)GetRoutineAddress(ReThread)+30);
LPBYTE ppp = (LPBYTE)GetRoutineAddress(ReThread);
ppp = ppp + 30;
szOpCodes[2] = *ppp;
char c = (char)*ppp;
BYTE byte = (BYTE)*ppp;
BYTE byte1 = 0x8b450883;
int nnn = *ppp;
int *pp = (int*)ppp;
int nn = *pp;
VirtualProtect(GetRoutineAddress(ReThread), 32, dwProtect, &dwProtect);


结帖,问题也不用验证了!中断汇编码int 3,opcode正好为0xcc。虽然这个函数在运行的这个进程内不用执行,但我可能还是加了断点。
看来这个地址的值确实被改成了0xcc,但VS调试显示时还是按原来的显示,所以按地址取值时,取出来的是0xcc,出不是原来的值。