ReadProcessMemory无效句柄

时间:2018-05-04 21:43:24

标签: python-3.x winapi

我正在尝试使用Python从另一个进程读取值。

我遇到了this answer,虽然它似乎不起作用。

我的代码:

public function share(Request $request, $company_id, $id)
{
    $document = Document::find($id);
    $user = $request['user'];
    $document->users()->attach($user);
    flash('Document has been shared!');
    return back();
}

$document->users()-detach($user)似乎返回6,这意味着句柄无效。

虽然from ctypes import * from ctypes.wintypes import * OpenProcess = windll.kernel32.OpenProcess ReadProcessMemory = windll.kernel32.ReadProcessMemory CloseHandle = windll.kernel32.CloseHandle PROCESS_ALL_ACCESS = 0x1F0FFF pid = 4580 address = 0x04782FF8 buffer = c_uint() bufferSize = sizeof(buffer) bytesRead = c_ulong(0) processHandle = OpenProcess(PROCESS_ALL_ACCESS, False, pid) if ReadProcessMemory(processHandle, address, buffer, bufferSize, byref(bytesRead)): print("Success:", buffer) else: print("Failed.") CloseHandle(processHandle) 返回非零值,但GetLastError()没有显示任何相关内容。

我已经尝试编辑OpenProcess()中传递的第一个参数(我做了0x0010),但仍然没有结果。

1 个答案:

答案 0 :(得分:-1)

进程ID是dec,而不是hex,这打破了一些事情。

我还必须用缓冲区的create_string_buffer(4)替换c_uint()。

现在似乎工作正常!