首页
社区
课程
招聘
[求助]高手分析一下TaskInfo如何取进程列表
发表于: 2009-8-6 15:42 5222

[求助]高手分析一下TaskInfo如何取进程列表

2009-8-6 15:42
5222
求高手,分析一下,他是怎么获取进程列表的,调用的哪个函数,或访问的哪个内存地址(有结构更好)

Taskinfo.exe 版本6.2 不用多说,上十年的老软件了,到处可下

此工具,与TaskMgr.exe不同之处,在于没用NtQuerySystemInformation取进程列表

[招生]系统0day安全班,企业级设备固件漏洞挖掘,Linux平台漏洞挖掘!

收藏
免费 0
支持
分享
最新回复 (7)
雪    币: 722
活跃值: (123)
能力值: ( LV12,RANK:300 )
在线值:
发帖
回帖
粉丝
2
驱动都有了,当然想干啥就干啥,想怎么获取就怎么获取……
下载了TaskInfo v62.2.2118绿色版,一看有个驱动Tsknf602.sys,显然实现是在驱动里干的,于是索性直接看驱动。
结果发现没啥了不起。

DriverEntry中通过搜索ntoskrnl.exe或ntkrnlpa.exe(模块基址由ZwQuerySystemInformation(SystemModuleInformation)获取)的导出表,得到以下函数地址:
MmHighestUserAddress
NtQueryInformationProcess
NtQuerySystemInformation
NtQueryInformationThread
KeStackAttachProcess
KeUnstackDetachProcess
某些函数Nt*的获取不到就用Zw*的地址代替之。
尝试获取ZwReadVirtualMemory,获取不到就用自己写的一个函数(通过KeStackAttachProcess实现)代替之。
奇怪的是获取完NtQuerySystemInformation地址之后,又用ZwQuerySystemInformation地址把它给代替掉了,反而过不了SSDT HOOK,显然是BUG。

之后IRP_MJ_DEVICE_CONTROL的派遣函数,跟到底就是调用以上这些函数来实现获取相应信息或读取内核内存内容给Ring3程序等等,跟Ring3下的实现其实没大区别,就只是在驱动中做可以绕过SSDT HOOK罢了。
其中还有使用(ZwDuplicateObject->)ObReferenceObjectByHandle->(if (is FileObject))->ObQueryNameString来获取进程中文件对象句柄的文件名。

基本上就仅此而已,也没看见什么牛X的遍历进程方法。基本上可以判断只是可以绕过SSDT HOOK,跟一般ARK工具获取进程列表的方法根本没法比,显然算不上ARK工具。
2009-8-6 17:27
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
谢谢 聪哥的帮助

如果taskinfo通过驱动去取的进程列表,

那么,他怎么取得驱动里读出的进程列表呢,因为我想在ring3 下改他取得的列表,我已经可以hook掉taskinfo在ring3下的API了
2009-8-7 14:39
0
雪    币: 636
活跃值: (174)
能力值: ( LV9,RANK:260 )
在线值:
发帖
回帖
粉丝
4
都说了是IRP_MJ_DEVICE_CONTROL
可以Hook住Ring3下的DeviceIoControl分析一下
2009-8-7 15:06
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
是不是分析DeviceIoControl的 OutBuffer 数据?
2009-8-7 17:12
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
我想改取得的进程列表数据,
我用DeviceIOView看,他返回的nOutBuffer,一直就为00 00 00 00,
InBuffer,固定长度100,估计是包含了结构指针,

又不知道怎么样用ollyice分析他的结构

有了结构,我就可以隐藏taskinfo的指定进程了
2009-8-10 11:35
0
雪    币: 722
活跃值: (123)
能力值: ( LV12,RANK:300 )
在线值:
发帖
回帖
粉丝
7
不一定要在OutputBuffer返回结果,InputBuffer里面可以指定写入的用户态缓冲区指针。
另外我觉得通过Ring3 HOOK来针对性地anti这一个软件没有啥意思……
2009-8-10 16:31
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
聪哥, 能帮我看一下他的ring0是写到InputBuffer的哪个指针位置吗?
2009-8-11 10:49
0
游客
登录 | 注册 方可回帖
返回
//