首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

用C -programming在windows下从进程id中获取进程名

在Windows下,使用C编程从进程ID中获取进程名可以通过以下步骤进行:

  1. 使用OpenProcess函数打开具有指定进程ID的进程,获取进程句柄。
  2. 使用GetModuleBaseName函数获取进程模块的基本名称。该函数需要进程句柄和模块句柄作为参数。
  3. 使用CloseHandle函数关闭进程句柄。

下面是一个示例代码:

代码语言:txt
复制
#include <Windows.h>
#include <stdio.h>

int main()
{
    DWORD processId = 1234; // 替换为目标进程的ID
    
    HANDLE hProcess = OpenProcess(PROCESS_QUERY_INFORMATION | PROCESS_VM_READ, FALSE, processId);
    if (hProcess != NULL)
    {
        HMODULE hMod;
        DWORD cbNeeded;
        TCHAR szProcessName[MAX_PATH];

        if (EnumProcessModules(hProcess, &hMod, sizeof(hMod), &cbNeeded))
        {
            GetModuleBaseName(hProcess, hMod, szProcessName, sizeof(szProcessName) / sizeof(TCHAR));
            printf("Process name: %s\n", szProcessName);
        }
        else
        {
            printf("Failed to enumerate process modules.\n");
        }

        CloseHandle(hProcess);
    }
    else
    {
        printf("Failed to open process.\n");
    }

    return 0;
}

这个代码片段通过指定的进程ID打开进程,并获取进程模块的基本名称。最后,输出进程名。

推荐的腾讯云相关产品:腾讯云云服务器(ECS),腾讯云容器服务(TKE),腾讯云数据库(TencentDB),腾讯云对象存储(COS)。

腾讯云产品介绍链接地址:

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • Windows CMD常用命令大全(值得收藏)

    系统运行DOS,中文版Windows XP的命令提示符进一步提高了与DOS下操作命令的兼容性,用户可以命令提示符直接输入中文调用文件。...可以根据进程 id 或映像(Image)来结束进程。 参数列表: /S system 指定要连接到的远程系统。...netstat -help 获取命令行使用帮助信息 netstat -ano //查看网络连接、状态以及对应的进程id 语法: netstat [选项] 参数: -a或--all:显示所有连线的Socket...获取使用帮助 netstat -ano|find ".8" //使用管道符,进行模糊查询 1.13 tracert tracert也被称为Windows路由跟踪实用程序,命令提示符(cmd)中使用...cmd >>重定向输出追加到文件末尾 例如: echo hello >>c:\1.txt // 1.txt文件末尾加上hello 3.3 重定向输入符号< << cmd < file 使cmd命令

    7.4K44

    移动端逆向教程1.2 安卓常用指令集

    同时,我们usb数据线连接电脑后调试手机app会用到一些linux命令(Android运行环境是基于linux内核的缘故)所以下面介绍一windows常用的cmd命令以及linux的shell...0x01 cd命令 通过cd 命令,可以切换到指定文件夹下,此命令windows和linux通用,但在windows只能在当前所在盘符切换,若需切换到别的盘符需要使用命令,例如当前c盘,需要切换到...Windows杀死进程分两步:1查询端口占用2.强行杀死进程 例: #查询一本地所有网络连接,提取包含 8080(已建立连接)的行 netstat -ano | findstr "8080" taskkill.../pid 4000 -t -f 解释: Bash ,管道符使用"丨"代表。...mv A文件路径 B位置路径 #移动A文件到B位置,重命名文件,索引号变话 touch 文件 #创建一个文件 cat a.txt #查看a.txt的内容 id #获取当前用户信息 ps

    1.6K10

    Windowscpu和性能指标监控Top10的实现

    windows虽然有进程管理器,性能监视器perfmon.msc,resmon资源监视器,processhacker神器等众多性能指标监控工具可以,但就是没法看top10那样的直观。...Process Hacker介绍 Process Hacker:windows的一款用于调试和排除软件故障的强大工具 。它可以帮助研究人员检测和解决软件或进程特定操作系统环境遇到的问题。...性能信息并不实际存在于注册表注册表编辑器RegEdit.exe是无法查看的,但可以通过注册表函数来访问,利用注册表键来获得性能数据提供者那里提供的数据。...需要清楚数据注册表的存储格式。...} } // 获取全部进程的cpuMem信息,按内存占用大到小排序 BOOL CCpuTop::GetCpuMemMap() { LONGLONG tm = tm2 - tm1; int

    79920

    Windows程序Dump收集

    如果有多个进程叫test.exe,则最好使用-p 直接指定需要获取dump的唯一进程。...获取程序未响应时候的Dump 采用如下命令: ADPlus.exe -hang -po test.exe -o c:\dumps 本人测试了也可以程序正常运行的时候,直接这个命令获取Dump。...微软Sysinternals可以下载。 procdump.exe -ma test.exe -t -e -o C:\dumps 当然也可以指示进程ID获取dump。...有一种场景,当进程启动过程或者启动一会儿就Crash,那么Adplus就不适合,因为Adplus得进程启动后才能使用,那么可以procdump如下命令, 等待test.exe启动,然后抓取dump...表示当有程序crash的时候利用ntsd产生dump到路径D:\dumps,dump的文件包含有时间和进程名字,避免了不同进程dump的文件覆盖问题。

    1K50

    linux系统编程之进程(五):终端、作业控制与守护进程

    一、终端的概念 UNIX系统,用户通过终端登录系统后得到一个Shell进程,这个终端成为Shell进程的控制终端(Controlling Terminal),控制终端是保存在PCB的信息,而我们知道...默认情况(没有重定向),每个进程的标准输入、标准输出和标准错误输出都指向控制终端,进程标准输入读也就是读用户的键盘输入,进程往标准输出或标准错误输出写也就是输出到显示器上。...ttyname函数可以由文件描述符查出对应的文件,该文件描述符必须指向一个终端设备而不能是任意文件。linux上的命令tty 也可以查看到当前的终端。...三、守护进程 守护进程是在后台运行不受终端控制的进程,通常情况守护进程系统启动时自动运行,用户关闭终端窗口或注销也不会影响守护进程的运行,只能kill掉。...守护进程的名称通常以d结尾,比如sshd、xinetd、crond等 我们ps axj 命令查看系统进程,凡是TPGID(前台进程ID)一栏写着-1的都是没有控制终端的进程,或者TTY一栏为

    2.6K90

    提权(1)信息收集

    提权,这里说的提权实际上指的是纵向的提权,webshell权限到system权限 0x01 引言 通常,我们渗透过程很有可能只获得了一个系统的Guest或User权限。...渗透的最终目的是获取服务器的最高权限,即Windows操作系统管理员账号的权限,或LINUX操作系统root账户权限。 提升权限的方式分为两类。 l 纵向提权:低权限角色获得高权限角色的权限。...l 横向提权:获取同级别角色的权限。比如,通过已经攻破的系统A获取B的账户密码。 一般web渗透我们都是通过纵向提权,而后渗透也就是内网渗透或者域渗透了。...感觉一些常见的进程还是要记住的, winlogon.exe 用户登录进程 explorer.exe 资源管理器 Svchost.exe 是从动态链接库 (DLL) 运行的服务的通用主机进程名称 Safedog.exe...经过我的测试,XP低权限用户是不能使用WMIC命令,但是Windows 7 和Windows8,低权限用户可以使用WMIC,且不用更改任何设置。

    1.2K40

    win32进程概念之句柄表,以及内核对象.

    此时必须先关闭线程.使用CloseHandle 是引用计数 -1才可以. 2.使用继承句柄技术 windows程序. A创建 B .或者带有内核对象的 API创建的时候....A进程创建的 B D是可以继承的. 所以 子进程可以完全复制A进程 可继承句柄表. 不允许继承的为0 都赋值为0 二丶进程PID解析 windows任务管理器.有PID选项.我们可以选中查看....而且windows也常常听到进程ID的概念. 那么进程ID到底是个什么东西. 其实进程ID是全局的句柄表的一个索引.  上面所讲的句柄表.都是自己私有的句柄表. PID是全局句柄表里面的....GetModuleFileName()  获取当前模块路径 例如:  c:\\1.exe 2.GetCurretDirectory()     获取当前的工作目录 例如:  c:\text\abc 3....OpenProcess()  根据进程PID打开进程.获取进程句柄. 4.FindWindow()    根据类以及文件.返回窗口句柄. 5.GetWindowsThreadProcessId()

    96010

    win32进程概念之句柄表,以及内核对象.

    二丶多进程共用内核对象 1.第一种方法. 使用OpenProcess windows程序.我们操作的都是内核对象. 我们可以通过OpenProcess API来打开一个已有进程的内核对象....此时必须先关闭线程.使用CloseHandle 是引用计数 -1才可以. 2.使用继承句柄技术 windows程序. A创建 B .或者带有内核对象的 API创建的时候....不允许继承的为0 都赋值为0 二丶进程PID解析 windows任务管理器.有PID选项.我们可以选中查看. 而且windows也常常听到进程ID的概念. 那么进程ID到底是个什么东西....GetModuleFileName()  获取当前模块路径 例如:  c:\\1.exe 2.GetCurretDirectory()     获取当前的工作目录 例如:  c:\text\abc 3....OpenProcess()  根据进程PID打开进程.获取进程句柄. 4.FindWindow()    根据类以及文件.返回窗口句柄. 5.GetWindowsThreadProcessId()

    1.1K20

    windows10 记事本进程 键盘消息钩子 dll注入

    4、如图点击配置管理器: 5、将Debug配置的平台改为64位,原因是:我的windows是64位的,记事本软件也是64位的(虽然它的执行文件System32文件夹下,但是PCHunter可以看到它是...= NULL) { GetModuleFileNameEx(hProcess, NULL, ProcessName, 1024); //根据进程句柄获取进程完整的名称,如C:\Windows...\System32\notepad.exe //第一个参数是输入参数,输入需要获取进程进程句柄 //第二个参数是输入参数,输入需要获取的模块的模块句柄,为NULL表示获取进程主模块...)ProcessName; //把LPSTR类型转为CString类型,便于进行字符处理 //CStringANSI字符集以存储char数组,Unicode字符集以存储wchar_t...\Windows\System32\notepad.exe转为notepad.exe if (ProcessBaseName == TargetProcessName) //如果该进程与目标进程名相同

    1.7K10

    windows查看进程(进阶)

    windows查看进程(进阶) 背景 最近在搞appium(后续会总结一),跑安卓的windows上,经常启动进程,查看进程,学了一些实用的命令 之前就知道一些命令,如下: # 启动appium...所以这就是windows蛋疼的地方,我明明执行的appium命令,为啥给我来个node的,虽然实际调用确实是nodejs去启动appium的,但我的目的是获取到执行命令 进阶 找了一些资料,但仍然不够好...如果,通过进程号或进程去查看进程详情,但processName也只是简陋的显示node而已 翻阅了一些资料也没有显示命令行的 wmic 这个是cmd命令,所以需要去cmd窗口执行,这个可以满足我们的需求...,查看到命令行的东西,但执行wmic会提示 wmic已经废弃,但还是可以 ?...这个勉强实现了linux的ps -ef | grep appium get-process -id wmic process where caption="node.exe

    7.4K20

    基于AD Event日志检测LSASS凭证窃取攻击

    01、简介 简单介绍一,LSASS(本地安全机构子系统服务)本地或域中登录Windows时,用户生成的各种凭证将会存储LSASS进程的内存,以便用户不必每次访问系统时重新登录。...一般LSASS窃取凭证有两种方式,第一种就是直接LSASS内存解析获取密码,第二种是将LSASS进程转储到本地进行离线解析。...Procdump64.exe -accepteula -ma lsass.exe lsass.dmp Windows事件ID:4663 ,可以看到进程Procdump64.exe 尝试访问内存对象...ID:4663 ,可以看到进程shell.exe 尝试访问内存对象lsass.exe。...(4)CS模块获取用户哈希 使用hashdump或logopasswords 获取用户密码哈希值 Windows事件ID:4663 ,可以看到进程rundll32.exe 尝试访问内存对象lsass.exe

    60430

    python之调用系统命令 原

    参数Universal_newlines:不同操作系统,文本的换行符是不一样的。如:windows’/r/n’表示换,而Linux ‘/n’。...参数startupinfo与createionflags只windows效,它们将被传递给底层的CreateProcess()函数, 于设置子进程的一些属性,如:主窗口的外观,进程的优先级等等。...Popen.communicate(input=None) 与子进程进行交互。向stdin发送数据,或stdout和stderr读取数据。可选参数input指定发送到子进程的参数。...同样,如 果希望stdout和stderr获取数据,必须将stdout和stderr设置为PIPE。...Popen.pid 获取进程进程ID。 Popen.returncode 获取进程的返回值。如果进程还没有结束,返回None。

    2.2K40

    linux系统编程之进程(三):exec系列函数和system函数

    一、exec替换进程映象 进程的创建上Unix采用了一个独特的方法,它将进程创建与加载一个新进程映象分离。这样的好处是有更多的余地对两种操作进行管理。...当我们创建 了一个进程之后,通常将子进程替换成新的进程映象,这可以exec系列的函数来进行。当然,exec系列的函数也可以将当前进程替换掉。...execv、execvp和execvpe的第二个参数是一个字符串数组,新程序启动时会把argv数组给定的参数传递到main 名字含字母“p”的函数会搜索PATH环境变量去查找新程序的可执行文件...三、执行exec函数,下面属性是不发生变化的: 进程ID和父进程ID(pid, ppid) 实际用户ID和实际组ID(ruid, rgid) 附加组ID(sgid) 会话ID 控制终端 闹钟余留时间 当前工作目录...= NULL; i++)         printf("%s\n", environ[i]);     return 0; } 其中environ是全局变量但没有头文件声明,所以使用前需要外部声明一

    2.1K60

    Android中常用的adb shell命令

    android 常用shell命令记录下来备忘 \n shell命令的作用是换行(而\r\n会将一个二进制文件格式unicode变为混合格式) & 可以用来连接多个命令 -help 可以快速知道一个命令怎么的...(windows系统)。...pm path 应用包 获取手机上已经安装的所有的程序 pm list packages 过滤grep 和findstr windows上直接使用findstr来过滤你想要的信息 adb shell...// 1,遍历”/proc”文件夹下面的文件夹,其中有些”文件夹名称”就是进程id(PID) ls /proc // 2,cat命令获取对应进程的名字(cat /proc/PID/cmdline.../proc/12073/status 查看进程的状态 ##通过packages.xml文件查看app安装信息 /data/system/packages.xml文件,找到你应用相关内容 我小米上使用

    2.7K20

    将gitbub下载的docker-compose项目运行在docker

    Integrates with 15+ databases and any API. 1.通过github指令获取 右键点击 Git Bash Here  输入指令: git clone  github...获取请求链接  失败示例(clone有时会超时,需要多尝试几次才能把包获取下来):  成功示例(看到日志全部是“done”后代表项目拉取成功):  2.通过zip的方式直接把包下载到本地  下载完成后会直接得到一个...配置国内加速器 可以添加在Docker Engine配置国内加速器,添加在Docker Engine { "registry-mirrors": ["https://docker.mirrors.ustc.edu.cn..."] } []里面的网址可以随意更换为国内镜像源的网址,我这里的是中国科技大学的镜像源, 大家可以随意选择,填写之后保存文件之后点击Apply&restart重启一docker就完成配置了 docker....com 阿里云: https://{your_id}.mirror.aliyuncs.com daocloud: http://{your_id}.m.daocloud.io 3.右键windows

    52140

    Linux学习笔记(二)

    接下来一段时间打算学一linux 学习来源书本《Linux命令行与shell脚本编程大全 第三版》 一、进程管理 ps命令 ps 命令默认会显示运行在当前控制台下的属于当前用户端的进程,显示的选项 UID...# 启动这些进程的用户 PPID # 父进程进程号 CMD # 启动程序的名称 PID # process ID 进程id TTY # 运行在哪个终端 TIME # 已占用的CPU时间 常用参数 ps...top命令 kill killall命令 kill命令可通过进程ID(PID)给进程发信号。...kill $pid # 杀掉进程id为pid的进程 killall # killall命令支持通过进程而不是PID来结束进程,也支持通配符 以root身份执行此命令当小心,很可能会误杀重要的系统进程...tar function [options] object1 object2 ... tar -c # 创建一个新的归档文件 tar -v # 处理文件时显示文件 tar -f # 输出结果到文件或设备

    48910

    内网渗透 | 横向移动MSTSC的密码获取

    常见渗透过程我们拿到了一个pc权限,目标pc的mstsc可能保存了其他机器的密码。所以获取它保存的密码是非常有利用价值的。...0x04 获取登录日志 windows事件里面id为4624和4635分别为成功登录和失败登录 ? 这里看下4624的详情 已成功登录帐户。...: 进程 ID: 0xbcc 进程: C:\Windows\System32\winlogon.exe网络信息: 工作站: WIN-4BS4SH00L5N...状态: 0xc0000224 子状态: 0x0进程信息: 调用方进程 ID: 0x184 调用方进程: C:\Windows\System32...5.2 当用户通过RDP连接进行身份验证的时候,终端服务是由svchost进程托管,凭证是以纯文本形式储存在svchost进程的内存。但是进程里面有很多svchost进程

    1.8K20

    CC++安全编码笔记:文件IO

    绝对路径以一个文件分割字符开始(POSIX系统,通常是一个正斜杠”/”,而在Windows系统是反斜杠”\”),这意味着路径的第一个文件前面是这个进程的根目录。...它们权限字符串的第一个字母p来表示。套接字(socket)允许同一台机器上运行的两个进程之间通信。它们权限字符串的第一个字母s来表示。...可能的情况,系统应采用这种方法设计,而不是创建设置用户ID为root的程序。撤销特权时注意正确的撤销顺序。  管理权限:进程特权管理是成功的一半,另一半则是文件权限管理。 ...Windows系统上,还可能提供驱动器盘符(例如C:),以及其它特殊文件,如”…”,它相当于”../..”。...例如,一个进程一个众所周知的名字或一个临时名称共享目录创建一个临时文件,并把它传达给合作的进程,那么就可以使用该文件,在这些合作的进程之间共享信息。

    94400
    领券