A mon avis, il est essentiel de bien maitriser 3 choses :
- Comme tu le dis MetalDwarf, le format des exécutable PE (Win32), c'est à dire, bien comprendre sa structure (en-tête et les différentes sections : code, data, pile, ...)
- La mémoire virtuelle (cependant, il n'y a pas à s'inquiéter au niveau des adressages, car c'est le VMM Virutal Memory Manadger de Windows qui gère la résolution d'adressage entre l'espace d'adressage virtuel du processus et la mémoire physique, c'est à dire la RAM ou le fichier de SWAP). Il faut juste se baser sur l'adresse ImageBase contenue dans l'en-tête de l'exécutable.
- Les processus Windows (pour lancer l'exécutable en fournissant l'entry point) afin que le processeur puisse exécuter le code.
Il faut faire ce que fait l'API CreateProcess (elle crée un process à partir d'un fichier exécutable). C'est pas de la tarte, mais c'est tout à fait réalisable...
C'est excellent pour apprendre pleins de choses sur Windows, à un nivreau proche du noyau, car on va faire ce que les API ne nous permettent pas de faire... Il faudra peut être faire un peu d'assembleur au moment de passer l'entry point au processus actif Windows. :(
Jock
|