青梅绿茶 发表于 2024-10-4 12:47

关于进程隐藏的一个BUG

本帖最后由 青梅绿茶 于 2024-10-4 12:49 编辑

idea来源于 吧内大神给的思路
在vm上试了一试,确实可以,还写成了驱动当小工具用不放具体细节了 原理就是进程监控,然后改pid=4

这里 改notepad pid 确实成功隐藏

但是之后有个bug ,进程关了再开就会有eprocess 残留 windbg查看如下

猜测 因为pid为4 系统不会回收它的资源,但是里面handle object 都为0 只剩一个eprocess
我用了 MmCleanProcessAddressSpace Pspterminateprocess 这些清理函数都没用
后来逆了下 MmCleanProcessAddressSpace和pspterminateprocess 这些函数的细节,都是进入目标进程按部就班关闭各个线程
因为只剩eprocess 一个空壳里面没有thread 所以没法清理

nudt312 发表于 2024-11-13 08:51

本帖最后由 nudt312 于 2024-11-13 08:53 编辑

进程销毁的时候,是先摘链再销毁。改回id是摘链后的操作会id冲突,进程链中两个4号id,其中system4号id不能摘链,可能先遍历到这个,处理出错就返回了。

ExpZer0 发表于 2024-11-12 19:53

貌似新版的记事本有一些bug,之前学习WinAPI的时候,发现它经常会关不干净(关了一个,后台还有),其他程序没发现这个情况。不知是否有这方面原因?

LXGZJ237 发表于 2024-10-5 13:29

那关闭程序时把pid再改回去呢?

52YR 发表于 2024-10-5 13:44

感谢分享

青梅绿茶 发表于 2024-10-5 14:05

LXGZJ237 发表于 2024-10-5 13:29
那关闭程序时把pid再改回去呢?

改了,还是一样,有残留
我通过一个链表保存的process原始信息,记录了原本的pid ,监控进程退出时会改回原来的pid

wkdk114514 发表于 2024-10-5 17:21

LXGZJ237 发表于 2024-10-5 13:29
那关闭程序时把pid再改回去呢?

没看懂,但却是可以学习的

wkdk114514 发表于 2024-10-5 17:26

可以学习的,希望能详细讲解后面那部分

猫携 发表于 2024-10-5 21:13

win7任务管理器好像无限出现进程,这个方法之前用过

小草草 发表于 2024-10-6 08:37

感谢楼主的分享!{:1_921:}

Dicks 发表于 2024-10-6 10:28

学习一下

zx360717966 发表于 2024-10-6 12:17

学习了,感谢楼主分享!
页: [1] 2 3
查看完整版本: 关于进程隐藏的一个BUG