精易论坛

标题: R3下对任务管理器多进程隐藏、一键隐藏自身进程纯源码 [打印本页]

作者: 雨过天晴    时间: 2022-10-8 01:22
标题: R3下对任务管理器多进程隐藏、一键隐藏自身进程纯源码
本帖最后由 雨过天晴 于 2022-10-8 18:37 编辑

目前隐藏进程的兼容性不是很好,在内核中实现容易蓝屏.
今天突然想到去HOOK任务管理器 实现一个视觉效果.在一般的程序中任务管理器看不到进程也是足够某些开发单方面的需求.
我是一个追求高效的人自然今天运用的是无注入的纯汇编HOOK方式,并且每次打开任务管理器都能重新无叠加的执行.
其下详说原理:
由于任务管理器是64位的程序易语言无法对其操作所以使用了纯汇编的HOOK 以及x32to64的Nt函数操作.
由于C语言编译器的汇编转换效果是十分纯洁的,我先使用C语言X64环境写出了HOOK NtQuerySystemInformation的代码,如图 Q0_5_80MXLN45FK.png
然后再用自带的汇编查看器把这一个函数的字节全部拷贝出来加以易语言使用.
在易语言的源码中进行了远程写入上述函数的汇编字节,在对NtQuerySystemInformation函数JMP到了新申请以及拷贝过我们的构造函数的内存空间,
然后把进程ID的数组复制到了构造函数读取的内存空间.
QQ截图20221008013010.png
自动隐藏方法:.版本 2

.局部变量 id, , , "1"
.局部变量 上次PID, 整数型
.局部变量 进程名, 文本型

id [1] = GetCurrentProcessId ()
进程名 = “Taskmgr.exe”

.判断循环首 (真)
    .如果 (上次PID ≠ 0)
        .如果 (上次PID ≠ 取进程ID1 (进程名))
            上次PID = 0

        .否则
            延时 (100)
        .如果结束

    .否则
        .如果真 (id [1] ≠ 0 且 隐藏进程 (id))
            上次PID = 取进程ID1 (进程名)
        .如果真结束
        延时 (10)
    .如果结束

.判断循环尾 ()
我在汇编里面设置了防重参数,这个隐藏进程的函数可以不卡的无限调用,如此重新打开任务管理器也是有效的

写完后便直接发精易了,如果有BUG可以留言 进程隐藏.e (859.56 KB, 下载次数: 636)