中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-08-12 12:53
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 获取进程加载模块、pid 查看 1,470 回复 6
楼 主 获取进程加载模块、pid 发表于 2010-03-11 19:36 ·  中国 四川 攀枝花 电信
初级用户
★★
积分 147
发帖 131
注册 2008-09-22 23:54
17年会员
UID 126352
性别 男
状态 离线
这几天在编写个后门,利用远程线程注入,每次要查看指定进程的加载模块,要反复人工查找,很麻烦,便借鉴pmc工具,自己动手编写了一个获取进程模块、和pid的控制台程序,这里与联盟的同志一起分享

功能:
1, getpid ... 获取进程pid
2, getpid -l 获取进程列表
3, getpid -m processname 获取进程加载的所有模块
4, getpid -c processname dllname 判断某模块是否被进程加载

[ Last edited by rs369007 on 2010-3-11 at 19:38 ]
附件
getpid.rar (6.5 KiB, 下载次数: 40)
freedom!
2 发表于 2010-03-12 00:06 ·  中国 上海 杨浦区 电信
初级用户
积分 49
发帖 42
注册 2009-11-26 04:39
16年会员
UID 155365
性别 男
状态 离线
tasklist 有这些功能,不过不能显示路径。
3 发表于 2010-03-12 11:17 ·  中国 四川 攀枝花 电信
初级用户
★★
积分 147
发帖 131
注册 2008-09-22 23:54
17年会员
UID 126352
性别 男
状态 离线
tasklist 有这些功能,但是你要一片一片去在屏幕上查找,很费时。

如果知道进程映像名(程序名字) 想查看其 pid 输入 :getpid share.exe 就行了
如果想查看进程share.exe 加载了哪些模块, 输入 :getpid share.exe -m
如果你在远程加载某个dll到别的进程,你想查
看是否加载成功 输入 :getpid x.exe y.dll -c
freedom!
4 发表于 2010-03-12 11:42 ·  中国 上海 杨浦区 电信
初级用户
积分 49
发帖 42
注册 2009-11-26 04:39
16年会员
UID 155365
性别 男
状态 离线
查看 pid: tasklist /fi "imagename eq cmd.exe"
查看模块: tasklist /m /fi "imagename eq cmd.exe"
查看是否加载了某个 dll: tasklist /m test.dll /fi "imagename eq cmd.exe"

[ Last edited by 000000000000000 on 2010-3-12 at 12:12 ]
5 发表于 2010-03-12 14:21 ·  中国 吉林 延边朝鲜族自治州 延吉市 电信
银牌会员
★★★
正在学习中的菜鸟...
积分 1,039
发帖 897
注册 2009-03-01 15:34
17年会员
UID 140302
性别 男
来自 在地狱中仰望天堂
状态 离线
可以使用
wmic process get
直接获取更多有关进程的信息,也可以对其属性(CSName,CommandLine,Description,ExecutablePath,ExecutionState,Handle,HandleCount,InstallDate,KernelModeTime,MaximumWorkingSetSize,MinimumWorkingSetSize,Name,OSName,OtherOperationCount,OtherTransferCount,PageFaults,PageFileUsage,ParentProcessId,PeakPageFileUsage,PeakVirtualSize,PeakWorkingSetSize,Priority,PrivatePageCount,ProcessId,QuotaNonPagedPoolUsage,QuotaPagedPoolUsage,QuotaPeakNonPagedPoolUsage,QuotaPeakPagedPoolUsage,ReadOperationCount,ReadTransferCount,SessionId,Status,TerminationDate,ThreadCount,UserModeTime,VirtualSize,WindowsVersion,WorkingSetSize,WriteOperationCount,WriteTransferCount)
进行指定查询

例如要只查询进程qq.exe的绝对路径,可运行

wmic process get Caption,commandline | findstr /b /i "qq.exe"


[ Last edited by Hanyeguxing on 2010-3-12 at 15:32 ]
6 增加 远程注入dl、 卸载dlll 发表于 2010-03-12 15:30 ·  中国 四川 攀枝花 电信
初级用户
★★
积分 147
发帖 131
注册 2008-09-22 23:54
17年会员
UID 126352
性别 男
状态 离线


Options:

-h to get help infomation.
-l to list all the process and it's pid.
-c to check if the specified dll just in the process.
-load to inject one dll into a process.
-free to free the specified dll from a process.
-m processname to list All the Modules in a Process.

Usage: getpid ...
getpid -l.
getpid -m processname or processname -m.
getpid -c processname dllname
getpid -load notepad.exe c:\test.dll
getpid -free notepad.exe test.dll.
Remarks:
when you specified -load , you have to use full
path for the dll. otherwise, unknown errors maybe ...


[ Last edited by rs369007 on 2010-3-12 at 15:35 ]
附件
getpid.rar (7.73 KiB, 下载次数: 15)
freedom!
7 发表于 2010-03-12 17:42 ·  中国 陕西 西安 电信
银牌会员
★★★★
钻石会员
积分 2,278
发帖 1,020
注册 2007-11-19 13:34
18年会员
UID 103127
性别 男
状态 离线
wmic 是很强,可一般它的服务默认都是手动的,用的时候不方便,若一直开着又占资源。还有,它要管理员权限,所以不能流行。。。

用vbs吧
山外有山,人外有人;低调做人,努力做事。

进入网盘(各种工具)~~ 空间~~cmd学习
论坛跳转: