您的位置:首页 > 其它

EIP和目标地址的关系

2015-10-02 15:46 288 查看
E9指令就是JMP指令
EIP+E9指令后的偏移量=目标地址
EIP=当前地址(E9指令地址)+加上当前代码长度(字节)(E9指令长度)=下一个执行代码的地址
偏移量=目标地址-(E9指令地址+E9指令长度)=目标地址-E9指令地址-E9指令长度
例:
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);
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: