如何保护一个进程?要类似卡巴或者瑞星的,当结束他们时会弹出拒绝访问对话框,请问这是如何做到的其他的进程守护如:两个程序相互监视、隐藏进程、HOOK openprocess等等都知道了,现在只想知道如何能实现类似卡巴及瑞星那样的进程保护。有人说提权,不知道该怎么弄。希望朋友们能帮帮忙。
解决方案 »
- 如何用ShellExecuteEx打开程序并且获得句柄
- 速度极慢,请斧正
- 如何获得数据库BDE的系统信息
- 请教各位老大一个treeview的问题(和数据库相关,有点麻烦,有答案就揭贴)谢谢!
- 关于架构高性能三层模式的讨论(参与者高分相送)
- 简单问题:如何选定一个listview里的指定项(让它变蓝)
- 请问如何保留一个real型小数点后的位数
- 碰到个关于sql语句的难题
- 100分,^_^ 存储过程中的sql语句的变量传送
- 天!image1.Picture.LoadFromFile('c:\1.jpg')为什么不成?
- delphi 只要url 怎么办
- 大虾们一定要帮帮小弟啊~~~~ 一个DBgrid的常规问题
然后弄个进程实时监视另一个进程的存在,用Timer实现,找不到进程的话就重启进程
那么复杂的东西
那估计要涉及到API HOOK以及Ring0的知识
简单点说,就是把关闭自身的API例如Terminate Process拦截,所以无法关闭,然后拦截WM-CLOSE消息,使得结束任务也不可能,不过后一种方法可以通过注册服务或者注入进行隐藏
既然知道了如何HOOK openprocess,HOOK TerminateProcess也不是什么大问题了吧
注册服务不能保证不会被关闭啊,只不过是随WINDOWS启动罢 了,两个进程互相监视,两个都关了,那岂不是也是白搭?
再说一旦HOOK API成功,你怎么去关?
除了APC之类的东西,其他的关不掉
现在杀毒软件防止自身被关闭都用的这种方法
这类问题还是到看雪去问吧……这里菜鸟居多
比较传统的是SSDT HOOK或者Inline Hook勾住TerminateProcess,或者是你说的那种方法,NtOpenProcess配合PsGetCurrentProcessId这个API
但是杀毒软件也有不同,卡吧似乎运用了驱动而并非提权,首先进入Ring0,然后就是调用驱动什么的(别和我谈驱动……我几乎不懂……)
瑞星就是直接HOOK NtTerminateProcess这个函数以达到目的
还有其他的就没怎么测试了……
我以前看过一篇关于ring3下对抗瑞星2008的文章,那个提到了瑞星是采用HOOK NtTerminateProcess的
7月的黑防有一篇文章《再谈内核和进程保护》,你可以去看看那篇文章
这个可以说是最简单的了,没用的。
结束进程树可以干掉。
360可以同时结束多个进程。
我用DLL注入都不太好了,被杀毒软件判为“风险软件”。
刚下载了本rootkit的专题,再研究研究吧
现在可行的就是一个钩子
总之一堆乱七八糟的
用DDK开发*.SYS,用*.SYS保护进程才是有效的,否则全是无聊......