阅读:4016回复:5
获取所有进程的映像路径以及命令行参数
我们知道,如果获取本进程命令行的话,可以通过调用 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完整应用程序代码 |
|
|
沙发#
发布于:2007-08-11 11:07
ring3层~确实...
|
|
|
板凳#
发布于:2007-08-25 09:11
用不着这样吧,这样也太狠了,会被人当成木马的。
|
|
地板#
发布于:2007-09-30 11:22
大家不要下载那附件了,是病毒.
虽然代码是不病毒,但里面编译好的EXE 文件是病毒.. |
|
地下室#
发布于:2007-10-03 22:31
楼上的是金山的吧
|
|
|
5楼#
发布于:2007-10-11 10:01
楼猪提供的EXE应该是病毒!
中毒了咯! |
|