| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2106 人关注过本帖
标题:使用detours的问题
只看楼主 加入收藏
Vincent800
Rank: 2
等 级:论坛游民
帖 子:7
专家分:20
注 册:2015-5-17
结帖率:100%
收藏
 问题点数:0 回复次数:1 
使用detours的问题
大家是否有使用微软的detours库,一般的hook是方便的,但至少有2种情况我觉得有的问题的,或者是我的使用方法不对
情况1:
先看图

图片附件: 游客没有浏览图片的权限,请 登录注册


代码:

ULONG g_Test1 = 0x00421EF4;
__declspec(naked) VOID NewTest1()
{
    __asm {
        mov eax, 1
        jmp g_Test1
    }
}

    DetourTransactionBegin();
    DetourUpdateThread(GetCurrentThread());
    DetourAttach ((PVOID*)&g_Test1, NewTest1);
    DetourTransactionCommit();

图片附件: 游客没有浏览图片的权限,请 登录注册

图片附件: 游客没有浏览图片的权限,请 登录注册

图片附件: 游客没有浏览图片的权限,请 登录注册


结果是改不了的,detours执行源代码时给恢复了,解决办法是改用普通的hook方法

情况2:iat hook
call dword ptr ds:[50B9B8]这种格式的,用detours hook会崩溃

搜索更多相关主题的帖子: hook 方法 恢复 办法 iat 
2018-08-02 14:39
zzz3265
Rank: 2
等 级:论坛游民
威 望:1
帖 子:14
专家分:10
注 册:2022-2-6
收藏
得分:0 
1. 是用法不对
DetourAttach ((PVOID*)&g_Test1, NewTest1);
函数这样写
NewTest1(xx)
{
    xxxx
    g_Test1(xx) ;
    xxx
}

2.  iat 应该hook对应的函数, 而不是call 的位置
2022-02-06 14:11
快速回复:使用detours的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.029634 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved