详解PID到进程名的转换及伪装

【实战】修改贝锐向日葵控控A2(OrayKVM)固件,伪装成指定厂商的USB设备ID 通过逆向与固件修改,我们可以让 OrayKVM 更好地融入特定 IT 环境。技术无罪,善用为佳。祝你折腾愉快,白灯常亮!💡。 阅读详情
作者:天杀

很多时候我们都要用到从PID到进程名的转换。
先总结一下相关的一些常用函数。
GetCurrentProcessId
GetWindowProcessID
这是两个最常用的获得PID的函数。

再看看如何通过PID获得进程名
先用OpenProcess把进程打开,然后一般用下面的一些方法来获得
1.用快照函数CreateToolhelp32Snapshot,然后枚举进程,比较
        CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0)
        Process32First/Process32Next
2.用GetModuleFileNameEx(当前进程用GetModuleFileName,多一个进程句柄参数)
        DWORD GetModuleFileNameEx(
          HANDLE hProcess,
          HMODULE hModule,
          LPTSTR lpFilename,
          DWORD nSize
        );
        需要注意的是这个函数在PSAPI.dll里面
3.用GetProcessImageFileName(WinXP以后新加的一个函数,在psapi.dll中)
        DWORD GetProcessImageFileName(
          HANDLE hProcess,
          LPTSTR lpImageFileName,
          DWORD nSize
        );
        该函数仅在WinXP,Win2003以后支持

说到这里我们就该说说WinNT对进程名的存储和管理了
下面以WinXP SP2 5.1.2600.2180 中的ntkrnlpa.exe为例,涉及到绝对偏移的地方不同版本可能会有所不同,请大家执行研究。

第一个地方,在_EPROCESS中有个成员UCHAR ImageFileName[ 16 ];
       偏移174h的位置,这里存的是进程的短文件名,少数地方用,
       比如SoftIce的addr和proc命令,如果名称超过16个字符直接截断
第二个地方,PEB中的PPEB_LDR_DATA Ldr成员
       或者_RTL_USER_PROCESS_PARAMETERS* ProcessParameters。
       关于PEB的获取方法FS:30h,进程外用NtQueryInformationProcess传递
       PROCESS_BASIC_INFORMATION获取,具体参数自行参考MSDN
       ProcessParameters在PEB中偏移10h的位置,一般都是20000h这个值
       ProcessParameters中38h的位置是进程主模块,40h为进程命令行(注:Unicode)
       通过Ldr也是可以获得的,位置在PEB偏移0Ch的位置,LDR中0Ch的位置是

InLoadOrderModuleList(双链表),通过这个可以枚举到该进程所有的模块名
到这里我们已经可以轻松的欺骗用GetModuleFileName/GetModuleFileNameEx获得进程名的方式了

第三个地方,EPROCESS中有个成员SE_AUDIT_PROCESS_CREATION_INFO SeAuditProcessCreationInfo,该结构其实就是个UniCode指针,不过这个地方不是一直都有的。当执行过NtQueryInformationProcess (ProcHandle,ProcessImageFileName,....)后就有了。GetProcessImageFileName就是直接调用NtQueryInformationProcess来获得进程名的。

好了,大概明白了后我们来看看NtQueryInformationProcess的代码NtQueryInformationProcess中处理ProcessImageFileName的代码是这样的先用ObReferenceObjectByHandle把进程句柄转换成PEPROCESS,然后将PEPROCESS传递给SeLocateProcessImageName,SeLocateProcessImageName会判断SeAuditProcessCreationInfo成员是否已经初始化,没有则调用

PsReferenceProcessFilePointer(该函数其实就是取的EPROCESS结构中SectionObject对应的文件句柄)获得进程对应的文件句柄,并将文件句柄传递

SeInitializeProcessAuditName,SeInitializeProcessAuditName最后调用ObQueryNameString将文件句柄转换成文件名。

到这里后我们可以直接在驱动中调用一次NtQueryInformationProcess,然后去修改EPROCESS中的SeAuditProcessCreationInfo成员即可完成进程名的伪装了。
Rust实现Windows进程隐藏技术:Process Ghosting与Herpaderping详解 进程隐藏是系统安全与攻防对抗中的核心技术,它通过操纵操作系统底层的进程创建、内存管理和文件系统机制,使特定进程对监控工具“不可见”。其原理通常涉及利用操作系统内核对象状态转换的时间窗口或逻辑间隙,例如在进程创建流程中拦截并篡改其内存镜像,或利用文件系统延迟删除特性。这项技术的核心价值在于提升安全测试、威胁模拟和系统研究等场景中工具的隐蔽性与生存能力,尤其适用于红队演练、EDR绕过和Windows内部机制研究等高级应用。本文聚焦Process Ghosting与Herpaderping这两种前沿的进程隐藏技术 阅读详情

相关推荐

深入解析操作系统进程管理与实践技巧

进程作为操作系统资源分配的基本单位,是计算机系统并发执行的核心机制。通过虚拟内存和CPU时间片轮转技术,操作系统实现了进程间的隔离与调度。理解进程生命周期(创建、就绪、运行、阻塞、终止)对系统性能优化至关重要,特别是在处理僵尸进程等常见问题时。现代系统通过进程监控工具(如top/htop)和IPC机制(管道、共享内存、套接字等)实现高效管理。随着容器技术的发展,进程管理在Docker和Kubernetes环境中呈现出新的特点,需要特别关注PID命名空间和优雅终止等问题。掌握这些知识不仅能提升系统稳定性,还能

weixin_30899023的博客 300

GetModuleFileName

获取当前进程已加载模块的文件的完整路径。可使用函数GetModuleFileNameEx获取另一个已加载模块的文件路径。 函数声明: DWORD WINAPI GetModuleFileName( _In_opt_ HMODULE hModule, _Out_ LPTSTR lpFilename, _In_ DWORD nSize ); 返

x-2010的笔记 1976

PsGetProcessImageFileName获取进程图像文件名结果不完整的问题

然而,有时候我们可能会遇到PsGetProcessImageFileName获取结果不完整的问题,即返回的文件名不完整或不正确。希望这篇文章对你有帮助!然而,根据微软官方文档的说明,PsGetProcessImageFileName函数仅返回文件名的一部分,而不是完整的路径。为了解决PsGetProcessImageFileName获取结果不完整的问题,我们可以使用其他的方法来获取完整的图像文件路径和文件名。这样,我们就可以使用上述示例代码来获取进程的完整图像文件路径和文件名,而不仅仅是文件名的一部分。

DevGlider的博客 1425

通过GetProcessImageFileName函数获取进程路径

由于函数GetModuleFileName() 和 函数GetModuleFileNameEx()都是通过PE文件头信息获取进程文件路径,所以它们只能工作于与调用进程相同位数的进程,比如:调用进程32位时,这两个函数只对32位进程有效,64位同理。所以在64位进程与32位进程并存的64位机器中,只能通过GetProcessImageFileName()函数获取进程的DOS文件路径

陌路缘 2万+

PEBFake:PEBFake(修改PEB 伪装当前进程路径、参数等)

Fake process imagepath and name BTW 当然你可以去修改其他进程的PEB信息,参考: 测试效果

哨兵一号burst数据的下载和处理

在Sentinel - 1数据处理领域,其基本流程起始于从(ASF)下载原始压缩文件。这些文件规模颇为可观,常规大小约4GB,而部分数据的原文件甚至已攀升至7GB,对存储空间提出了严苛要求。从影像构成来看,每景Sentinel - 1影像由三个干涉宽幅(IW)模式子带组成,每个IW一般包含9个脉冲串(burst)。然而,在实际研究中,我们所关注的研究区域往往仅占据其中寥寥几个burst。

kangkangluoluo的博客 1965

探秘 ProcessGhosting:一款强大的进程隐藏工具

探秘 ProcessGhosting:一款强大的进程隐藏工具 去发现同类优质开源项目:https://gitcode.com/ 项目简介 是一个开源项目,主要设计用于在Windows操作系统中实现进程的隐蔽和伪装,以提升系统的安全性和隐私保护。项目由开发者 KnightSWD 创建并维护,其目标是提供一种安全、高效的方式,让用户的某些进程可以避免被恶意软件或未经授权的程序检测到。 技术分析 进程伪...

gitblog_00037的博客 1940

带隙基准源要点

要点: 负反馈>正反馈;电流镜匹配;双极型晶体管匹配;电阻匹配; 经过R0的电流????????????=????????????????−????????????????????????=∆????????????????????i_R0=(〖VBE〗_1-〖VBE〗_2)/R_0 =∆VBE/R_0 经过R1的电流????????????=i_R1= ????????????????????VBE/R_1 零温电流I = ∆????????????????????∆VBE/R_0 +

HI_WALLE的博客 2267

[Windows 驱动] 高效获取当前进程名的内核级实现

本文深入探讨了在Windows内核驱动开发中高效获取当前进程名的核心方法。通过对比分析直接读取EPROCESS结构、获取完整路径等多种技术方案,重点介绍了使用PsGetProcessImageFileName函数实现内核级进程名获取的高效实践,并提供了进程监控框架与避坑指南,为驱动开发者进行进程行为监控与安全检测提供了关键技术参考。

weixin_29197699的博客 315

保姆级教程:用OpenCV的calibrateHandEye()搞定机器人手眼标定(附Python代码)

本文详细介绍了如何使用OpenCV的calibrateHandEye()函数完成机器人手眼标定,解决机械臂与相机坐标系对齐问题。教程涵盖从基础原理、数据采集到Python代码实现的完整流程,特别适合需要精确视觉引导的机器人应用开发。通过手眼标定,可确保机械臂准确抓取相机检测到的目标物体。

weixin_33712987的博客 518

setoolkit克隆网站获取用户信息

一、环境 kali、DVWA 二、步骤 首先打开kali,输入setoolkit 依次选择选项1-选项2-选项3-选项2 输入钓鱼网站的网址(默认为本地网址) 输入要克隆的网址URL 这里我的网址如图,将网址复制 然后模拟攻击场景,攻击者向受害者发送了一条钓鱼链接,此链接与DVWA的登陆页面完全一样,受害者点击之后并进行登陆信息 点击login之后,用户信息就被setool...

BeatRex的博客 2998

netstat命令详解

运维

qq_39203337的博客 1万+

QTest 单元测试框架及单元测试思考

qt 单元测试框架 QTEST 及思考

一个老菜鸟的学习分享 1万+

深度剖析伪装成.aliyun.sh的新型挖矿木马:从检测到防御的实战指南

在Linux服务器安全领域,恶意脚本与进程伪装是攻击者实现持久化入侵的常见手段。其核心原理在于通过混淆加密、进程重命名、文件隐藏等技术,将恶意负载伪装成系统可信进程或文件,以规避传统基于签名的检测。这类技术的危害在于能长期隐蔽地劫持服务器计算资源,用于加密货币挖矿,导致业务性能下降与云成本激增。典型的应用场景包括攻击者利用Web应用漏洞、SSH弱密码或配置错误入侵服务器后,投放此类木马。本文聚焦于一种伪装成“.aliyun.sh”的**新型挖矿木马**,深入拆解其**加密混淆**手法、行为特征与入侵路径,并

weixin_30617737的博客 382

【RT-DETR涨点改进】ICML 2026顶会 | 独家Conv改进篇| 引入PloyConv多项式卷积,增强不同尺度空间信息的交互,适合小目标检测、遥感目标检测,含8种创新改进,有效涨点

🔥本文给大家介绍使用 PloyConv多项式卷积 改进RT-DETR网络模型,PloyConv将传统可分离卷积中依赖GELU等激活函数的空间混合方式,改造成由两个异构深度卷积分支驱动的多项式空间混合:粗粒度空洞卷积分支负责大范围上下文,细粒度3×3卷积分支负责局部纹理,并通过通道翻转增加两路特征差异,再通过逐元素乘法建立跨尺度非线性交互,最后利用卷积进行空间整合和通道映射。 它最大的特点是实现了“大感受野上下文 + 局部细节 + 跨尺度乘法交互 + 无点激活空间建模”的统一。

Ai缝合怪、助力小伙伴高效发论文 91

E2B Agent Runtime Sandbox 沙箱技术架构研究

本实现指南基于E2B的技术架构,提供了完整的基于Firecracker和Docker的Agent Runtime Sandbox后端服务实现方案。架构设计:参考E2B的分层架构,实现API层、管理层和虚拟化层Firecracker集成:深度集成Firecracker提供硬件级安全隔离完整功能:支持文件读写、shell执行、浏览器访问等核心功能生产就绪:提供Docker部署、监控、测试和安全配置可扩展性:设计支持水平扩展和高并发场景。

AI天才研究院 752

Linux/Windows系统进程管理与性能调优指南

系统进程是操作系统运行的基础单元,负责资源分配和任务执行。在Linux和Windows系统中,进程管理涉及内核调度、内存分配和权限控制等核心机制。通过理解进程的生命周期和资源占用特性,可以有效进行性能调优和故障排查。在服务器运维场景中,关键进程如systemd、sshd等的异常会导致服务中断,需要实时监控和自动恢复机制。现代云计算环境下的容器化部署,更引入了cgroup资源隔离等新技术要求。掌握进程监控工具如htop、strace的使用,以及OOM Killer等内核机制的原理,是保证系统稳定性的关键技能。

dixi7825的博客 474

yolov5改进之Fasternet主干网络替换

fasternet替换yolov5主干网络

qq_41920323的博客 5146

深入解析操作系统进程:原理、管理与实践

进程是操作系统进行资源分配和调度的基本单位,作为程序执行的动态实例,每个进程都拥有独立的内存空间和系统资源。从技术原理来看,进程通过进程控制块(PCB)维护状态信息,其内存模型包含代码段、数据段、堆栈等关键区域。在并发编程中,进程间通信(IPC)机制如管道、共享内存和消息队列等发挥着重要作用,而进程调度算法如时间片轮转和多级反馈队列则直接影响系统性能。现代操作系统如Linux和Windows都提供了丰富的进程管理工具,同时容器技术也为进程隔离带来了新的解决方案。理解进程管理对于系统调优、安全防护和分布式系统

weixin_34212762的博客 354

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

数字PID控制器实现:位置式与增量式的C语言编码

本文系统讲解数字PID控制器的理论基础与实战实现,涵盖位置式与增量式PID的离散化方法、积分饱和与微分冲击的解决方案,以及C语言模块化设计。深入探讨抗干扰策略、工程优化技巧及PID在嵌入式系统中的安全应用,助力工业自动化与智能控制开发。

h3i4j的博客 732

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

C语言“进程“相关概念

程序是静态的,它是一些保存在磁盘上的指令的有序集合。进程是动态的,是指程序的运行过程。每个进程都有独立的,进程是资源分配的最小单位。当一个被创建后,内存会开辟4G的空间,其分为:3G的PCB内核空间(必须通过系统调用才能访问)和1G的用户空间(堆区、栈区、代码段、数据段)。

weixin_41454263的博客 932

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

进程与线程

(4)我们有了exec族函数后,我们典型的父子进程就是这样的:子进程需要运行的程序被单独编写、单独编译成一个可执行文件(叫hello),项目是一个多进程项目,主程序叫父进程,fork创建了一个子进程后在进程中exec来执行hello,达到父子进程分别作不同的程序(宏观上)同时运行。1.它是守护进程,也就是通常所说的Daemon进程,是Linux三种进程之一,通常在系统启动时运行,在系统关闭时结束.Linux是以会话(session),进程组的方式管理进程.每个进程属于一个进程组,子进程同属于该进程组.

QQxiaolan的博客 121

系统进程管理:从原理到实战优化指南

系统进程是操作系统的核心执行单元,直接管理硬件资源和任务调度。与普通应用进程不同,系统进程以高权限运行,其崩溃可能导致系统级故障。现代操作系统采用微内核架构,通过进程树结构实现层级管理,如Windows的smss.exe和Linux的systemd。进程监控需关注CPU占用率、内存工作集、I/O活动等关键指标,Windows的Process Monitor和Linux的strace是常用工具。在安全防护方面,需警惕伪装进程,验证数字签名和路径合法性。随着容器技术发展,进程管理演进为命名空间隔离和cgroup

364

Linux多进程开发,Linux系统编程(二) ------ 多进程编程

一、进程的创建和调度相关概念:最基础的计算机动作被称为指令(instruction)。程序(program),就是一系列指令的所构成的集合。通过程序,我们可以让计算机完成复杂的操作。程序大多数时候被存储为可执行的文件。1.进程进程(process)是操作系统的概念,为程序的一次执行在操作系统中或内存中的映像,同时伴随着资源的分配和释放。并具有以下特征的活动单元。一组执行的指令序列一个当前状态相关的...

weixin_31528001的博客 288

linux查看进程使用的端口号信息

该命令会显示所有的 TCP 和 UDP 连接以及对应的进程信息,包括监听的端口和进程PID。将列出属于 root 用户且使用 TCP 协议的进程所打开的文件。用于查看系统中打开的文件和相关进程信息。:列出占用该文件描述符的进程。表示列出使用 TCP 协议且端口为 80 的进程,:递归列出目录下被打开的文件,但搜索时间相对较长。:列出符合条件的进程。:列出该用户相关进程所打开的文件。:列出 GID 号进程的详情。:列出指定进程号所打开的文件。:列出指定进程所打开的文件。:列出目录下被打开的文件。

zhu_superman的博客 6499
上一篇: Vista Worm
下一篇: autorun.inf完全操作手册
iiprogram
博客等级 码龄25年 1068粉丝 1515原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值