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 :
- Suspension du processus à l'aide de CreateProcess avec l'indicateur CREATE_SUSPENDED.
- Récupération du contexte du thread à l'aide de GetThreadContext, avec l'ImageBaseAddress du PEB stockée dans [EBX 8].
- Comparaison des adresses de base et des tailles d'image du processus suspendu et de l'EXE en mémoire.
- Écrit de l'EXE en mémoire dans la mémoire du processus suspendu à l'aide de WriteProcessMemory si les conditions le permettent.
- 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.
- Corriger l'adresse de base et le point d'entrée dans le contexte du thread.
- 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!