首页
社区
课程
招聘
[求助]如何hook setTimer 啊?
发表于: 2010-7-10 15:43 6818

[求助]如何hook setTimer 啊?

2010-7-10 15:43
6818
我想学习hook,自己写了个计时器,写入2分后,点按钮就会倒计时。
但是无法hook我写的setTimer函数。是不是得hook  WM_TIMER消息啊?哪位大虾给个代码啊,小生感激不尽!

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 0
支持
分享
最新回复 (7)
雪    币: 195
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
没人理睬啊,是因为太基础了吗。。 自己顶一个!
2010-7-10 18:29
0
雪    币: 243
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
HOOK IAT.或 用 INLINE  HOOK
2010-7-11 04:05
0
雪    币: 195
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
INLINE  HOOK 了,但是点开始按钮后,od里不走inlin后的setTimer里头啊。 为什么啊?
2010-7-11 08:03
0
雪    币: 243
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
尝试IAT。我以前做R3的变速齿轮 亦是如此。
2010-7-11 13:10
0
雪    币: 195
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
膜拜楼上,我知道了变速齿轮这个东西,,有没有可学习的关于变速齿轮的资料啊?
2010-7-12 11:24
0
雪    币: 210
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
我以前用Detours HOOK过这个函数,主要代码如下:
/*
* 函数:SetHook
* 作用:安装/卸载 API HOOK
* 参数:TRUE - 安装,FALSE - 卸载
* 返回:无
*/
void SetHook(BOOL flag)
{
    if (flag)
    {
         DetourRestoreAfterWith();
         DetourTransactionBegin();
         DetourUpdateThread(GetCurrentThread());
  
         // HOOK 函数列表
         DetourAttach(&(PVOID&)Old_SetTimer, New_SetTimer);

         DetourTransactionCommit();
    }
    else
    {
         DetourTransactionBegin();
         DetourUpdateThread(GetCurrentThread());
  
         // 取消 HOOK 函数列表
         DetourDetach(&(PVOID&)Old_SetTimer, New_SetTimer);
  
         DetourTransactionCommit();
    }
}

/*
* 函数:New_SetTimer
* 作用:拦截系统 SetTimer 函数调用
*/
UINT WINAPI New_SetTimer(HWND hWnd,
                                       UINT nIDEvent,
                                       UINT uElapse,
                                       TIMERPROC lpTimerFunc)
{
    // 将时间间隔增加10倍
    uElapse *= 10;

    // 调用原函数返回
    return Old_SetTimer(hWnd,
                                nIDEvent,
                                uElapse,
                                lpTimerFunc);
}

好点的变速齿轮不应该从这个函数,还有更底层的东西
2010-7-12 12:00
0
雪    币: 195
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
按照楼上的办法,我试过,但是 只能 hook窗体消息的settimer 而不走点按钮后设置的settimer事件。为什么啊。。。 忘了说,我这是个MFC的程序。 我inline hook了user32.dll里的  settimer 函数。
2010-7-12 12:15
0
游客
登录 | 注册 方可回帖
返回
//