goodboy111
驱动牛犊
驱动牛犊
  • 注册日期2007-08-10
  • 最后登录2009-09-08
  • 粉丝0
  • 关注0
  • 积分30分
  • 威望4点
  • 贡献值0点
  • 好评度3点
  • 原创分0分
  • 专家分0分
阅读:3944回复:5

获取所有进程的映像路径以及命令行参数

楼主#
更多 发布于:2007-08-10 23:13
我们知道,如果获取本进程命令行的话,可以通过调用 GetCommandLine 获得, GetCommandLine 返回的是LPTSTR类型的数据,该返回值便是本进程命令行的内存首地址。那么,我们可以让远程执行 GetCommandLine 这个函数,然后获取远程进程中这个函数的返回值,再通过 ReadProcessMemory 把远程进程的命令行读出来就得到我们想要的了。
具体实现步骤如下:
1、通过 GetProcAddress 取得 GetCommandLineA 的地址。
2、用 CreateRemoteThread 启动远程线程,使远程进程执行 GetCommandLineA 。
3、用 WaitForSingleObject 等待远程线程结束。
4、用 GetExitCodeThread 取得远程线程退出代码,其实就是远程进程中 GetCommandLineA 函数的返回值,这是远程进程命令行的首地址。
5、通过 GetProcAddress 取得 lstrlenA 的地址。
6、用 CreateRemoteThread 启动远程线程,使远程进程执行 lstrlenA 。
7、用 WaitForSingleObject 等待远程线程结束。
8、用 GetExitCodeThread 取得远程线程退出代码,其实就是远程进程中 lstrlenA 函数的返回值,这是远程进程命令行的文本长度。
9、使用 ReadProcessMemory 把远程进程的命令行读取出来。


[代码性质] VC完整应用程序代码
附件名称/大小 下载次数 最后更新
GetProcA.rar (295KB)  193 2007-08-10 23:13
游客

返回顶部