能力值:
( LV5,RANK:60 )
|
-
-
2 楼
请勿在WindowsXP下配套使用PsSetCreateThreadNotifyRoutine和ZwOpenThread,因为操作系统有bug.

你没看错,是操作系统的bug~
|
能力值:
( LV5,RANK:60 )
|
-
-
3 楼
http://blog.csdn.net/supercow/article/details/3219115
|
能力值:
( LV3,RANK:30 )
|
-
-
4 楼
占个座。
VOID
(*PCREATE_THREAD_NOTIFY_ROUTINE) (
IN HANDLE ProcessId,
IN HANDLE ThreadId,
IN BOOLEAN Create
);
怎么判断远程线程的,你在回调里结束线程恐怕做不到。
|
能力值:
( LV5,RANK:60 )
|
-
-
5 楼
线程数如果等于1 是进程刚启动的主线程 不是"远程线程" 没法理解这种非A即B的逻辑。
|
能力值:
( LV2,RANK:10 )
|
-
-
6 楼
如果进程已经启动了,你再创建一个远程线程,线程数回会是2
|
能力值:
( LV2,RANK:10 )
|
-
-
7 楼
如果在回调里面检测到"源进程"和"目的进程"不同,而线程数又是1,说明是进程刚启动
|
能力值:
( LV5,RANK:60 )
|
-
-
8 楼
"源进程"和"目的进程" 不同,线程数>1是什么线程
"源进程"和"目的进程" 相同,线程数>1是什么线程
|
能力值:
( LV4,RANK:50 )
|
-
-
9 楼
可以防止,终止当前线程就可以了
ZwTerminateThread(NULL, STATUS_SUCCESS) //终止当前线程传递NULL
|
能力值:
( LV2,RANK:10 )
|
-
-
10 楼
这样是把"注入者"的线程给终止了...
|
能力值:
( LV2,RANK:10 )
|
-
-
11 楼
"源进程"和"目的进程" 不同,线程数>1,是CreateRemoteThread产生的线程 (一般认为是"注入")
"源进程"和"目的进程" 相同,线程数>1,是线程自身CreateThread(一般认为是正常)
"源进程"和"目的进程" 不同,线程数=1,是进程刚启动时候的"主线程"
至少XP下测试是这样
|
能力值:
( LV5,RANK:60 )
|
-
-
12 楼
那么你的远程线程的定义就是 "源进程"和"目的进程" 不同
|
能力值:
( LV4,RANK:50 )
|
-
-
13 楼
找到线程入口patch,ret 8
|
能力值:
( LV2,RANK:10 )
|
-
-
14 楼
差不多是这样,同时得排除掉进程刚启动时候的主线程.
|
能力值:
( LV4,RANK:50 )
|
-
-
15 楼
把线程address的开头改成ret即可,这样线程就自己退出了
|
|
|