首页
社区
课程
招聘
[原创]枚举进程定时器
发表于: 2013-1-17 16:58 20009

[原创]枚举进程定时器

2013-1-17 16:58
20009
这个进程定时器 Xuetr Pt 都有这个功能,这个功能也很实用,这个大家都知道,
群里前些日子有人说起这进程定时器怎么枚举,发出来给大家玩玩
以XP分析为主,不怎么会说话,我就以图片为主。
首先要分析 user32.dll 的 SetTimer 函数,至于这个函数作用大家都知道,
用 IDA 打开 use32.dll 找到 SetTimer 

调用的是NtUserSetTimer,继续跟

继续跟call    __SetTimer@16   ; _SetTimer(x,x,x,x)
进入__SetTimer@16

继续跟call    _InternalSetTimer@20 ; InternalSetTimer(x,x,x,x,x)
进入InternalSetTimer

call    _FindTimer@16   ; FindTimer(x,x,x,x)
关键函数FindTimer,进入FindTimer看看

mov     eax, _gptmrFirst
通过2K代码,知道_gptmrFirst 就是进程定时器的一个表里面存放着所有进程定时器信息
2K代码我就不贴了,相信大家都有
// 进程定时器结构
typedef struct _HEAD {
  HANDLE h;
  DWORD cLockObj;
} HEAD, *PHEAD;

typedef struct tagTIMER {
  HEAD head;
  // 下个结构
  struct tagTIMER *ptmrNext;
  struct tagTIMER *ptmrPrev;
  PULONG pti;  
  // 窗口句柄
  PULONG spwnd;
  // 定时器ID
  UINT_PTR nID;
  // 倒计时
  INT cmsCountdown;
  // 间隔时间
  INT cmsRate; 
  UINT flags;
  // 函数入口
  ULONG pfn; 
  PULONG ptiOptCreator;
} TIMER, *PTIMER;
这就是定时器的结构
找到了关键的表,那么枚举就容易了,我只贴枚举的代码,全贴太长了,没必要。

这里以XP分析为主,2K3的略有不同,但是大体相同主要是定位问题,WIN7 没研究出来,
WIN7的那个表与结构完全与XP 2K3不同,希望研究出来的朋友能分享下。
效果图:


[课程]Linux pwn 探索篇!

上传的附件:
收藏
免费 6
支持
分享
最新回复 (16)
雪    币: 415
活跃值: (34)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
2
大师布道,排队听课。
2013-1-17 17:06
0
雪    币: 773
活跃值: (442)
能力值: ( LV9,RANK:200 )
在线值:
发帖
回帖
粉丝
3
无敌,我菜鸟一枚。。。。
2013-1-17 17:18
0
雪    币: 2177
活跃值: (2045)
能力值: (RANK:400 )
在线值:
发帖
回帖
粉丝
4


确实,windows从win2k8开始,这个结构差别就大了。
俺枚举的时候硬编码了偏移,哈哈。
上传的附件:
2013-1-17 17:57
0
雪    币: 284
活跃值: (34)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
mark.msrlk.
2013-1-17 18:20
0
雪    币: 88
活跃值: (47)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
6
NtosTools 这个工具( ^_^ )不错 楼主自己写的吧
2013-1-17 19:30
0
雪    币: 77
活跃值: (70)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
万一火了也是个前排哈哈
mark下 等有空慢品
2013-1-17 23:39
0
雪    币: 564
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
IDA不熟, 第二张图怎么跟进去的?
2013-1-18 02:41
0
雪    币: 225
活跃值: (173)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
关键是 gptmrFirst  地址怎么获取啊
2013-1-18 09:20
0
雪    币: 93908
活跃值: (200199)
能力值: (RANK:10 )
在线值:
发帖
回帖
粉丝
10
Thanks for share.
2013-1-18 09:36
0
雪    币: 2190
活跃值: (981)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
ntostools这是什么神器?
2013-1-18 13:47
0
雪    币: 773
活跃值: (442)
能力值: ( LV9,RANK:200 )
在线值:
发帖
回帖
粉丝
12
忘记说了,第二张以后的图都是 win32k.sys
2013-1-18 19:58
0
雪    币: 564
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
怪不得,呵呵 前些天分析好久找不到, 现在找到了。感谢LZ指点、进军kernal
2013-1-21 11:55
0
雪    币: 29
活跃值: (26)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
好文章,学习了。
2013-3-19 08:40
0
雪    币: 170
活跃值: (187)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
学习了!!!感谢
2013-7-26 21:39
0
雪    币: 14
活跃值: (83)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
支持!!!
2013-10-2 10:01
0
雪    币: 144
活跃值: (38)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
mark,也许将来用得着呢
2014-8-29 22:16
0
游客
登录 | 注册 方可回帖
返回
//