Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bolehkah CreateProcess Melaksanakan EXE Terus dari Memori Tanpa Menyimpannya ke Fail?

Bolehkah CreateProcess Melaksanakan EXE Terus dari Memori Tanpa Menyimpannya ke Fail?

Susan Sarandon
Susan Sarandonasal
2024-11-02 13:05:02395semak imbas

Can CreateProcess Execute an EXE Directly from Memory Without Saving It to a File?

CreateProcess from Memory Buffer

Soalan:

Bolehkah seseorang menggunakan CreateProcess pada kandungan EXE yang disimpan dalam penimbal memori, tanpa menulisnya pada fail terlebih dahulu?

Latar Belakang:

Dalam percubaan untuk memintas kelewatan DRM dalam menampal ranap permainan, kaedah dicari untuk menyahsulit dan melancarkan EXE sebenar dari dalam EXE luaran.

Jawapan:

CreateProcess sememangnya boleh digunakan pada penimbal memori yang mengandungi EXE, membenarkan untuk pelaksanaannya tanpa penulisan fail terlebih dahulu. Langkah-langkahnya melibatkan:

  1. Menggantung proses menggunakan CreateProcess dengan bendera CREATE_SUSPENDED.
  2. Mendapatkan semula konteks urutan menggunakan GetThreadContext, dengan ImageBaseAddress PEB disimpan di [EBX 8].
  3. Membandingkan alamat asas dan saiz imej proses yang digantung dan EXE dalam memori.
  4. Menulis EXE dalam memori ke dalam memori proses yang digantung menggunakan WriteProcessMemory jika keadaan membenarkan.
  5. Nyahpetakan imej asal, memperuntukkan memori dalam proses yang digantung dan menulis EXE dalam memori jika keadaan tidak membenarkan.
  6. Menampal alamat asas dan titik masuk dalam konteks urutan.
  7. Menyambung semula proses digantung menggunakan ResumeThread.

Atas ialah kandungan terperinci Bolehkah CreateProcess Melaksanakan EXE Terus dari Memori Tanpa Menyimpannya ke Fail?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn