繁体   English   中英

隐藏命令行参数

[英]Hiding Command line arguments

我正在调用exe来对设备进行某些操作,Exe需要密码才能连接到设备来执行操作。

问题:密码在命令行列下的任务管理器中可见。

我尝试通过以下命令从PROCESS_BASIC_INFORMATION中删除命令行参数详细信息:

HANDLE hProcess = OpenProcess (PROCESS_QUERY_INFORMATION | PROCESS_VM_READ,
                               FALSE, GetCurrentProcessId());
PROCESS_BASIC_INFORMATION pbi;
ULONG ReturnLength;
PFN_NT_QUERY_INFORMATION_PROCESS pfnNtQueryInformationProcess =
    (PFN_NT_QUERY_INFORMATION_PROCESS) GetProcAddress (
        GetModuleHandle(TEXT("ntdll.dll")), "NtQueryInformationProcess");
NTSTATUS status = pfnNtQueryInformationProcess (
    hProcess, ProcessBasicInformation,
    (PVOID)&pbi, sizeof(pbi), &ReturnLength);
// remove full information about my command line
pbi.PebBaseAddress->ProcessParameters->CommandLine.Buffer = NULL;
pbi.PebBaseAddress->ProcessParameters->CommandLine.Length = 0;

但命令行信息仍会出现在任务管理器中。

你能帮助我理解任务管理器如何阅读命令行参数以及如何更改它?

谢谢,Pooja

不确定这是否有帮助但我必须编写一个通过命令行与SQL接口并且需要隐藏我们的数据库密码的应用程序,而它不是100%它确实适用于我需要的东西。 在命令行参数中,我用465个空格开始参数; 当我第一次想出这个想法时,这是一个随机数,命令行不关心空间并且字符限制很高; 另一方面,任务管理器没有高字符限制,所以它只显示exe和一堆空格,就是这样。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM