首页
社区
课程
招聘
[求助]线程回调可以防远程线程么?
发表于: 2014-10-20 01:27 6661

[求助]线程回调可以防远程线程么?

2014-10-20 01:27
6661
就是这个回调: PsSetCreateThreadNotifyRoutine

我想在这个回调里面判断是不是远程线程,是的话,就结束这个线程

现在已经能判断是不是远程线程了,但是没法结束这个线程:ZwOpenThread返回0xC000000D, 说是无效参数。。。  但是我用其他的线程ID, 就可以正常打开。唯独打不开这个新创建的“线程”。

PsLookupThreadByThreadId  也不行。。。。。(据说这个在WIN7下可以在线程回调中用,但是我得考虑XP啊)

求解啊,可有其他办法干掉这个线程?

源码:

[注意]看雪招聘,专注安全领域的专业人才平台!

上传的附件:
收藏
免费
支持
分享
最新回复 (14)
雪    币: 371
活跃值: (72)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
2
请勿在WindowsXP下配套使用PsSetCreateThreadNotifyRoutine和ZwOpenThread,因为操作系统有bug.


你没看错,是操作系统的bug~
2014-10-20 07:33
0
雪    币: 371
活跃值: (72)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
3
http://blog.csdn.net/supercow/article/details/3219115
2014-10-20 07:38
0
雪    币: 326
活跃值: (56)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
4
占个座。
VOID
(*PCREATE_THREAD_NOTIFY_ROUTINE) (
    IN HANDLE  ProcessId,
    IN HANDLE  ThreadId,
    IN BOOLEAN  Create
    );
怎么判断远程线程的,你在回调里结束线程恐怕做不到。
2014-10-20 09:58
0
雪    币: 239
活跃值: (133)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
5
线程数如果等于1 是进程刚启动的主线程 不是"远程线程"   没法理解这种非A即B的逻辑。
2014-10-20 10:48
0
雪    币: 478
活跃值: (50)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
如果进程已经启动了,你再创建一个远程线程,线程数回会是2
2014-10-20 12:42
0
雪    币: 478
活跃值: (50)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
如果在回调里面检测到"源进程"和"目的进程"不同,而线程数又是1,说明是进程刚启动
2014-10-20 12:46
0
雪    币: 239
活跃值: (133)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
8
"源进程"和"目的进程" 不同,线程数>1是什么线程
"源进程"和"目的进程" 相同,线程数>1是什么线程
2014-10-20 15:36
0
雪    币: 257
活跃值: (67)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
9
可以防止,终止当前线程就可以了
ZwTerminateThread(NULL, STATUS_SUCCESS) //终止当前线程传递NULL
2014-10-20 16:36
0
雪    币: 478
活跃值: (50)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
这样是把"注入者"的线程给终止了...
2014-10-20 16:46
0
雪    币: 478
活跃值: (50)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
"源进程"和"目的进程" 不同,线程数>1,是CreateRemoteThread产生的线程 (一般认为是"注入")
"源进程"和"目的进程" 相同,线程数>1,是线程自身CreateThread(一般认为是正常)

"源进程"和"目的进程" 不同,线程数=1,是进程刚启动时候的"主线程"

至少XP下测试是这样
2014-10-20 16:48
0
雪    币: 239
活跃值: (133)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
12
那么你的远程线程的定义就是 "源进程"和"目的进程" 不同
2014-10-20 17:10
0
雪    币: 257
活跃值: (67)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
13
找到线程入口patch,ret 8
2014-10-20 17:12
0
雪    币: 478
活跃值: (50)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
差不多是这样,同时得排除掉进程刚启动时候的主线程.
2014-10-20 17:22
0
雪    币: 220
活跃值: (117)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
15
把线程address的开头改成ret即可,这样线程就自己退出了
2014-10-21 09:59
0
游客
登录 | 注册 方可回帖
返回

账号登录
验证码登录

忘记密码?
没有账号?立即免费注册