找回密码
 开放注册

QQ登录

只需一步,快速开始

微信登录

微信扫码,快速开始

搜索
查看: 842|回复: 1

干掉卡巴过卡巴主动防御,卡7/卡8

[复制链接]

485

主题

3564

回帖

70

牛毛

初生牛犊

积分
70
发表于 2008-7-26 15:26:20 | 显示全部楼层 来自 辽宁省营口市
这也是一个不错的办法哈

16

主题

43

回帖

76

牛毛

初生牛犊

积分
76
 楼主| 发表于 2008-7-26 15:09:05 | 显示全部楼层 |阅读模式 来自 河南省济源市
干掉卡巴过卡巴主动防御,卡7/卡8



卡巴斯基<1>启动的时候,两个进程内部都会创建一个事件用于同步退出,当显示关闭这个事件时,AVP进程会退出。这个事件内核对象名字是一个
GUID,一开始我以为是动态生成的,但据我逆向及在其他机器观察,这个事件是硬编
码,”6953EA60-8D5F-4529-8710-42F8ED3E8CDA”(为了方便,在本文,我把这个事件写成A事件,我猜想卡巴斯基开发
人员肯定读过windows核心编程,Jeffrey Richter 建议用GUID来命名事件^_^)。打开procexp.exe查找两个
avp.exe<2>进程内核对象,关闭A事件,这时AVP进程就会退出,各位看官可以在自己机器上测试^_^,AVP进程守护功能<3>在此不起作
用。Procexp.exe是如何做到关闭其他进程内核对象的呢?逆向之后发现procexp.exe是在ring0下完成的,偶不用ring0,直接
ring3。
卡巴斯基有Hook NtOpenProcess,不过当我们以PROCESS_QUERY_INFORMATION打开AVP时,仍然可以成
功<4>,同样卡巴斯基也有Hook NtDuplicateObject,一开始我以为如果调用DuplicateHandle来改变desire
access会失效,据牛人张翼的话:很多HIPS挂了NtDuplicateObject也是白挂。于是我尝试用Duplicate(….
PROCESS_DUP_HANDLE….)改变进程的desire access,卡巴斯基有两个进程,其中一个以SYSTEM账号运行的AVP进程
不能打开,只能打开另一个以当前用户运行的进程,足够了。当我们终止以当前用户运行的AVP进程时,卡巴就失效了。
成功打开了句柄后,采用NtQuerySystemInformation SystemHandleInformation 功能号枚举句
柄,当枚举到的句柄是A事件时,我们用刚才打开的进程句柄,用
DuplicateHandle(..DUPLICATE_CLOSE_SOURCE),DUPLICATE_CLOSE_SOURCE标志位关闭
source进程内的句柄,AVP进程感应到退出事件,退出。
代码详见附件,如果发现有BUGS,请mail me : wangyongxina@gmail.com
感谢猪头三的技术支持~

注<1>:我开发用的版本如下:
kis8.0.0.402en.exe,kav8.0.0.402en.exe,kis7_0_1_325sch.exe。其他版本可能会运行失败。早
期的KIS7.0.2(我忘记版本号了),这种方法无效。
注<2>:卡巴斯基在启动的时候,可能会启动三个进程,其中有一个用于升级,本文不考虑这种情况。
注<3>:卡巴斯基有进程守护功能,当结束其中的一个时,如果是以当前用户运行的AVP进程,会被另一个AVP重启;如果是以SYSTEM账号运行的进
程,会被services.exe启动
注<4>:我在测试KIS7.0版本时,发现以PROCESS_DUP_HANDLE | PROCESS_QUERY_INFORMATION |
PROCESS_VM_READ可以打开句柄,而KIS8.0进程只能以PROCESS_QUERY_INFORMATION打开。
您需要登录后才可以回帖 登录 | 开放注册

本版积分规则

帮助|Archiver|小黑屋|通信管理局专项备案号:[2008]238号|NB5用户社区 ( 皖ICP备08004151号;皖公网安备34010402700514号 )

GMT+8, 2025-1-13 07:44 , Processed in 0.115041 second(s), 28 queries , Yac On.

Powered by Discuz! X3.5

快速回复 返回顶部 返回列表