Hostile 92% javascript Download

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

Evidence

WriteProcessMemory API reference in source lines 443–452
443:47t 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
CreateRemoteThread API reference lines 681–687
681:17HANDLE 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
Remote-process VirtualAllocEx allocation lines 738–745
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
References LoadLibraryW in source lines 881–889
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
Open process handle lines 1286–1292
1286:63UERY_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

Keyboard shortcuts on this page: j for the next sample, k for the previous one, x to go back to the feed, d to download the original bytes, r to re-queue the sample for analysis.