cortico-world-pvz 0.1.2
Process injection and code patching
“Cortico World: the original PopCap Plants vs. Zombies as a semantic, event-driven World — x86 implant, named-pipe bridge, task queue with r…”
Source allocates and writes remote memory before starting a remote threadSource code for remote LoadLibrary injection
SHA-256ada0f9884ea8a262ba5b7ef9240ae0478b0781898603def4afd5ffe34c7c1ca9
Evidence
443:47… t address, const void* source,
444 size_t bytes, const wchar_t* operation) {
445 SIZE_T written = 0;
446 if (!WriteProcessMemory(process, reinterpret_cast<void*>(address), source, bytes, &written) ||
447 written != bytes) {
448 Fail(std::wstring(L"cannot write remote ") + operation, GetLastError());
⋯4 lines
681:17… HANDLE process, LPTHREAD_START_ROUTINE routine, void* argument,
682 const wchar_t* operation) {
683 HANDLE thread = CreateRemoteThread(process, nullptr, 0, routine, argument, 0, nullptr);
684 if (!thread) Fail(std::wstring(L"cannot start remote ") + operation, GetLastError());
685 const DWORD wait = WaitForSingleObject(thread, 15000);
686 if (wait != WAIT_OBJECT_0) {
687 const DWORD error = wait == WAIT_FAILE …
738:2… }
739}
740
741void* CopyRemote(HANDLE process, const void* source, size_t bytes) {
742 void* remote = VirtualAllocEx(process, nullptr, bytes, MEM_COMMIT | MEM_RESERVE, PAGE_READWRITE);
743 if (!remote) Fail(L"cannot allocate target memory", GetLastError());
744 SIZE_T written = 0;
745 if (!WriteProcessMemor …
881:71… ;
882 HMODULE kernel = GetModuleHandleW(L"kernel32.dll");
883 const FARPROC localLoadLibrary = kernel ? GetProcAddress(kernel, "LoadLibraryW") : nullptr;
884 if (!localLoadLibrary) Fail(L"cannot resolve LoadLibraryW");
885
⋯4 lines
1286:63… UERY_INFORMATION |
1287 PROCESS_VM_OPERATION | PROCESS_VM_WRITE | PROCESS_VM_READ;
1288 HANDLE process = OpenProcess(access, FALSE, options.pid);
1289 if (!process) Fail(L"cannot open target process", GetLastError());
1290 if (Utf8(options.creationTime) != ProcessCreationTime(process)) {
1291 Fail(L"target process creation identity does not match --creation-time");
1292 …
Showing the top 5 files — 7 more files (80 regions) not shown.
No evidence locations were recorded for this file. Raw result