本论坛为只读模式,仅供查阅,不能注册新用户,不能发帖/回帖,有问题可发邮件 xikug.xp (^) gmail.com
查看: 6507|回复: 16

不HOOK任何函数,让任务管理器、XueTr、360进程管理器无法结束保护进程 [复制链接]

Rank: 2

发表于 2011-5-29 15:16:30 |显示全部楼层
【提示】能加驱动进内核,就没必要弄EXE了,所以我个人觉得没啥实际用途,仅供观看

Windows会给每一个进程建立一个EPROCESS结构,给每一个线程建立ETHREAD结构,EPROCESS结构第一个成员是KPROCESS结构,ETHREAD结构第一个成员是KTHREAD结构。每个进程的线程的ETHREAD结构都会按下图所示链接起来:
无标题.png

里面有两条链表。通过遍历这两条链表,可以得到一个进程所有的线程。Windows在执行线程调度时,不会去管这两条链表。只有当新建一个线程时,会加入到链表中,一个线程退出时,会从链表中移除。

如果在EPROCESS中将这两条链表置空,会发生什么事呢?



以下是验证步骤:

【注意】请先关闭360安全卫士,以免加载驱动时提示。驱动代码中用了一堆的硬编码,所以请确保操作系统为Windows XP SP3 中文版,否则可能蓝屏。

1.编译以下代码为haha.exe
/*
* 【作者:KiDebug】
* 【空间:http://hi.baidu.com/KiDebug/】
*/
#include <Windows.h>

int APIENTRY wWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPWSTR lpCmdLine, int nCmdShow)
{
        while (1)
        {
                MessageBoxA(NULL,"关不了,气死你!~","哈哈!~",MB_OK);
        }
        return 0;
}

双击打开haha.exe,它会不断地调用MessageBox弹出对话框,此时打开任务管理器,可以结束haha.exe

2.确保haha.exe可以弹出对话框,然后再编译以下代码为ProtectHaha.sys,利用InstDrv.exe加载ProtectHaha.sys,依次点击安装、启动、停止、卸载
/*
* 【作者:KiDebug】
* 【空间:http://hi.baidu.com/KiDebug/】
*/
#include <ntddk.h>

void DriverUnload(IN PDRIVER_OBJECT DriverObject)
{
}

NTSTATUS DriverEntry(IN PDRIVER_OBJECT DriverObject, IN PUNICODE_STRING  RegistryPath)
{
        __asm
        {
                mov ebx,PsInitialSystemProcess
                mov ebx,[ebx]
                lea ebx,[ebx+88h]                                //+0x088 ActiveProcessLinks : _LIST_ENTRY
L1:                mov ebx,[ebx]                                        //遍历ActiveProcessLinks,找haha.exe的EPROCESS
                cmp dword ptr [ebx+0ECh],61686168h
                jnz L1
                cmp dword ptr [ebx+0F0h],6578652eh                //68 61 68 61 2e 65 78 65 haha.exe
                jnz L1

                //88h、50h、190h、194h都是硬编码,适用于Windows XP SP3
                lea ebx,[ebx-88h]                                //EBX为haha.exe的EPROCESS
                lea eax,[ebx+50h]                                //nt!_KPROCESS
                mov [ebx+50h],eax                                //+0x050 ThreadListHead : _LIST_ENTRY
                mov [ebx+54h],eax                                //置为空链
                lea eax,[ebx+190h]                                //nt!_EPROCESS
                mov [ebx+190h],eax                                //+0x190 ThreadListHead : _LIST_ENTRY
                mov [ebx+194h],eax                                //置为空链
        }

        DriverObject->DriverUnload = DriverUnload;
        return STATUS_SUCCESS;
}
3.打开任务管理器,选中haha.exe,点击“结束进程”,haha.exe无法结束,仍然可以不停地弹对话框;
4.打开XueTr,在“进程”窗口中选中haha.exe按右键,点击“结束进程”,haha.exe无法结束,仍然可以不停地弹对话框;刷新,再次右键,点击“强制结束进程”,haha.exe无法结束,仍然可以不停地弹对话框;
5.打开360安全卫士(8.0.0.2001),启动“功能大全”里面的“进程管理器”,选中haha.exe,点击“关闭程序”,haha.exe无法结束,仍然可以不停地弹对话框;

