• 2833阅读
  • 7回复

[转]C++获取进程启动参数 [复制链接]

上一主题 下一主题
离线iokey
 

发帖
15
金钱
854
威望
759
贡献值
0
诚信值
0
社区警告
0
纠纷记录
0
冻结资金
0
保证金
0
只看楼主 倒序阅读 楼主   发表于: 2019-08-14
原文地址 G\h8j*o  
lD2>`s 5  
  1. #include "stdafx.h"
  2. #include <Windows.h>
  3. #include <stdio.h>
  4. #define Process_BasicInformation 0
  5. typedef struct
  6. {
  7.         USHORT Length;
  8.         USHORT MaximumLength;
  9.         PWSTR  Buffer;
  10. } UNICODE_STRING, *PUNICODE_STRING;
  11. typedef struct
  12. {
  13.         ULONG          AllocationSize;
  14.         ULONG          ActualSize;
  15.         ULONG          Flags;
  16.         ULONG          Unknown1;
  17.         UNICODE_STRING Unknown2;
  18.         HANDLE         InputHandle;
  19.         HANDLE         OutputHandle;
  20.         HANDLE         ErrorHandle;
  21.         UNICODE_STRING CurrentDirectory;
  22.         HANDLE         CurrentDirectoryHandle;
  23.         UNICODE_STRING SearchPaths;
  24.         UNICODE_STRING ApplicationName;
  25.         UNICODE_STRING CommandLine;
  26.         PVOID          EnvironmentBlock;
  27.         ULONG          Unknown[9];
  28.         UNICODE_STRING Unknown3;
  29.         UNICODE_STRING Unknown4;
  30.         UNICODE_STRING Unknown5;
  31.         UNICODE_STRING Unknown6;
  32. } PROCESS_PARAMETERS, *PPROCESS_PARAMETERS;
  33. typedef struct
  34. {
  35.         ULONG               AllocationSize;
  36.         ULONG               Unknown1;
  37.         HINSTANCE           ProcessHinstance;
  38.         PVOID               ListDlls;
  39.         PPROCESS_PARAMETERS ProcessParameters;
  40.         ULONG               Unknown2;
  41.         HANDLE              Heap;
  42. } PEB, *PPEB;
  43. typedef struct
  44. {
  45.         DWORD ExitStatus;
  46.         PPEB  PebBaseAddress;
  47.         DWORD AffinityMask;
  48.         DWORD BasePriority;
  49.         ULONG UniqueProcessId;
  50.         ULONG InheritedFromUniqueProcessId;
  51. }   PROCESS_BASIC_INFORMATION;
  52. typedef LONG (WINAPI *PROCNTQSIP)(HANDLE,UINT,PVOID,ULONG,PULONG);
  53. PROCNTQSIP NtQueryInformationProcess;
  54. BOOL GetProcessCmdLine(DWORD dwPId,__out LPTSTR lpString)
  55. {
  56.         HANDLE                    hProcess;
  57.         PROCESS_BASIC_INFORMATION pbi;
  58.         PEB                       Peb;
  59.         PROCESS_PARAMETERS        ProcParam;
  60.         DWORD                     dwDummy;
  61.         DWORD                     dwSize;
  62.         LPVOID                    lpAddress;
  63.         BOOL RetValue = FALSE;
  64.         //得到进程句柄
  65.         hProcess = OpenProcess(PROCESS_QUERY_INFORMATION|PROCESS_VM_READ,FALSE,dwPId);
  66.         if (!hProcess)
  67.                 goto Ret;
  68.         //获取信息
  69.         if (0!=NtQueryInformationProcess(hProcess,0,(PVOID)&pbi,sizeof(PROCESS_BASIC_INFORMATION),NULL))
  70.                 goto Ret;
  71.         if (!ReadProcessMemory(hProcess,pbi.PebBaseAddress,&Peb,sizeof(PEB),&dwDummy))
  72.                 goto Ret;
  73.         if (!ReadProcessMemory(hProcess,Peb.ProcessParameters,&ProcParam,sizeof(PROCESS_PARAMETERS),&dwDummy))
  74.                 goto Ret;
  75.         lpAddress = ProcParam.CommandLine.Buffer;
  76.         dwSize = ProcParam.CommandLine.Length;
  77.         RetValue = ReadProcessMemory( hProcess,lpAddress,(LPVOID)lpString,dwSize,&dwDummy );
  78. Ret:
  79.         if(hProcess)
  80.                 CloseHandle (hProcess);
  81.         return RetValue;
  82. }
  83. int _tmain(int argc, _TCHAR* argv[])
  84. {
  85.         NtQueryInformationProcess = (PROCNTQSIP)GetProcAddress(GetModuleHandle(_T("ntdll")),
  86.                 "NtQueryInformationProcess");
  87.         if (!NtQueryInformationProcess)
  88.         {
  89.                 //MessageBox(0,"无法定位NtQueryInformationProcess,程序退出","启动错误",MB_ICONERROR);
  90.                 return -1;
  91.         }
  92.         TCHAR str[255] = {0};
  93.         GetProcessCmdLine(2816, str);
  94.         return 0;
  95. }
js Tb0  
`xe[\Z 2  
YlOYgr^  
+Cx~4zEq  
sw*k(i  
7-Rn{"5  
PS:你是进来看代码的,还是看美女的? Y%qhgzz?/  
广海社区提醒您:
1.忘记账号、密码、安全问题等常见站务问题,请查看论坛左上角站点帮助
2.请理性对待商业信息,如有交易,强烈建议您选择广海中介进行交易
3.欢迎购买广海社区广告位,感谢您的支持,报价及位置详见广海社区广告服务
4.特殊会员售价50元,积分(金钱和威望)无限,更多权限,欢迎到广海淘宝购买
5.广海社区唯一域名ghoffice.cc,唯一QQ190959022,其他均为假冒,谨防上当受骗
6.如您被骗,请查看广海社区举报中心,按照要求和流程提交举报材料,未经核实的举报帖子将一律删除
7.如您发现违规违法内容,欢迎点击帖子右下角举报按钮进行举报,也可到站务办公版块匿名发帖举报
免责声明
文中内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。 私下交易造成损失的,本站概不负责。
 
离线baohongyu

发帖
38
金钱
614
威望
614
贡献值
0
诚信值
0
社区警告
0
纠纷记录
0
冻结资金
0
保证金
0
只看该作者 沙发   发表于: 2020-07-20
111111111
离线baohongyu

发帖
38
金钱
614
威望
614
贡献值
0
诚信值
0
社区警告
0
纠纷记录
0
冻结资金
0
保证金
0
只看该作者 板凳   发表于: 2020-07-20
2222222
离线baohongyu

发帖
38
金钱
614
威望
614
贡献值
0
诚信值
0
社区警告
0
纠纷记录
0
冻结资金
0
保证金
0
只看该作者 地板   发表于: 2020-07-20
33333
离线q630107501

发帖
20
金钱
9820
威望
9820
贡献值
0
诚信值
0
社区警告
0
纠纷记录
0
冻结资金
0
保证金
0
只看该作者 4楼  发表于: 2020-12-03
dddddddddddddddddd
离线q630107501

发帖
20
金钱
9820
威望
9820
贡献值
0
诚信值
0
社区警告
0
纠纷记录
0
冻结资金
0
保证金
0
只看该作者 5楼  发表于: 2020-12-03
ddddddddddddddddddd
离线xiaoxin

发帖
24
金钱
16
威望
0
贡献值
0
诚信值
0
社区警告
0
纠纷记录
0
冻结资金
0
保证金
0
只看该作者 6楼  发表于: 2021-10-06
dadadad
离线xiaoxin

发帖
24
金钱
16
威望
0
贡献值
0
诚信值
0
社区警告
0
纠纷记录
0
冻结资金
0
保证金
0
只看该作者 7楼  发表于: 2021-10-06
ddddddddddddddddddd
快速回复
限150 字节
批量上传需要先选择文件,再选择上传
 
上一个 下一个