VBGood网站全文搜索 Google

搜索VBGood全站网页(全文搜索)

VB爱好者乐园(VBGood)

 找回密码
 立即注册
搜索
查看: 5748|回复: 7

[转帖] 转:根据PID得到进程的命令行

[复制链接]
 楼主| 发表于 2008-6-16 12:47:25 | 显示全部楼层 |阅读模式
根据PID得到进程的命令行,个人觉得比较有用。

转自TZWSOHO的BLOG:
Option Explicit
Private Const PROCESS_VM_READ As Long = (&H10)
Private Declare Function FreeLibrary Lib "kernel32.dll" (ByVal hLibModule As Long) As Long
Private Declare Function LoadLibrary Lib "kernel32.dll" Alias "LoadLibraryA" (ByVal lpLibFileName As String) As Long
Private Declare Function GetProcAddress Lib "kernel32.dll" (ByVal hModule As Long, ByVal lpProcName As String) As Long
Private Declare Function OpenProcess Lib "kernel32.dll" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long
Private Declare Function ReadProcessMemory Lib "kernel32.dll" (ByVal hProcess As Long, ByVal lpBaseAddress As Any, ByRef lpBuffer As Any, ByVal nSize As Long, ByRef lpNumberOfBytesWritten As Any) As Long


Public Function GetRemoteCmdLine(ByVal PID As Long) As String '返回指定进程的命令行
'成功返回命令行,失败返回空字符串
Dim hDll As Long, hProcess As Long, APIPtr As Long
Dim CmdLinePtr As Long, lRet As Long, lRet2 As Long
Dim CmdLineStr As String, CmdLineByte(511) As Byte
hDll = LoadLibrary("kernel32")
'取得GetCommandLineA地址 + 1
'kernel32.dll中的反汇编代码(Win2003版):
'mov eax,dword ptr [7C88B5D4]
'机器码:
'A1D4B5887C
'+1跳过mov指令,后面4个字节就是指向命令行的指针
'这个地址在每个进程里都是一样的,可以直接使用
APIPtr = GetProcAddress(hDll, "GetCommandLineA") + 1
Call FreeLibrary(hDll)
hProcess = OpenProcess(PROCESS_VM_READ, 0, PID) '打开进程
If hProcess = 0 Then Exit Function
If ReadProcessMemory(hProcess, APIPtr, CmdLinePtr, 4, lRet2) <> 1 Then Exit Function '得到7C88B5D4
If ReadProcessMemory(hProcess, CmdLinePtr, CmdLinePtr, 4, lRet2) <> 1 Then Exit Function '再取个指针(竟
'是两个指针-_-!)
If ReadProcessMemory(hProcess, CmdLinePtr, CmdLineByte(0), 512, lRet2) <> 1 Then Exit Function '拉一块内'存过来
CmdLineStr = StrConv(CmdLineByte, vbUnicode) '处理一下,可以输出了
CmdLineStr = Left$(CmdLineStr, InStr(1, CmdLineStr, vbNullChar) - 1)
GetRemoteCmdLine = CmdLineStr
End Function
发表于 2008-6-16 14:00:05 | 显示全部楼层
QQ的拿不到~
回复 支持 反对

使用道具 举报

发表于 2008-6-16 17:28:42 | 显示全部楼层
注入API获取command
回复 支持 反对

使用道具 举报

发表于 2008-8-14 20:19:44 | 显示全部楼层
看不懂
回复 支持 反对

使用道具 举报

发表于 2008-8-14 21:32:30 | 显示全部楼层
好久有些根本就无法注入吧
回复 支持 反对

使用道具 举报

发表于 2008-8-16 09:05:26 | 显示全部楼层
原帖由 snyga 于 2008-6-16 14:00 发表
QQ的拿不到~

瑞星就能拿到QQ的
回复 支持 反对

使用道具 举报

发表于 2008-8-16 09:28:29 | 显示全部楼层
我看到那个地址下是一个 call 调用
怎么就被当成字符串指针用了呢
回复 支持 反对

使用道具 举报

发表于 2011-4-19 11:29:57 | 显示全部楼层
svchost.exe 的
C:\WINDOWS\system32\svchost -k rpcss
这个看不到..是空的
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

文字版|手机版|小黑屋|VBGood  

GMT+8, 2022-7-3 00:53

VB爱好者乐园(VBGood)
快速回复 返回顶部 返回列表