首页
社区
课程
招聘
[求助]如何获取System进程下所有线程的名称??
发表于: 2008-12-18 20:21 6044

[求助]如何获取System进程下所有线程的名称??

2008-12-18 20:21
6044
ETHREAD,KTHREAD,TEB结构里都没有说明线程名称的字段啊,只能得到线程地址。狙剑是怎么获得线程名称的??

[课程]Android-CTF解题方法汇总!

收藏
免费 0
支持
分享
最新回复 (3)
雪    币: 332
活跃值: (30)
能力值: ( LV12,RANK:460 )
在线值:
发帖
回帖
粉丝
2
自己顶
OpenProcess(Process ID)--->Get Process Handle
;得到SYSTEM进程句柄
CreateToolhelp32Snapshot,Thread32First,Thread32Next-->get all threads list
;得到SYSTEM进程的全部线程ID
ZwOpenThread(Thread ID)-->Thread Handle
;根据线程ID得到所有线程的句柄
ZwQueryInformationThread(Thread Handle)-->Win32 Start Address
;得到每个进程的Start Address
ZwQuerySystemInformation
;得到所有内核模块列表以及他们的Base Address
;将所有线程的Start Address和每个内核模块的Base Address比较
;得到各个线程所属于的内核模块

;找到这些模块中某一个或多个(一般至少2个)属于xxxxxx.sys且该文件无法打开的
;即可知道该sys为病毒驱动
;或者可以从Base address开始的内存搜索特征码,但一般不能打开的就知道是病毒了

;接下来
ZwSuspendThread(Thread Handle)
;将该线程暂停,这样是为了停止其对服务项的保护
2008-12-18 20:36
0
雪    币: 364
活跃值: (152)
能力值: ( LV12,RANK:450 )
在线值:
发帖
回帖
粉丝
3
说的挺好的,呵呵。不过OpenProcess、ZwOpenThread容易遭到hook就是了。
2008-12-18 22:09
0
雪    币: 185
活跃值: (724)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
学习了 多谢大哥指点
2008-12-19 01:31
0
游客
登录 | 注册 方可回帖
返回
//