注册

CpuDbg x96

查看: 13|回复: 0
收起左侧

tasklist命令还是挺强大的

[复制链接]
发表于 前天 03:41 | 显示全部楼层 |阅读模式
tasklist这个命令我经常使用. 遇到禁用taskmgr的情况下,我会使用. 需要查看进程数量的时候我也会使用: tasklist | find /c "K"

今天在使用WINHEX的时候,发现搜索内存的时候,又能找到之前一直隐藏的那个进程了.
后来问了AI,才知道,是当系统启动的进程数量大于255的时候, WINHEX就会找不到进程.
我用tasklist又想查看一下进程数量是不是大于255, 由于太久没用tasklist命令了,忘了参数,
就打/? 看了一下命令帮助.

[Asm] 纯文本查看 复制代码
TASKLIST [/S system [/U username [/P [password]]]]
         [/M [module] | /SVC | /V] [/FI filter] [/FO format] [/NH]

描述:
    该工具显示在本地或远程机器上当前运行的进程列表。


参数列表:
   /S     system           指定连接到的远程系统。

   /U     [domain\]user    指定应该在哪个用户上下文执行这个命令。

   /P     [password]       为提供的用户上下文指定密码。如果省略,则
                           提示输入。

   /M     [module]         列出当前使用所给 exe/dll 名称的所有任务。
                           如果没有指定模块名称,显示所有加载的模块。

   /SVC                    显示每个进程中主持的服务。

   /APPS 显示 Microsoft Store 应用及其关联的进程。

   /V                      显示详细任务信息。

   /FI    filter           显示一系列符合筛选器
                           指定条件的任务。

   /FO    format           指定输出格式。
                           有效值: "TABLE"、"LIST"、"CSV"。

   /NH                     指定列标题不应该
                           在输出中显示。
                           只对 "TABLE" 和 "CSV" 格式有效。

   /?                      显示此帮助消息。

筛选器:
    筛选器名称     有效运算符           有效值
    -----------     ---------------           --------------------------
    STATUS          eq, ne                    RUNNING | SUSPENDED
                                              NOT RESPONDING | UNKNOWN
    IMAGENAME       eq, ne                    映像名称
    PID             eq, ne, gt, lt, ge, le    PID 值
    SESSION         eq, ne, gt, lt, ge, le    会话编号
    SESSIONNAME     eq, ne                    会话名称
    CPUTIME         eq, ne, gt, lt, ge, le    CPU 时间,格式为
                                              hh:mm:ss。
                                              hh - 小时,
                                              mm - 分钟,ss - 秒
    MEMUSAGE        eq, ne, gt, lt, ge, le    内存使用(以 KB 为单位)
    USERNAME        eq, ne                    用户名,格式为
                                              [域\]用户
    SERVICES        eq, ne                    服务名称
    WINDOWTITLE     eq, ne                    窗口标题
    模块         eq, ne                    DLL 名称

注意: 当查询远程计算机时,不支持 "WINDOWTITLE" 和 "STATUS"
      筛选器。

Examples:
    TASKLIST
    TASKLIST /M
    TASKLIST /V /FO CSV
    TASKLIST /SVC /FO LIST
    TASKLIST /APPS /FI "STATUS eq RUNNING"
    TASKLIST /M wbem*
    TASKLIST /S system /FO LIST
    TASKLIST /S system /U 域\用户名 /FO CSV /NH
    TASKLIST /S system /U username /P password /FO TABLE /NH
    TASKLIST /FI "USERNAME ne NT AUTHORITY\SYSTEM" /FI "STATUS eq running"


以前都没有留意过,一个小小的tasklist命令,居然有这么多参数, 这一次我把每一个参数都看了一下, 发现这里面有一个/m功能, 挺不错的.
他能显示指定模块被哪些进程占用. 比如我输入
tasklist /m gdi32.dll
就会显示如下:
[C] 纯文本查看 复制代码
映像名称                       PID 模块
========================= ======== ============================================
lsass.exe                      844 GDI32.dll
svchost.exe                   1008 gdi32.dll
fontdrvhost.exe                100 GDI32.dll
WUDFHost.exe                   576 GDI32.dll
svchost.exe                    928 GDI32.dll
winlogon.exe                  1104 GDI32.dll
fontdrvhost.exe               1156 GDI32.dll
dwm.exe                       1252 gdi32.dll
svchost.exe                   1308 GDI32.dll
svchost.exe                   1384 GDI32.dll
svchost.exe                   1392 GDI32.dll
svchost.exe                   1612 GDI32.dll
svchost.exe                   1620 GDI32.dll
svchost.exe                   1692 GDI32.dll
svchost.exe                   1792 GDI32.dll
svchost.exe                   1800 GDI32.dll
svchost.exe                   1840 GDI32.dll
svchost.exe                   1876 GDI32.dll
svchost.exe                   1884 GDI32.dll
svchost.exe                   1936 GDI32.dll
svchost.exe                    776 GDI32.dll

