第一次课进行分类代码

news2024/11/18 12:45:49

System32下的进程

#include <windows.h>
#include <stdio.h>
#include<TlHelp32.h>
#include<psapi.h>

int main()
{
    HANDLE hProcessSnap;
    PROCESSENTRY32 pe32;

    // 获取进程快照
    hProcessSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
    if (hProcessSnap == INVALID_HANDLE_VALUE)
    {
        printf("创建进程快照失败!错误码:%d\n", GetLastError());
        return 1;
    }

    // 设置进程快照结构体大小
    pe32.dwSize = sizeof(PROCESSENTRY32);

    // 获取第一个进程的信息
    if (!Process32First(hProcessSnap, &pe32))
    {
        printf("获取第一个进程信息失败!错误码:%d\n", GetLastError());
        CloseHandle(hProcessSnap);
        return 1;
    }

    // 遍历进程快照,输出System32路径下的进程
    do
    {
        wchar_t szProcessPath[MAX_PATH];
        HANDLE hProcess = OpenProcess(PROCESS_QUERY_LIMITED_INFORMATION, FALSE, pe32.th32ProcessID);

        // 获取进程路径
        if (hProcess)
        {
            if (GetModuleFileNameEx(hProcess, NULL, szProcessPath, MAX_PATH))
            {
                if (wcsstr(szProcessPath, L"\\System32\\") != NULL)
                {
                    printf("进程ID:%d,进程路径:%ls\n", pe32.th32ProcessID, szProcessPath);
                }
            }
            CloseHandle(hProcess);
        }

    } while (Process32Next(hProcessSnap, &pe32));

    CloseHandle(hProcessSnap);

    return 0;
}

在这里插入图片描述

非System32下的进程

#include <windows.h>
#include <stdio.h>
#include<TlHelp32.h>
#include<psapi.h>

int main()
{
    HANDLE hProcessSnap;
    PROCESSENTRY32 pe32;

    // 获取进程快照
    hProcessSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
    if (hProcessSnap == INVALID_HANDLE_VALUE)
    {
        printf("创建进程快照失败!错误码:%d\n", GetLastError());
        return 1;
    }

    // 设置进程快照结构体大小
    pe32.dwSize = sizeof(PROCESSENTRY32);

    // 获取第一个进程的信息
    if (!Process32First(hProcessSnap, &pe32))
    {
        printf("获取第一个进程信息失败!错误码:%d\n", GetLastError());
        CloseHandle(hProcessSnap);
        return 1;
    }

    // 遍历进程快照,输出非System32路径下的进程
    do
    {
        wchar_t szProcessPath[MAX_PATH];
        HANDLE hProcess = OpenProcess(PROCESS_QUERY_LIMITED_INFORMATION, FALSE, pe32.th32ProcessID);

        // 获取进程路径
        if (hProcess)
        {
            if (GetModuleFileNameEx(hProcess, NULL, szProcessPath, MAX_PATH))
            {
                // 判断进程路径是否不包含System32目录
                if (wcsstr(szProcessPath, L"\\System32\\") == NULL)
                {
                    printf("进程ID:%d,进程路径:%ls\n", pe32.th32ProcessID, szProcessPath);
                }
            }
            CloseHandle(hProcess);
        }

    } while (Process32Next(hProcessSnap, &pe32));

    CloseHandle(hProcessSnap);

    return 0;
}

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

每个进程内的模 system32 路径下的模块有哪些,非system32下的模块有哪些

int main()
{
    HANDLE hProcessSnap;
    PROCESSENTRY32 pe32;

    // 获取进程快照
    hProcessSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
    if (hProcessSnap == INVALID_HANDLE_VALUE)
    {
        printf("创建进程快照失败!错误码:%d\n", GetLastError());
        return 1;
    }

    // 设置进程快照结构体大小
    pe32.dwSize = sizeof(PROCESSENTRY32);

    // 获取第一个进程的信息
    if (!Process32First(hProcessSnap, &pe32))
    {
        printf("获取第一个进程信息失败!错误码:%d\n", GetLastError());
        CloseHandle(hProcessSnap);
        return 1;
    }

    // 遍历进程快照,输出每个进程内的System32路径下的模块
    do
    {
        HANDLE hProcess = OpenProcess(PROCESS_QUERY_INFORMATION | PROCESS_VM_READ, FALSE, pe32.th32ProcessID);

        if (hProcess)
        {
            HMODULE hMods[1024];
            DWORD cbNeeded;

            // 获取模块句柄数组
            if (EnumProcessModules(hProcess, hMods, sizeof(hMods), &cbNeeded))
            {
                // 获取模块路径
                for (unsigned int i = 0; i < cbNeeded / sizeof(HMODULE); i++)
                {
                    wchar_t szModuleName[MAX_PATH];

                    if (GetModuleFileNameEx(hProcess, hMods[i], szModuleName, MAX_PATH))
                    {
                        // 判断模块路径是否位于System32目录下
                        if (wcsstr(szModuleName, L"\\System32\\") != NULL)
                        {
                            printf("进程ID:%d,模块路径:%ls\n", pe32.th32ProcessID, szModuleName);
                        }
                    }
                }
            }

            CloseHandle(hProcess);
        }

    } while (Process32Next(hProcessSnap, &pe32));

    CloseHandle(hProcessSnap);

    return 0;
}

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
这里列出来的实在是太多了

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1039803.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

微信编辑器自带导出功能,同步到公众号生成链接

​在微信编辑器里编辑好了文章&#xff0c;想把编辑器里的文章复制到其它网站或者分享给好友&#xff0c;怎么操作呢&#xff1f;其实很简单&#xff0c;可以通过编辑器自带的导出功能&#xff0c;或者同步到微信公众号生成链接&#xff0c;那今天小编先给大家说一说编辑器自带…

python setup.py egg_info“ failed with error code 1 in xxxxxxxx问题解决

python setup.py egg_info" failed with error code 1 in xxxxxxxx问题解决 一、问题描述&#xff1a;通过pip安装opencv-python时候&#xff0c;提示安装二、解决办法&#xff1a;升级pip三、结果 一、问题描述&#xff1a;通过pip安装opencv-python时候&#xff0c;提示…

Python 机器学习入门之线性回归

系列文章目录 第一章 Python 机器学习入门之线性回归 线性回归 系列文章目录前言一、线性回归1.线性回归是什么2.线性回归的分类 二、实现线性回归1.步骤2.代价函数3.梯度下降 总结 前言 最近在上机器学习的课程&#xff0c;第一次实验是做线性回归&#xff0c;那神马是线性回…

基于FPGA的图像坏点像素修复算法实现,包括tb测试文件和MATLAB辅助验证

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 5.算法完整程序工程 1.算法运行效果图预览 2.算法运行软件版本 vivado2019.2 matlab2022a 3.部分核心程序 timescale 1ns / 1ps // // Company: // Engineer: // // Create Date: 202…

竞赛选题 基于生成对抗网络的照片上色动态算法设计与实现 - 深度学习 opencv python

文章目录 1 前言1 课题背景2 GAN(生成对抗网络)2.1 简介2.2 基本原理 3 DeOldify 框架4 First Order Motion Model5 最后 1 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &#x1f6a9; 基于生成对抗网络的照片上色动态算法设计与实现 该项目较为新颖&am…

Linux 读写锁

读写锁是一把锁 /*读写锁的类型 pthread_rwlock_tpthread_rwlock_init(pthread_rwlock_t *restrict rwlock, const pthread_rwlockattr_t *restrict attr);int pthread_rwlock_destory(pthread_rwlock_t *rwlock);int pthread_rwlock_rdlock(pthread_rwlock_t *rwlock);int pt…

Android逆向技术高阶大法

原文链接 Android逆向技术高阶大法 安卓应用是一个客户端&#xff0c;与传统软件类似&#xff0c;需要把软件打包&#xff0c;然后通过某种渠道&#xff08;应用市场&#xff09;分发给用户&#xff0c;这是常规的发布方式&#xff0c;它的更新节奏很慢&#xff0c;从你在应用…

系统集成|第十四章(笔记)

目录 第十四章 合同管理14.1 概述及相关概念14.2 项目合同14.3 《合同法》14.4 《仲裁法》 上篇&#xff1a;第十三章、干系人管理 第十四章 合同管理 14.1 概述及相关概念 主要包括合同签订管理&#xff0c;合同履行管理&#xff0c;合同变更管理以及合同档案管理。作为一个重…

自拟实现消息队列(MQ)基于Rabbit MQ(含概念和源码)巨详细!!!!!含思维导图

MQ目录 MQ基本概念什么是MQ&#xff1f;MQ的应用场景 首先先明白需求持久化分析那么MQ如何设计持久化&#xff1f; 可靠性分析高效性分析MQ核心概念&#xff08;装配层&#xff09;实现MQ组件思维导图创建项目导入数据库下载SqLite。 创建组件实体类创建交换机&#xff08;要加…

精通Linux系列第一章:探索Linux世界的大门

文章目录 一、前言二、 什么是Linux&#xff1f;三、Linux系统与Windows系统的区别四、为什么要学习Linux&#xff1f;五、 Linux的优势六、什么是Linux发行版&#xff1f;七、常见的Linux发行版八、如何选择适合你的Linux发行版&#xff1f;九、Linux各种发行版的优势与应用十…

【C语言】进阶——结构体+枚举+联合

①前言&#xff1a; 在之前【C语言】初阶——结构体 &#xff0c;简单介绍了结构体。而C语言中结构体的内容还有更深层次的内容。 一.结构体 结构体(struct)是由一系列具有相同类型或不同类型的数据项构成的数据集合&#xff0c;这些数据项称为结构体的成员。 1.结构体的声明 …

NVM:node多版本管理的下载安装及使用

NVM&#xff1a;node多版本管理的下载安装及使用 使用之前先卸载node&#xff0c;避免各种奇葩问题导致不成功。win卸载&#xff1a;win > 设置 > 应用 > 应用和功能&#xff0c;找到 node 点击出现卸载按钮并且卸载它。 1、下载安装&#xff1a; https://github.co…

信创之国产浪潮电脑+统信UOS操作系统体验1:硬件及软件常规功能支持情况介绍

一、引言 由于公司要求支持国产信创&#xff0c;最近办公的笔记本电脑换成了软硬件全国产&#xff0c;由于国产操作系统是在开源linux基础上演进的&#xff0c;在换之前&#xff0c;非常担心操作不方便&#xff0c;周边应用软件少&#xff0c;功能差&#xff0c;内心是比较抗拒…

C++:优先级队列模拟实现和仿函数的概念使用

文章目录 使用方法Compare仿函数一些场景模板参数和函数参数 本篇总结优先级队列 使用方法 首先在官网查看它的一些用法 template <class T, class Container vector<T>,class Compare less<typename Container::value_type> > class priority_queue;从…

软件测试之接口测试

1、什么是接口测试 顾名思义&#xff0c;接口测试是对系统或组件之间的接口进行测试&#xff0c;主要是校验数据的交换&#xff0c;传递和控制管理过程&#xff0c;以及相互逻辑依赖关系。其中接口协议分为HTTP,WebService,Dubbo,Thrift,Socket等类型&#xff0c;测试类型又主…

Crypto:MD5

题目 下载了题目给的压缩包解压后&#xff0c;打开文件 使用md5解码器解码后得到&#xff0c;即为flag

DS18B20温度传感器

DS18B20简介 DS18B20 是由 DALLAS 半导体公司推出的一种的“一线总线&#xff08;单总线&#xff09;”接口的温度传感器 这种一线总线就是 三线制 SPI DS18B20的 配置寄存器&#xff1a; TM 是测试位&#xff0c;出厂设置就被设置为0&#xff0c;不需要改动&#xff0c; R1、R…

linux————ceph分布式部署

目录 一、概述 特点 1、统一存储 2、高扩展性 3、可靠性强 4、高性能 组件 1、Monitor 2、OSD 3、MOD 4、Objet 5、PG 6、RADOS 7. Libradio 8. CRUSH 9. RBD 10. RGW 11. CephFS 架构图 二、准备工作 三、ceph安装 创建集群目录 修改配置文件 安装 初…

数据结构上机1

1、题目&#xff1a; 将1~10存入数组a[10]&#xff0c;并将其逆序输出 #define _CRT_SECURE_NO_WARNINGS 1 //(1) 将1~10存入数组a[10]&#xff0c;并将其逆序输出#include <stdio.h>int main() {int a[10];// 将1到10存入数组a[10]for (int i 0; i < 10; i){a[i] i…

[硬件基础]-快速了解I2C串行通信协议

快速了解I2C串行通信协议 文章目录 快速了解I2C串行通信协议1、硬件接口2、数据帧3、数据操作4、时钟拉伸&#xff08;Clock Stretching&#xff09;5、总线仲裁6、权衡&#xff1a;功率与速度7、总结 内部集成电路协议&#xff08;Inter-Integrated Circuit Protocol&#xff…