Hook地址:0x00F363D0 //显示物品界面函数
InstallHookStub((PVOID)0x00F363D0, My_ShowEuipmentInfo); //对此函数进行Hook
typedef DWORD(WINAPI __pfnShowEuipmentInfo)(DWORD dwObjAddress); //显示物品界面函数定义
DWORD WINAPI My_ShowEuipmentInfo(DWORD RetAddr, __pfnShowEuipmentInfo pfnOriginal, DWORD dwObjAddress)
{
DWORD dwResult = pfnOriginal(dwObjAddress);
DWORD dwBoxAddress = *(DWORD *)(dwObjAddress + 0x44); //取出显示界面Box地址
if (!IsBadReadPtr((PVOID)dwBoxAddress, 4)){ //判断Box地址是否合法
DWORD dwShow = *(DWORD *)(dwBoxAddress + 0x2C);
if (dwShow == 0){
DWORD dwItemAddress = *(DWORD*)0x01AE45B4; //获取当前鼠标指向的物品的基地址
if (!IsBadReadPtr((PVOID)dwItemAddress, 4)){
int x = *(DWORD *)(dwObjAddress + 0x14);
int y = *(DWORD *)(dwObjAddress + 0x18);
int width = *(DWORD *)(dwObjAddress + 0x38);
int boxx = x + width - 35;
int boxy = y + 3;
_asm
{
mov ecx, dwItemAddress;
mov eax, dword ptr[ecx];
mov edx, dword ptr[eax + 0xC];
push 1;
push 1;
push 0;
push boxy;
push boxx;
call edx;
}
}
}
}
return dwResult;
}
声明:本站文章素材多源于网络,版权归原作者。 声明中文字加粗部分,仅为突出重点信息展示,无其他特殊含义。任何个人或组织,在未经原版权方及本站许可时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。
重要限制:本站素材仅供单机学习交流,请在24小时内删除