-
-
[求助]一段外挂代码,求赐教!!!
-
发表于:
2015-10-2 13:31
5353
-
大家好,我是一个初学者,我遇到一个问题,急切得到大家的帮助!问题如下:
我最近在学习外挂,遇到一段代码,将挂的人一笔带过,可能是我知识不够,带入如下:
void HookAllAttack()
{
LPVOID adr = (LPVOID)0x0063011F;
DWORD offset = (DWORD)IsAttack - (DWORD)adr - 5;
BYTE code[5];
code[0]=0xe9;//jmp
*PDWORD(code + 1) = offset;
DWORD oldprotect;
if(VirtualProtect(adr,5,PAGE_EXECUTE_READWRITE,&oldprotect))
{
memcpy(adr,code,5);
VirtualProtect(adr,5,oldprotect,&oldprotect);
}
}
我不懂的是这一句DWORD offset = (DWORD)IsAttack - (DWORD)adr - 5; IsAttack 这个上程序中定义的一个函数,这个懂,adr这个是游戏中一个函数的地址,5是游戏中要修改的一段代码的字节数。
问题: (DWORD)IsAttack - (DWORD)adr这个两个地址相减得到的不是一个偏移量吗,这两个减了之后还减去5,为什么要减去这个字节数,这3个数相减得到的究竟是什么?我都搞不清
小弟愚钝,愿各位大神不吝赐教!在此先谢谢各位!
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课