结果很多,我只复制了一部分.

这个功能真的太好用了, 我是经常用的, 就比如有些恶心的程序,不带卸载的, 你得手动删除, 往往再删到最后一个模块的时候, 总会提示无法删除, 但是又不告诉你是哪个进程在使用.
这个时候,我都是用调试器附加上去看, 或者用xuetr之类的三方工具去查看某个模块,到底被哪个进程占用了.
PS:后来用了新系统(WIN7及以上)后,发现系统自带的 perfmon 也能显示, 我就经常会用  perfmon /res 命令, 然后在关联的句柄中输入模块名来查看被哪个进程占用了.但是这个方法我印象中,也有失效的情况.
而且不能显示所有模块,就是感觉不舒服.
现在好了,再查看被占用的模块, 就直接用tasklist /m xxx.dll就行了.

如果只能通过DLL反查调用的EXE,不能通过EXE查看所有的模块那肯定不行, 只要 tasklist /m 不加模块名, 就能显示所有进程使用的模块. 效果如下:
[C] 纯文本查看 复制代码
D:\硬件电路设计\固件提取\相关论文\针对ECDSA随机数位长噪声泄漏的点阵攻击_Atmel_AT90SC>tasklist /m

映像名称                       PID 模块
========================= ======== ============================================
System Idle Process              0 暂缺
System                           4 暂缺
Registry                       136 暂缺
smss.exe                       424 暂缺
csrss.exe                      668 暂缺
wininit.exe                    764 暂缺
csrss.exe                      772 暂缺
services.exe                   836 暂缺
lsass.exe                      844 ntdll.dll, KERNEL32.DLL, KERNELBASE.dll,
                                   RPCRT4.dll, lsasrv.dll, msvcrt.dll,
                                   WS2_32.dll, SspiCli.dll, sechost.dll,
                                   WLDAP32.dll, ucrtbase.dll, MSASN1.dll,
                                   samsrv.dll, bcrypt.dll, CRYPT32.dll,
                                   ncrypt.dll, NTASN1.dll, Wldp.dll,
                                   combase.dll, bcryptPrimitives.dll,
                                   WINTRUST.dll, msprivs.DLL, netprovfw.dll,
                                   JOINUTIL.DLL, negoexts.DLL, CRYPTSP.dll,
                                   CRYPTBASE.dll, kerberos.DLL,
                                   KerbClientShared.dll, cryptdll.dll,
                                   mswsock.dll, msv1_0.DLL, NtlmShared.dll,
                                   netlogon.DLL, powrprof.dll, gmsaclient.dll,
                                   advapi32.dll, USERENV.dll, profapi.dll,
                                   netutils.dll, DNSAPI.dll, NSI.dll,
                                   IPHLPAPI.DLL, tspkg.DLL, pku2u.DLL,
                                   cloudAP.DLL, MicrosoftAccountCloudAP.dll,
                                   DPAPI.DLL, rsaenh.dll, wdigest.DLL,
                                   schannel.DLL, efslsaext.dll, shcore.dll,
                                   dpapisrv.dll, SspiSrv.dll, KDCPW.DLL,
                                   scecli.DLL, winsta.dll, ncryptsslp.dll,
                                   ncryptprov.dll, dssenh.dll, gpapi.dll,
                                   mskeyprotect.dll, keyiso.dll, wevtapi.dll,
                                   msvcp_win.dll, SecureTimeAggregator.dll,
                                   DSROLE.dll, kernel.appcore.dll,
                                   ngcpopkeysrv.dll, OLEAUT32.dll, PCPKsp.dll,
                                   ntmarta.dll, tbs.dll, imagehlp.dll,
                                   cryptnet.dll, AUTHZ.dll, vaultsvc.dll,
                                   efssvc.dll, EFSCORE.dll, WINHTTP.dll,
                                   EFSUTIL.dll, iertutil.dll, edpauditapi.dll,
                                   tdh.dll, mintdh.dll, efsext.dll,
                                   SHELL32.dll, cfgmgr32.dll,
                                   windows.storage.dll, shlwapi.dll,
                                   GDI32.dll, gdi32full.dll, USER32.dll,
                                   win32u.dll, DUI70.dll, IMM32.DLL,
                                   usermgrcli.dll, wtsapi32.dll, cryptngc.dll,
                                   feclient.dll, policymanager.dll,
                                   msvcp110_win.dll, secur32.dll,
                                   logoncli.dll, WINNSI.DLL, dhcpcsvc6.DLL,
                                   dhcpcsvc.DLL, webio.dll, certpoleng.dll,
                                   wkscli.dll
svchost.exe                    980 ntdll.dll, KERNEL32.DLL, KERNELBASE.dll,
                                   sechost.dll, RPCRT4.dll, ucrtbase.dll,
                                   umpnpmgr.dll, msvcrt.dll, WLDP.DLL,
                                   combase.dll, bcryptPrimitives.dll,
                                   CRYPT32.dll, MSASN1.dll, WINTRUST.dll
svchost.exe                   1008 ntdll.dll, KERNEL32.DLL, KERNELBASE.dll,
                                   sechost.dll, RPCRT4.dll, ucrtbase.dll,
                                   umpo.dll, WLDP.DLL, msvcrt.dll,
                                   combase.dll, bcryptPrimitives.dll,
                                   CRYPT32.dll, MSASN1.dll, WINTRUST.dll,
                                   slc.dll, sppc.dll, umpoext.dll,
                                   cfgmgr32.dll, powrprof.dll, shcore.dll,
                                   dxgi.dll, tdh.dll, win32u.dll, gdi32.dll,
                                   gdi32full.dll, msvcp_win.dll, USER32.dll,
                                   mintdh.dll, OLEAUT32.dll, IMM32.DLL,
                                   gpapi.dll, HID.DLL, windows.storage.dll,
                                   advapi32.dll, profapi.dll, shlwapi.dll,
                                   kernel.appcore.dll, rpcss.dll, SspiCli.dll,
                                   psmsrv.dll, bisrv.dll, DEVOBJ.dll,
                                   ntmarta.dll, EventAggregation.dll,
                                   ResourcePolicyClient.dll, RMCLIENT.dll,
                                   twinapi.appcore.dll, clbcatq.dll,
                                   psmserviceexthost.dll, IPHLPAPI.DLL,
                                   wer.dll, resourcepolicyserver.dll,
                                   CRYPTSP.dll, systemeventsbrokerserver.dll,
                                   BrokerLib.dll, DAB.dll, usermgrcli.dll,
                                   bi.dll, CRYPTBASE.DLL, rsaenh.dll,
                                   bcrypt.dll, wtsapi32.dll, WINSTA.dll,
                                   OneCoreUAPCommonProxyStub.dll, WINNSI.DLL,
                                   NSI.dll,
                                   Windows.Networking.BackgroundTransfer.Backgr
                                   oundManagerPolicy.dll,
                                   ACPBackgroundManagerPolicy.dll,
                                   BackgroundMediaPolicy.dll,
                                   SebBackgroundManagerPolicy.dll, ole32.dll,
                                   coml2.dll, OneCoreCommonProxyStub.dll,
                                   execmodelproxy.dll, execmodelclient.dll,
                                   CoreMessaging.dll, PROPSYS.dll,
                                   USERENV.dll, edputil.dll,
                                   policymanager.dll, msvcp110_win.dll,
                                   capauthz.dll, licensemanagerapi.dll,
                                   apphelp.dll, OnDemandBrokerClient.dll,
                                   DPAPI.dll, TaskSchdPS.dll
fontdrvhost.exe                100 ntdll.dll, KERNEL32.DLL, KERNELBASE.dll,
                                   ucrtbase.dll, GDI32.dll, gdi32full.dll,
                                   msvcp_win.dll, USER32.dll, win32u.dll,
                                   IMM32.DLL

同样我只截取了部分

这里大家应该能发现一个问题,就是这个命令是会显示所有的进程, 200多个进程,就会列举200多个进程对应的模块. 显示数据非常多,如果我只想看某个指定进程的所用到的模块该怎么办呢?
我试过 tasklist /m | find "winhex.exe"
[C] 纯文本查看 复制代码
D:\硬件电路设计\固件提取\相关论文\针对ECDSA随机数位长噪声泄漏的点阵攻击_Atmel_AT90SC> tasklist /m | find /i "winhex.exe"
winhex.exe                     912 ntdll.dll, wow64.dll, wow64win.dll,

这样子只能显示一行, 显示不全, 得用 /fi 参数. 这样就能行了, 完整的命令如下:
[C] 纯文本查看 复制代码
D:\硬件电路设计\固件提取\相关论文\针对ECDSA随机数位长噪声泄漏的点阵攻击_Atmel_AT90SC>tasklist /m /fi "IMAGENAME eq winhex.exe"

映像名称                       PID 模块
========================= ======== ============================================
winhex.exe                     912 ntdll.dll, wow64.dll, wow64win.dll,
                                   wow64cpu.dll

D:\硬件电路设计\固件提取\相关论文\针对ECDSA随机数位长噪声泄漏的点阵攻击_Atmel_AT90SC>

这样就能查看指定进程的模块了. tasklist 还支持导出csv,是真方便啊. 用 /fo 命令就行了  最终效果如下图:

导出CSV

导出CSV


tasklist除了可以通过进程名查找, 也能通过PID查找, 具体的看帮助吧, 我一般还是更习惯用进程名查找, 除非是多进程的.
tasklist还支持远程访问的, 这些对我来说没什么用,就没看了, 大家有兴趣的自己试试.
回复

使用道具 举报

游客
回复
您需要登录后才可以回帖 登录 | 注册

QQ|Archiver|手机版| CpuDbg x96

GMT, 2026-6-21 11:32 , Processed in 0.015625 second(s), 20 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表