看流星社区

 找回密码
 注册账号
查看: 3835|回复: 1

教你QQ华夏inlinehook保护恢复

[复制链接]

该用户从未签到

发表于 2013-7-10 14:26:04 | 显示全部楼层 |阅读模式
游戏inlinehook了三个地方   可以用Xuetr 查看到
DbgUiRemoteBreakin
LoadLibraryExW
VirtualProtectEx
第二个直接恢复
第一个恢复后游戏退出,跟踪发现检游戏跳到自身模块后没检测可在游戏jmp直接hook到注入dll模块重写前5字节后再跳回原模块

static My_RecoveryHook_NtOpenProcess()
{ BYTE    JmpAddress[5] = {0xE9,0,0,0,0};
p_TpHookAddress = (ULONG)0x7c97211c+5+*(ULONG*)0x7c97211d;
ULONG p_MyHookAddress=p_TpHookAddress+0x5;
     //?得?用者的EPROCESS

  //将?用者的?程名保存到str1中
     
    DWORD dwOldProtect,nSize;
    HANDLE    hObjProcess=0 ;   
*(ULONG *)(JmpAddress+1)=(ULONG)Nakd_NtOpenProcess - p_MyHookAddress;
hObjProcess = OpenProcess(PROCESS_ALL_ACCESS, FALSE, GetCurrentProcessId());
    VirtualProtect ((void *)(p_TpHookAddress) , 5, 64, &dwOldProtect);
WriteProcessMemory(hObjProcess, (void *)(p_TpHookAddress) , JmpAddress, 5, &nSize);
}

static Nakd_NtOpenProcess()
{

__asm
    {
      push 0x8//恢复原来的5个字
      push 0x7C972168
     
      mov    eax,0x7c972123//跳转地址
      jmp    eax
    }
}

该用户从未签到

发表于 2014-3-31 00:32:13 | 显示全部楼层
vgry45y热天我
点击按钮快速添加回复内容: 支持 高兴 激动 给力 加油 苦寻 生气 回帖 路过 感恩
您需要登录后才可以回帖 登录 | 注册账号

本版积分规则

小黑屋|手机版|Archiver|看流星社区 |网站地图

GMT+8, 2024-4-16 23:32

Powered by Kanliuxing X3.4

© 2010-2019 kanliuxing.com

快速回复 返回顶部 返回列表