上网行为管理agent(开源产品deskvideosys代理)

news/2024/10/19 15:25:28/

接上一篇终端上网行为管理开源框架己经介绍的服务器端开源代码,其实同时还开源了agent端的代码,agent使用的是vc++,能运行在windows7以上操作系统上,目前代码还不是太多,主要是收集了pc端的程序运行信息,我给大家大致解读下,具体的源码地 址为boxiaojishu/windata (github.com)

代码中先是实现了一个公共读取windows操作系统的硬件信息

bool getDevcieInfo(char* cmd, list<string>& resultList) {
    char buffer[BUFFER_SIZE];
    bool ret = false;
    FILE* pipe = _popen(cmd, "r"); //打开管道,并执行命令
    if (!pipe)
    return ret;
    const char* name[20] = { "UUID","ProcessorId","SerialNumber" };
    int len0 = strlen(name[0]), len1 = strlen(name[1]), len2 = strlen(name[2]);
    bool isOk = false;
    while (!feof(pipe))
    {
    if (fgets(buffer, BUFFER_SIZE, pipe))
    {
    if (strncmp(name[0], buffer, len0) == 0
    || strncmp(name[1], buffer, len1) == 0
    || strncmp(name[2], buffer, len2) == 0) // 能够正确获取信息
    {
    isOk = true;
    continue;
    }
    if (isOk == false
    || strcmp("\r\n", buffer) == 0) //去掉windows无用的空行
    {
    continue;
    }
    ret = true;
    resultList.push_back(string(buffer));
    }
    }
    _pclose(pipe); // 关闭管道
    return ret;
}

接着实现了一个读取主板UUID信息,如果主板UUID不存在,使用CPUID、BIOS序列号、硬盘序列号生成机器指纹

代码如下:

string getDeviceFingerPrint() {
    list<string> strList;
    list<string>::iterator it;
    hash<string> str_hash;
    size_t num;
    char tmp[11] = { 0 };
    // 主板UUID存在,就使用主板UUID生成机器指纹

    if (getDevcieInfo((char*)"wmic csproduct get UUID", strList)

    && (*strList.begin()).compare("FFFFFFFF-FFFF-FFFF-FFFF-FFFFFFFFFFFF\r\n") != 0)
    {

    //cout << *strList.begin() << endl;

    cout << (*strList.begin()).substr(0, (*strList.begin()).length() - 4) << endl;
    num = str_hash(*strList.begin());

    sprintf_s(tmp, "%u", num);

    //cout << string(tmp) << endl;
    return string((*strList.begin()).substr(0, (*strList.begin()).length() - 4));
    }
    // 主板UUID不存在,使用CPUID、BIOS序列号、硬盘序列号生成机器指纹

    string otherStr("");

    strList.clear();

    if (getDevcieInfo((char*)"wmic cpu get processorid", strList)) {

    //otherStr.append((*strList.begin()).pop_back());

    otherStr.append((*strList.begin()).substr(0, (*strList.begin()).length() - 4));

    cout << *strList.begin() << endl;

    }

    cout << otherStr << endl;

    strList.clear();

    if (getDevcieInfo((char*)"wmic bios get serialnumber", strList)) {

    otherStr.append((*strList.begin()).substr(0, (*strList.begin()).length() - 9));

    cout << *strList.begin() << endl;

    cout << otherStr << endl;

    }

    strList.clear();
    if (getDevcieInfo((char*)"wmic diskdrive get serialnumber", strList)) {
    string allDiskNum("");
    // 硬盘可能有多块
    for (it = strList.begin(); it != strList.end(); it++)
    {
    allDiskNum.append(*it);
    }
    cout << *strList.begin() << endl;
    otherStr.append((*strList.begin()).substr(0, (*strList.begin()).length() - 4));
    }
    cout << otherStr << endl;
    num = str_hash(otherStr);

    sprintf_s(tmp, "%u", num);
    //cout << string(tmp) << endl;
    return string(otherStr);

}

先解读到这里,后面的代码大家先自己看,待有空再来解读


http://www.ppmy.cn/news/276930.html

相关文章

深信服AC1100上网行为管理

文章转载自:http://www.harbing.com/Product/Sangfor/Sangfor-AC1100.php 设备功能介绍与特性: 识别作为管理的基础,是上网行为管理产品功能是否健全的有利保障。SANGFOR- AC上网行为管理具有强大的识别功能。基于用户识别的功能支持以IP、MAC、IP/MAC绑定、用户名密码、USB…

openwrt上网行为控制_深信服全网行为管理AC重磅发布!

已经2020年了 你还在因企业内网安全建设问题头疼吗? 遇到下面这些问题要如何应对? 移动办公和物联网应用兴起,接入设备多样化,网络边界逐渐模糊,如何保障接入网络的身份和终端安全可控? 业务上云,互联网HTTPS流量普及,如何实现高可用的上网行为管理?企业业务信息化持续…

上网行为管理系统服务器区域,ASG典型配置:上网行为管理和带宽管理综合场景...

操作步骤 1. 选择“网络>快速向导”或“网络>接口”配置接口基本参数,具体步骤略。 2. 配置组织结构和认证策略,组织结构如 图2组织结构图 3. 将“用户a1”的账号user1添加到免管控用户列表,实现需求一。 a. 选择“用户管理>上网用户>免管控用户”。 b. 在…

上网行为监控都能审计到哪些内容?

现在很多企业都部署了上网行为监控系统&#xff0c;那么&#xff0c;它可以审计到哪些内容呢&#xff1f;目前市面上有不同种类的上网行为监控系统&#xff0c;其功能都是大同小异的&#xff0c;这里我们以墨门云为例&#xff0c;了解一下装了这个软件之后管理者可以审计到哪些…

上网行为安全(二)

上网行为管理基本操作 登录设备 SANGFOR AC/SG设备&#xff0c;各网口默认的出厂IP为&#xff1a;eth0(LAN)&#xff1a;10.251.251.251/24 , eth1(DMZ)10.252.252.252/24使用一根交叉线连接设备和电脑 如果电脑连接的是设备的eth0口&#xff0c;需先在电脑上配置一个10.25…

【沐风老师】3DMAX径向对称插件使用方法应解

3DMAX径向对称插件使用教程 3DMAX径向对称插件&#xff0c;允许你对径向结构建模并查看最终结果。它的功能类似于3dMax自带的“对称”修改器&#xff0c;但它可以在三个轴的任意角度径向对象&#xff0c;这可以创造出很多我们意想不到的建模艺术效果&#xff0c;也可以理解它是…

Word控件Spire.Doc 【其他】教程(8):在 Word 中嵌入多媒体文件

Spire.Doc for .NET是一款专门对 Word 文档进行操作的 .NET 类库。在于帮助开发人员无需安装 Microsoft Word情况下&#xff0c;轻松快捷高效地创建、编辑、转换和打印 Microsoft Word 文档。拥有近10年专业开发经验Spire系列办公文档开发工具&#xff0c;专注于创建、编辑、转…

代码随想录算法训练营第二天| 977.有序数组的平方 209.长度最小的子数组 59.螺旋矩阵||

LeetCode977.有序数组的平方 链接&#xff1a;有序数组的平方 给你一个按 非递减顺序 排序的整数数组 nums&#xff0c;返回 每个数字的平方 组成的新数组&#xff0c;要求也按 非递减顺序 排序。 看到这道题&#xff0c;我第一反应就是把每个数的平方算出来然后排序&#xff…