chromium的沙箱tricks

#include <Windows.h>

#include <stdio.h>

extern "C" int value = 0;

int main(int argc, char** argv[]) {
  if (argc == 2) { //
    printf("value of target: %d\n", value);
    return 0;
  }

  value = 0xdd;
  wchar_t sz_exe[MAX_PATH] = {};
  ::GetModuleFileName(nullptr, sz_exe, MAX_PATH);

  ::lstrcatW(sz_exe, L" --target");

  STARTUPINFO startup = {};
  startup.cb = sizeof(STARTUPINFO);

  PROCESS_INFORMATION process_info = {};
  ::CreateProcess(nullptr, sz_exe, nullptr, nullptr, false, CREATE_SUSPENDED,
                  nullptr, nullptr, &startup, &process_info);  

  //
  SIZE_T written = 0;
  ::WriteProcessMemory(process_info.hProcess, &value, &value, sizeof(int),
                       &written);

  ::ResumeThread(process_info.hThread);

  ::WaitForSingleObject(process_info.hProcess, INFINITE);

  return 0;
}
posted @ 2025-03-28 10:13  吱吱的笔记  阅读(32)  评论(0)    收藏  举报