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

你没看错,是操作系统的bug~
|
能力值:
( LV5,RANK:60 )
|
-
-
3 楼
39cK9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8X3u0D9L8$3N6Q4x3X3g2U0M7$3c8F1i4K6u0W2L8X3g2@1i4K6u0r3M7%4g2H3k6i4u0U0L8%4N6Q4x3V1k6S2M7Y4c8A6j5$3I4W2i4K6u0r3k6r3g2@1j5h3W2D9M7#2)9J5c8U0x3J5x3e0V1I4x3e0f1`.
|
能力值:
( 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即可,这样线程就自己退出了
|
|
|