【注意】
1.有可能点击对话框右上角的关闭按钮后,haha.exe会假死。这时先随便点下桌面或其他什么地方,再点对话框的“确定”按钮,就又活过来了。
2.如果要应用到其他进程上,请确保驱动启动后这个进程不会新建线程,否则“强制结束进程”可以结束掉新建线程,可能会造成进程假死。
3.haha.exe中只有一个线程,对于其他进程,在EPROCESS中将两条链表置空后需要将链表中第一个线程和最后一个线程的ThreadListEntry链接起来。
4.对于其他进程,置空链表时需要考虑同步问题。

如何结束haha.exe呢?
在XueTr“进程”窗口中选中haha.exe按右键,点击“查看进程线程”,把看到的线程全部结束即可。
WS点可以把线程栈空间设小点,然后创建成百上千个线程……

Rank: 1

发表于 2011-5-29 18:02:39 |显示全部楼层
貌似抢着沙发了?顶!

Rank: 1

发表于 2011-5-29 19:37:30 |显示全部楼层
KiDebug实在太Yin荡了

Rank: 2

发表于 2011-5-29 20:04:39 |显示全部楼层
[quote=\"lee0ne\"]KiDebug实在太Yin荡了[/quote]

    

Rank: 3Rank: 3

发表于 2011-5-30 13:27:17 |显示全部楼层
来学习YD的方法和代码。。。

Rank: 1

发表于 2011-5-30 16:06:05 |显示全部楼层
修改前起码也升下IRQL嘛。。。
另外,这样不会有什么副作用吗?

Rank: 2

发表于 2011-5-30 16:39:53 |显示全部楼层
[quote=\"majinxin2003\"]修改前起码也升下IRQL嘛。。。
另外,这样不会有什么副作用吗?[/quote]

【注意】
1.有可能点击对话框右上角的关闭按钮后,haha.exe会假死。这时先随便点下桌面或其他什么地方,再点对话框的“确定”按钮,就又活过来了。
2.如果要应用到其他进程上,请确保驱动启动后这个进程不会新建线程,否则“强制结束进程”可以结束掉新建线程,可能会造成进程假死。
3.haha.exe中只有一个线程,对于其他进程,在EPROCESS中将两条链表置空后需要将链表中第一个线程和最后一个线程的ThreadListEntry链接起来。
4.对于其他进程,置空链表时需要考虑同步问题。

Rank: 1

发表于 2011-5-30 18:41:03 |显示全部楼层
学习了,呵呵,有创意。

Rank: 1

发表于 2011-6-3 02:07:24 |显示全部楼层
挺有意思

Rank: 1

发表于 2011-6-3 11:11:05 |显示全部楼层
<FONT style=\"TEXT-INDENT: 2em; FONT-FAMILY: 楷体_GB2312; FONT-SIZE: 250px\" color=#ff0000>啊</FONT>

Rank: 1

发表于 2011-11-6 21:54:17 |显示全部楼层
看贴顶一下是美德

学习!

Rank: 1

发表于 2011-11-7 13:13:17 |显示全部楼层
还是KDOM的戏法

Rank: 1

发表于 2011-11-8 00:39:34 |显示全部楼层

Rank: 1

发表于 2012-1-6 15:12:38 |显示全部楼层
学习了,这个东东不是有地方可以用的

Rank: 1

发表于 2012-1-8 01:39:28 |显示全部楼层
驱动?soga、、、

Rank: 1

发表于 2012-1-23 21:38:54 |显示全部楼层
需要加载驱动 不好

Rank: 1

发表于 2012-5-9 00:34:58 |显示全部楼层
果断是抄袭的貌似,在vbgood里面看过。
您需要登录后才可以回帖 登录 | 立即加入

Archiver|手机版|第8个男人 - 论坛为只读模式,仅供查阅

GMT+8, 2019-7-17 07:29 , Processed in 0.035424 second(s), 11 queries .

Design by pvo.cn

© 2011 Pvo Inc.

回顶部