论坛登陆 注册 教程 笑话 影视 投稿
首页 | 页界资讯 | 网络应用 | 软件应用 | 组网技术 | 网络原理 | 聊天通讯 | 网管知识 | 帮助
笑话 | 操作系统 | 注 册 表 | 编程开发 | 数 据 库 | 媒体动画 | 网页设计 | 图形图象 | 地图
论坛 | 网络安全 | 安全防范 | 服 务 器 | 硬件学堂 | 路由技术 | 搜索研究 | 站长经验 | 投稿
影院 | 教育频道 | 特色专题 | 精文荟萃 | 注 册 码 | 论坛社区 | 网站地图 | 广告服务 | 旧版
设为首页 加入收藏
当前位置:首页>>文章>>网络应用>>电脑技巧>>正文

摆脱DLL地狱的困扰之获取进程的命令行

www.xker.com 作者:NorthTibet 来源:vckbase 加入日期:2006-3-3 10:53:29

【问题提问、论坛交流】
方法 描述
GetName 以NULL作为参数,调用 GetModuleBaseName ,最后去掉扩展名 “.EXE”
GetFileName 以NULL作为参数,调用 GetModuleFileNameEx
GetMainWindowHandle 参见GetMainWindowHandle
GetMainWindowTitle  
GetParentProcessID 用ProcessBasicInformation作为参数调用NtQueryInformationProcess
GetKERNELHandleCount 用ProcessHandleCount作为参数调用NtQueryInformationProcess
GetUSERHandleCount 用GR_USEROBJECTS作为参数调用GetGuiResources
GetGDIHandleCount 用GR_GDIOBJECTS作为参数调用GetGuiResources
GetWorkingSet 调用GetProcessMemoryInfo
GetCmdLine 参见GetProcessCmdLine
GetOwner 参见GetProcessOwner的细节
GetSessionID ProcessIdToSessionId (参见对快速用户转换的讨论部分——Windows XP的一个新特性)
GetModuleList CModuleList是一个对EnumProcessModules 和GetModuleFileNameEx的打包类
GetChildrenCount 以及子进程清单 要获取某个进程的子进程列表,目前还没这样的API(即便有也未公开)可供使用。但是,因为某个进程的父进程是已知的,所以将某个进程加到其父进程的子进程列表中不难(参见SetChildrenList的实现)

  上表列出的方法中有一个是 GetCmdLine,这个函数返回进程的命令行。实际上,它并不是真正地返回命令行,而是返回进程启动时接收的参数。例如,如果你安装了微软Power Toys中的TweakUI程序(可以在vckbase站点下载),当你在Windows的资源管理器中的任何文件夹上单击右键,则在弹出的上下文菜单中都会有一个"Run Command Prompt Here"菜单项。执行这个菜单命令后,会弹出命令提示窗口,并且所点击的目录为当前工作目录。(相关文章:摆脱DLL地狱的困扰之WTS API )

  但是你怎么知道cmd.exe被调用的时候用的是什么参数呢?那么在微软的调试工具(可以在vckbase站点下载)中有一个命令行程序TLIST.EXE,用它可以知道cmd.exe运行的参数,TLIST.EXE是个控制台程序,其输出的信息包括运行进程清单以及命令行,如果用进程ID作为参数调用此程序,例如用cmd.exe的进程ID作为参数载C:盘根目录(C:\)运行TLIST:

C:\>tlist 632
632 CMD.EXE C:\WINNT\System32\cmd.exe - tlist 632
CWD: C:\
CmdLine: C:\WINNT\System32\cmd.exe /k cd "C:\"
VirtualSize: 13408 KB PeakVirtualSize: 13412 KB
WorkingSetSize: 948 KB PeakWorkingSetSize: 952 KB
NumberOfThreads: 1
968 Win32StartAddr:0x4ad1a420 LastErr:0x000000cb State:Waiting
5.0.2195.1600 shp 0x4ad00000 cmd.exe
5.0.2195.1600 shp 0x77f80000 ntdll.dll
5.0.2195.1600 shp 0x77e80000 KERNEL32.dll
5.0.2195.1600 shp 0x77e10000 USER32.dll
5.0.2195.1340 shp 0x77f40000 GDI32.DLL
5.0.2195.1600 shp 0x77db0000 ADVAPI32.dll
5.0.2195.1615 shp 0x77d40000 RPCRT4.DLL
6.1.8637.0 shp 0x78000000 MSVCRT.dll

  第三行的参数/k cd "C:\"用于外壳调用cmd.exe。如果指定了/k,则cmd.exe执行指定的命令,但是不退出。由于这时调用的应用程序,所以在你构造的工具中这样使用行不通的,必须通过API函数调用。

本新闻共2页,当前在第1页  1  2  

编辑:xker.com

上一篇:用Regsvr32快速找回丢失的显示桌面(图)
下一篇:没有了
关闭窗口】【技术交流】【收藏此页
相关文章
·Windows 系统进程分析·进程与端口的映射·解析Windows XP操作系统进程
·系统中有几个svchost进程是正常的?
推荐文章 最新文章 热门文章
·SOHO族安全建议-保证上传服务器安全
·服务器安全配置精华技巧
·缔造神话 十大怪招助你200%提升迅雷速
·有备无患 WinXP下软件数据大迁移
·流量牵引技术在防DOS攻击中的应用
·解决w3wp.exe内存占用问题
·IIS网站防盗链下载的解决方案
·怎样处理Java最终化的内存保留问题
·轮番上阵:Linux下查找漏洞的N种兵器
·毕业论文范文
·毕业论文格式
·计算机毕业论文
·用VC获取本机IP地址列表的方法
·用KC 短信免费发 电话免费打
·Windows 2003服务器安全配置终极技巧
·摆脱DLL地狱的困扰之获取进程的命令行
·SOHO族安全建议-保证上传服务器安全
·服务器安全配置精华技巧
·教你如何巧妙设定匿名FTP的安全
·如何在Win XP中重新安装或修复IE 6
·如何正确看待ALEXA排名
·实践DIV+CSS网页布局入门
·高手亮招 清除系统垃圾完全手册 
·小心!这些系统服务可能不老实
·缔造神话 十大怪招助你200%提升迅雷速
·用Regsvr32快速找回丢失的显示桌面(图
·FreeBSD在VM下时钟的同步
·FreeBSD服务器上彻底禁用 sendmail
·SSH到FreeBSD支持中文显示和输入
·FreeBSD 5.0的强制访问控制机制(二)
·个人简历表格
·免费代理IP(每日更新)
·QQ密码丢失后能做的事情:快速找回密码
·Norton AntiVirus 2006 注册码(激活
·豪杰超级解霸V9.1正版注册码
·WinRAR 3.51 注册码
·系统优化 专题
·找回QQ密码的注意事项 
·史上最强QQ个人档案资料欣赏
·Ajax技术开发指南
·求职简历封皮
·最经典的黑客入门教材
·ACDSee v8.0注册码
·怎样查找对方的IP地址
·应届毕业生求职信
评论

设为首页 - 版权声明 - 广告服务 - 关于我们 - 联系我们 - 友情连接
Copyright © 2003-2006 xker.com All rights reserved.小新技术网 合作广告QQ:12231446
本页浏览次数: