嘎嘎,关于PID(包括服务也就是隐藏进程的PID)的获取,这里提出一种新的解决办法哈
因为是公布一个方法,所以没几分可给啦,先进来的有分哦
用DOS命令:TASKLIST,这个是新增加的一个命令行工具。
1、不带参数可以显示出任务管理器里面所有的任务名和对应PID
对应VB语句(把结果输出到C:\1.TXT)
shell "cmd.exe /c tasklist >> c:\1.txt",vbhide
2、使用TASKLIST /SVC 可以显示出所有提供服务的程序名和对应PID
对应VB语句(把结果输出到C:\2.TXT)
shell "cmd.exe /c tasklist /svc >> c:\2.txt",vbhide
嘿嘿。。把这个文本打开并读回去就可以了,分割符好象是空格啦,用http://community.csdn.net/Expert/topic/4841/4841813.xml?temp=.1735803里面所提的SPLIT函数分离很好,呵呵,这个函数才学明白怎么用...嘎嘎
以下是该命令行的具体使用方法(以下是用DOS命令tasklist /? >> c:\tl_rme.txt生成的)
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] 列出所有其中符合指定模式名
的 DLL 模块的所有任务。
如果没有指定模块名,则
显示每个任务加载的所有模块。
/SVC 显示每个进程中的服务。
/V 指定要显示详述
信息。
/FI filter 显示一系列符合筛选器指定的标准
的任务。
/FO format 指定输出格式。
有效值: "TABLE"、"LIST"、"CSV"。
/NH 指定栏标头不应该在
输出中显示。
只对 "TABLE" 和 "CSV" 格式有效。
/? 显示帮助/用法。
筛选器:
筛选器名 有效操作符 有效值
----------- --------------- --------------
STATUS eq, ne 正在运行 | 没有响应
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 用户名,格式为 [domain\]user
SERVICES eq, ne 服务名
WINDOWTITLE eq, ne 窗口标题
MODULES eq, ne DLL 名
例如:
TASKLIST
TASKLIST /M
TASKLIST /V
TASKLIST /SVC
TASKLIST /M wbem*
TASKLIST /S system /FO LIST
TASKLIST /S system /U domain\username /FO CSV /NH
TASKLIST /S system /U username /P password /FO TABLE /NH
TASKLIST /FI "USERNAME ne NT AUTHORITY\SYSTEM" /FI "STATUS eq running"
问题点数:36、回复次数:20Top
1 楼boiciy(喜欢去哪去哪)回复于 2006-07-03 13:00:17 得分 1
学习!Top
2 楼zcsor(偶业余的虽然星星了,但是水平依然是非常业余的。)回复于 2006-07-03 13:00:58 得分 0
看看这个函数,似乎挺强悍的,,好象看见了USER PASSWORD什么什么的哦.....嘿嘿Top
3 楼boiciy(喜欢去哪去哪)回复于 2006-07-03 13:01:55 得分 1
比调用API好用!支持!能不用API尽量不用!Top
4 楼zcsor(偶业余的虽然星星了,但是水平依然是非常业余的。)回复于 2006-07-03 13:31:51 得分 0
我倒。。呵呵。。。为什么不用呢。。
。。。。。
呵呵,,用API也能取到PID的,进程结构里面PROCESSID就是了。不过确实挺烦人的,没办法的时候只能借助API了,当时写任务管理器就是用API写的,麻烦死我了,后来改用WMI就简单多了。呵呵,后来再想想,任务管理器都用DOS命令就成了,呵呵。。。。Top
5 楼boiciy(喜欢去哪去哪)回复于 2006-07-03 16:19:28 得分 1
宗旨就是能用基本的东西,就不用花哨还可能花钱的控件
能用文本的东西,就不要用XML、注册表之类的时尚复杂的东西
初学者不要动不动API
编程这种苦差事能不干,就不干!Top
6 楼aperyx(Fly)回复于 2006-07-03 16:39:59 得分 1
又學到了一招Top
7 楼zcsor(偶业余的虽然星星了,但是水平依然是非常业余的。)回复于 2006-07-03 17:36:01 得分 0
TO:aspower_(楼主做人要厚道 完事记得给分!我知道楼下就欣赏偶的分) ( ) 信誉:100
呵呵,不懂就学才是好孩子,来,给你棒棒糖
Top
8 楼lsftest()回复于 2006-07-03 17:47:07 得分 5
1.适用范围比较窄,好像2000下就是另外一个相似命令tlist。
2.输出成文本文件再打开读取比较麻烦,绕了一个圈,不如试试用管道直接读。。Top
9 楼zcsor(偶业余的虽然星星了,但是水平依然是非常业余的。)回复于 2006-07-06 12:28:14 得分 0
哈,楼上有道理
主要是提供一个方法啦,呵呵,最近DOS都生疏了,翻了翻WINDOWS的帮助无意中翻出来的,和大家共享一下了。
其实用WMI可以解决,代码也比较少
楼上能否给一个用API获取进程SID的,另开贴Top
10 楼Modest(塞北雪貂)·(偶最欣赏楼主的分)回复于 2006-07-06 12:42:18 得分 3
這種方法,效率是問題。Top
11 楼vbman2003(家人)回复于 2006-07-06 12:59:49 得分 4
哎,一个蛮有用的命令
刚才试了一下,居然发现自己机器上有一个进程管理器中没显示的进程,研究一下
Top
12 楼boiciy(喜欢去哪去哪)回复于 2006-07-06 13:24:46 得分 2
回头再看一下贴。在windows里找TASKLIST
怎么搞的?没搜到?这个程序在哪里呢?Top
13 楼lsftest()回复于 2006-07-06 16:25:06 得分 4
得到sid????这个一般用途不太大吧。。
如你所说“其实用WMI可以解决,代码也比较少”。。可以的话就用wmi吧,简单省事。。
一定要用api,试试 WTS APIs:ProcessIdToSessionId。。。。。。
http://www.microsoft.com/msj/1099/terminal/terminal.aspx
未经测试。。。。。。。
Top
14 楼kmlxk(xiaoKKKK)回复于 2006-07-06 16:31:38 得分 5
EPROCESS结构里面有个sessionid,不知道用来干嘛的,o_OTop
15 楼zcsor(偶业余的虽然星星了,但是水平依然是非常业余的。)回复于 2006-07-07 21:39:10 得分 0
呵呵,多谢了。。直接是高手如云啊,
获得SID就是看人家任务管理器里有,自己就痒痒,呵呵,总想学学,那次问一位高手说用WMI可以解决,就用了WMI写了一些程序,不过毕竟WMI里面东西还不多(虽然很强悍,很多东西API弄很麻烦,它却很简单),就想用多学点API,找了好几天都没看见一个有价值的示例,哪怕是C++,DELPHI的也行啊,结果没有,嘿嘿。。
过两天结这个帖子,2位楼上到时去新开的帖子给分。。。Top
16 楼tokimemo(紫水晶)回复于 2006-07-08 18:53:55 得分 3
很老的东西了
那个,不知道大家用vb做网络的多么?
找局域网中的计算机名用什么语句
如果你上网找的话,发现那些代码都是老长的
还老有问题
如果你用net view > netname.txt
就一一帮你列举出来了.
不过告诉一下楼主
2k以下系统就要小心了Top
17 楼LordSimon(lordsimon@x.cn)回复于 2006-07-09 02:01:02 得分 2
xp以后才有tasklistTop
18 楼barenx()回复于 2006-07-10 13:29:16 得分 3
这个没用,一些rookit修改gdi或者hook api立即让你找不到北,
要枚举全局表,vb好想不行
还有一些系统快照的api也不行
原理都是一样了,
具体的想要看隐藏进程可以看看icesword的 代码
可以借鉴但vb实现不了
c的可以
Top
19 楼zcsor(偶业余的虽然星星了,但是水平依然是非常业余的。)回复于 2006-07-11 13:53:51 得分 0
呵呵,也未必的,前几天就回了一个用VB获取隐藏进程的代码,可以在XP、2K、03以上操作系统中运行。
好了,把这个帖子结了,再开一个加分
另TO:tokimemo(紫水晶) ( )
那个代码我手头就有用API实现的,前几天写了一个用WMI的,都可以列举,API的没怎么详细看,里面参数实在是不少,WMI的是自己正在学,就写了一些,其实啊,这个帖子真的是仅仅给新手提供一个简单方法,没想到啊,这砖一抛,因来这么多高手,嘿嘿,有点自惭形秽了Top




