为什么要研究火绒剑是怎么杀死进程的?
公司也是做DLP数据防泄漏的,客户机器上装了免费的火绒安全软件就能杀死我们的进程了,这怎么能行那?客户还不允许火绒剑不好使,那没有办法就大概看一下火绒剑是怎么杀死进程的。
使用上我们的PCHUNTER工具,卸载掉火绒的驱动,试一下。
结果火绒剑弹出了错误的弹窗。
看到了ZwTerminateProcess函数,这还用想,肯定是调用了这个函数。
直接按X查看交叉引用。
一共有3个驱动函数调用这个API了,这不简单了吗,直接上WINDBG双机调试,看看它们能不能断下来!
果然没有那么简单,这3个函数都没有调用,难道它写一个这个结束进程一点用没有?
它肯定要通过我们的PID获取我们的进程的嘛,我们看一下导入表。
果然发现了关键的函数,PsLookupProcessByProcessId,一套操作再来一遍,然后看看我们结束进程的时候,会走哪个函数。
当我们点击确定的时候,可以发现:
进入了第7个函数的断点,我们来看看它是怎么实现的?
这个42790所在的函数就会返回一个进程句柄给R3程序?
这个是不是也可以用在某游戏上CE没有图标的问题,拥有了进程句柄,CE就可以正常的读写游戏了吧。
不想那些,我直接修改一下这个函数,直接让它返回空。
按G,继续运行,我的天哇,怎么就调用了那个会调用ZwTerminateProcess的函数了那,也直接给他返回,不让这个函数进行任何的操作,我们来看一看进程会不会被杀死?
这个进程竟然杀不死了,
看一下R3进程的导入表。
因此我们大概猜测出来了这个结束进程的流程了。
火绒剑的结束进程,先是通过驱动打开对应进程的进程句柄,然后R3调用结束进程的API,如果驱动没有返回进程的进程句柄,则会通过驱动杀死进程。
分析到这里就够了,然后就是想着如何劫持它的IO通信,在他调用对应的消息号的时候,是我们的进程就返回失败的问题了,让一切归于平静!
看雪ID:lwl
https://bbs.kanxue.com/user-home-155459.htm
# 往期推荐
3、安卓加固脱壳分享
球分享
球点赞
球在看