阅读:2664回复:18
如何从kernel mode创建user mode的进/线程?
各位前辈,可以从kernel mode直接创建一个运行在user mode线/进程吗?类似Win32 Api的CreateProcess/CreateThread ?
|
|
沙发#
发布于:2005-02-22 09:13
可以试试用ZwCreateProcess/ZwCreateThread看看
NTSYSAPI NTSTATUS NTAPI ZwCreateThread( OUT PHANDLE ThreadHandle, IN ACCESS_MASK DesiredAccess, IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL, IN HANDLE ProcessHandle, OUT PCLIENT_ID ClientId, IN PCONTEXT ThreadContext, IN PINITIAL_TEB InitialTeb, IN BOOLEAN CreateSuspended ); NTSYSAPI NTSTATUS NTAPI ZwCreateProcess( OUT PHANDLE ProcessHandle, IN ACCESS_MASK DesiredAccess, IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL, IN HANDLE ParentProcess, IN BOOLEAN InheritObjectTable, IN HANDLE SectionHandle OPTIONAL, IN HANDLE DebugPort OPTIONAL, IN HANDLE ExceptionPort OPTIONAL ); |
|
|
板凳#
发布于:2005-02-22 09:55
可以试试用ZwCreateProcess/ZwCreateThread看看 很奇怪ZwCreateProcess,ZwCreateProcessEx只不过是NtCreateProcess,NtCreateProcessEx的外包装,这四个函数均在ntoskrnl中,系统服务号分别为2f,30。为什么在内核中要这样无聊的重复,难道是为了接口兼容与稳定? |
|
|
地板#
发布于:2005-02-22 15:52
[quote]可以试试用ZwCreateProcess/ZwCreateThread看看 很奇怪ZwCreateProcess,ZwCreateProcessEx只不过是NtCreateProcess,NtCreateProcessEx的外包装,这四个函数均在ntoskrnl中,系统服务号分别为2f,30。为什么在内核中要这样无聊的重复,难道是为了接口兼容与稳定? [/quote] 你觉得MS无聊吗??? 你用系统里的函数根本是无法创建进程的,看看INSIDE WIN2000里的介绍吧. 至于驱动代用应用代码的方法,可以参考这里 http://www.driverdevelop.com/forum/html_86969.html?1109058718 |
|
|
地下室#
发布于:2005-02-23 03:03
刚才试了一下wowocock 大虾的alertdrv.sys,成功了。
我用osrloader加载的,要等一段时间才能激活对话框。 wowocock能把alertdrv.sys的源代码发一份给我吗?chongwu@msn.com 多谢!送分 20。 |
|
5楼#
发布于:2005-02-23 03:42
在DriverEntry里调用ZwCreateProcess(动态查找NTDLL.DLL)
导致蓝屏,代码是: kd> !analyze -v ACTIVE_EX_WORKER_THREAD_TERMINATION (e9) An executive worker thread is being terminated without having gone through the worker thread rundown code. A stack trace should indicate the cause. Arguments: Arg1: 82fb7da8, The exiting ETHREAD. Arg2: 00000000 Arg3: 00000000 Arg4: 00000000 不知道有没有大虾在kernel里调用ZwCreateProcess成功的? |
|
6楼#
发布于:2005-02-23 09:01
[quote][quote]可以试试用ZwCreateProcess/ZwCreateThread看看 很奇怪ZwCreateProcess,ZwCreateProcessEx只不过是NtCreateProcess,NtCreateProcessEx的外包装,这四个函数均在ntoskrnl中,系统服务号分别为2f,30。为什么在内核中要这样无聊的重复,难道是为了接口兼容与稳定? [/quote] 你觉得MS无聊吗??? 你用系统里的函数根本是无法创建进程的,看看INSIDE WIN2000里的介绍吧. 至于驱动代用应用代码的方法,可以参考这里 http://www.driverdevelop.com/forum/html_86969.html?1109058718 [/quote] 好书有门了,老大不来努力一把,看来老大对INSIDE WIN2000情有独钟,那么他的第四版最新版更好,站在巨人的肩膀上。。。 1000多页,25%新内容。。。 看<a href=\"http://www.driverdevelop.com/forum/html_86918.html?1109119645\" target=\"_blank\">http://www.driverdevelop.com/forum/html_86918.html?1109119645</a> |
|
|
7楼#
发布于:2005-02-24 11:21
http://www.rootkit.com/newsread.php?newsid=259
很详细 |
|
|
8楼#
发布于:2005-02-24 14:00
http://www.rootkit.com/newsread.php?newsid=259 对,我就是在这个例子上修改的.... |
|
|
9楼#
发布于:2005-02-24 14:21
[quote]http://www.rootkit.com/newsread.php?newsid=259 对,我就是在这个例子上修改的.... [/quote] 那个后面的汇编看不太懂啊,wowocock能把你的代码发给我一份吗? |
|
10楼#
发布于:2005-05-12 17:27
谁解决了ring0下创建ring3进程的问题?能否给我发一份,送分20。
我的邮箱: panqz_1980@163.com,谢谢。 |
|
11楼#
发布于:2005-05-13 08:55
谁解决了ring0下创建ring3进程的问题?能否给我发一份,送分20。 已发给你 |
|
|
12楼#
发布于:2005-05-13 12:56
[quote] 谁解决了ring0下创建ring3进程的问题?能否给我发一份,送分20。 已发给你 [/quote] 给我也来份 wywwwl@163.com |
|
|
13楼#
发布于:2005-05-14 22:16
能不能在Ring3进入Ring0后创建内核线程?
|
|
14楼#
发布于:2005-05-15 12:53
给我也来份 boy1h@yahoo.com.cn
|
|
15楼#
发布于:2005-05-15 16:33
能不能在Ring3进入Ring0后创建内核线程? 这是最容易的呀,这里是讨论在Ring0 创建进程的 |
|
|
16楼#
发布于:2005-05-15 19:27
这是最容易的呀,这里是讨论在Ring0 创建进程的
是吗?能不能给个例子?谢谢~ 这样岂不是可以使得进程“不死”? |
|
17楼#
发布于:2005-05-16 09:19
这是最容易的呀,这里是讨论在Ring0 创建进程的 看这个 http://www.driverdevelop.com/forum/html_88451.html?1116206350 但是进程不是\"不死\" |
|
|
18楼#
发布于:2005-06-28 13:46
好吧,俺改改,如何获得一个_ETHREAD呢?望不吝赐教
|
|