-
-
[讨论]如何稳定的使用NtCreateThread
-
发表于: 2009-3-29 14:42 4998
-
分配好堆栈空间,填充Context、堆栈结构,再调用NtCreateThread 就可以开新线程了,
但这样的结果是很不稳定,线程中任何异常均会导致进程CPU70%+Csrss进程CPU30%,CPU被耗尽,后来发现是Context结构的问题,并不是普通的context结构!
按照调试后的结果进行修改,标准的异常比如INT 3、非法访问内存等已经不会导致CPU100%了,但一些其他的异常,比如修改ESP指向错误的内存这种异常仍然会导致CPU100%(其中Csrss占30%),但使用API函数 CreateThread 任何异常都不会导致CPU100%,进程直接关闭而已。
难道是还要调用CsrClientCallServer ?
郁闷的是按照调试得到的数据,调用CsrClientCallServer始终失败,返回 C0000024
补充下,是R3测试的
求高手支招~~
但这样的结果是很不稳定,线程中任何异常均会导致进程CPU70%+Csrss进程CPU30%,CPU被耗尽,后来发现是Context结构的问题,并不是普通的context结构!
按照调试后的结果进行修改,标准的异常比如INT 3、非法访问内存等已经不会导致CPU100%了,但一些其他的异常,比如修改ESP指向错误的内存这种异常仍然会导致CPU100%(其中Csrss占30%),但使用API函数 CreateThread 任何异常都不会导致CPU100%,进程直接关闭而已。
难道是还要调用CsrClientCallServer ?
郁闷的是按照调试得到的数据,调用CsrClientCallServer始终失败,返回 C0000024
补充下,是R3测试的
求高手支招~~
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课
赞赏
他的文章
看原图
赞赏
雪币:
留言: