gpt4 book ai didi

delphi - 我想创建一个远程线程,然后我想读取他的结果

转载 作者:行者123 更新时间:2023-12-03 15:32:56 24 4
gpt4 key购买 nike

在下面的代码中,我想读取由 CreateRemoteThread 创建的 LoadLibrayA 的结果。

我将非常感谢您的帮助,因为这似乎是不可能的,

也许结果有空可以及时阅读,任何建议都会愉快地接受

procedure InjectDLL(hProcess : Cardinal; ADllPath : String);
var
lSize : Cardinal;

hThread : Cardinal;
szLibPath : array [0..MAX_PATH] of char;

pLibRemote : Pointer;
hLibModule : DWORD ;

hKernel32 : HMODULE;
begin
hKernel32 := GetModuleHandle('Kernel32.dll');

FillMemory(@szLibPath, sizeOf(szLibPath), 0);
CopyMemory(@szLibPath, Pointer(ADllPath), length(ADllPath));

pLibRemote :=
VirtualAllocEx(
hProcess,
nil,
sizeOf(szLibPath),
MEM_COMMIT,
PAGE_READWRITE
);

try
WriteProcessMemory(
hProcess,
pLibRemote,
@szLibPath,
sizeOf(szLibPath),
lSize
);

hThread :=
CreateRemoteThread(
hProcess,
nil,
0,
GetProcAddress(hKernel32, 'LoadLibraryA'),
pLibRemote,
0,
lSize
);

try
WaitForSingleObject(hThread, INFINITE);

//------------> HERE I WANT TO READ LoadLibraryA RESULT

GetExitCodeThread(hThread, hLibModule);
finally
// Clean up
CloseHandle(hThread);
end;

finally
VirtualFreeEx(hProcess, pLibRemote, sizeof(szLibPath), MEM_RELEASE);
end;

最佳答案

您的线程过程是LoadLibrary。线程过程的返回值是线程的退出代码。因此,调用LoadLibrary的返回值可以通过调用GetExitCodeThread来读取。您已经这样做了。

关于delphi - 我想创建一个远程线程,然后我想读取他的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16948884/

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