Maison  >  Article  >  développement back-end  >  CreateProcess peut-il exécuter un EXE directement à partir de la mémoire sans l'enregistrer dans un fichier ?

CreateProcess peut-il exécuter un EXE directement à partir de la mémoire sans l'enregistrer dans un fichier ?

Susan Sarandon
Susan Sarandonoriginal
2024-11-02 13:05:02480parcourir

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

CreateProcess à partir du tampon mémoire

Question :

Peut-on invoquer CreateProcess sur le contenu de un EXE stocké dans une mémoire tampon, sans l'écrire au préalable dans un fichier ?

Contexte :

Dans le but de contourner les retards DRM lors de la correction des plantages du jeu, une méthode est recherché pour décrypter et lancer un véritable EXE à partir d'un EXE externe.

Réponse :

CreateProcess peut en effet être invoqué sur un tampon mémoire contenant un EXE, permettant son exécution sans écriture préalable du fichier. Les étapes impliquent :

  1. Suspension du processus à l'aide de CreateProcess avec l'indicateur CREATE_SUSPENDED.
  2. Récupération du contexte du thread à l'aide de GetThreadContext, avec l'ImageBaseAddress du PEB stockée dans [EBX 8].
  3. Comparaison des adresses de base et des tailles d'image du processus suspendu et de l'EXE en mémoire.
  4. Écrit de l'EXE en mémoire dans la mémoire du processus suspendu à l'aide de WriteProcessMemory si les conditions le permettent.
  5. Démapping l'image d'origine, en allouant de la mémoire dans le processus suspendu et en écrivant l'EXE en mémoire si les conditions ne le permettent pas.
  6. Corriger l'adresse de base et le point d'entrée dans le contexte du thread.
  7. Reprendre le processus suspendu à l'aide de ResumeThread.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn