gpt4 book ai didi

windows - CreateProcess Hook 以添加 CommandLine

转载 作者:可可西里 更新时间:2023-11-01 11:50:03 31 4
gpt4 key购买 nike

我有一个项目正在向 Chrome 浏览器添加一些特定的标志(命令行),问题是我通过创建一个新的 Chrome 快捷方式来执行此操作,其中包含我想要执行的标志。

在过去的几天里,这个解决方案变得过于肤浅,我被要求做一些更“深入”的事情。查看 Windows 注册表,我没有找到任何好的解决方案来总是在有人运行 Chrome 时添加此标志,所以我开始考虑 Hook CreateProcess进入资源管理器,并检查即将运行的进程是否是 Chrome,然后我在 lpCommandLine 属性中添加标志。

我知道 hook into explorer 是一个非常“侵入性”的解决方案,但这变得很有帮助,因为我在这个项目上有一些其他的成就,而 hook 将帮助我完成所有这些。

我的钩子(Hook)工作了,我尝试了很多方法在找到 chrome 时添加命令行,但没有成功......现在(我尝试了至少 8 种不同的解决方案)我的绕行功能是:

function InterceptCreateProcess(lpApplicationName: PChar;
lpCommandLine: PChar;
lpProcessAttributes, lpThreadAttributes: PSecurityAttributes;
bInheritHandles: BOOL;
dwCreationFlags: DWORD;
lpEnvironment: Pointer;
lpCurrentDirectory: PChar;
const lpStartupInfo: STARTUPINFO;
var lpProcessInformation: PROCESS_INFORMATION): BOOL; stdcall;
var
Cmd: string;
begin
Result:= CreateProcessNext(lpApplicationName,
lpCommandLine,
lpProcessAttributes,
lpThreadAttributes,
bInheritHandles,
dwCreationFlags,
lpEnvironment,
lpCurrentDirectory,
lpStartupInfo,
lpProcessInformation);
if (POS(Chrome, UpperCase(String(lpApplicationName))) > 0) then
begin
Cmd:= ' --show-fps-counter';
lpCommandLine:= PChar(WideString(lpCommandLine + Cmd));
ShowMessage(lpCommandLine);
end;
end;

“--show-fps-counter”是我尝试添加但未成功的命令行。

我的Delphi版本是XE4。

最佳答案

好吧,这是一件很明显的事情……我需要在调用 CreateProcessNext(原始函数)之前添加参数!所以,简单地做:

 if (POS(Chrome, UpperCase(String(lpApplicationName))) > 0) then
begin
lpCommandLine:= PChar(lpCommandLine + ' --show-fps-counter');
end;
Result:= CreateProcessNext(lpApplicationName,
lpCommandLine,
lpProcessAttributes,
lpThreadAttributes,
bInheritHandles,
dwCreationFlags,
lpEnvironment,
lpCurrentDirectory,
lpStartupInfo,
lpProcessInformation);

有效...请注意,我只是颠倒了更改 lpCommandLine 的顺序。感谢所有参与者,我仍然会考虑这里所说的内容。

关于windows - CreateProcess Hook 以添加 CommandLine,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32100773/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com