标题:使用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



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-488976-1-1.html




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

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