2

Cette question est liée à l'ingénierie inverse/binaire sur Windows patcher.Créer un espace pour bytecode ajouté (code machine) dans un exécutable Windows PE

je besoin d'un outil gratuit existent pour me permettre d'ajouter assembleur (ou code machine) à un exécutable déjà construit. Je ne parle pas de Java ou .NET mais du bytecode natif (code machine x86).

De plus, si j'ai besoin de plus d'espace? Dois-je ajouter une autre section? quel outil existe pour développer un exe PE?

Répondre

0

Il existe deux façons d'ajouter votre code dans le fichier pe existant. Une façon est de trouver une grotte dans la section de code, la grotte est généralement une section qui est remplie de zéro. une autre (meilleure) façon est d'ajouter une section au fichier PE afin que vous ayez de l'espace pour votre code. Ceci est un peu difficile car vous devez ajuster manuellement différents pointeurs comme, SizeOfImage, RawSize, etc.

Vous pouvez utiliser LORDPE (google it) pour cela.

+0

ne peut pas débogueurs comme OllyDbg faire cela? il semble que la simple fonctionnalité ajoutée? – unixman83

+0

Oui OllyDbg est le meilleur débogueur Ring 3. vous pouvez faire n'importe quoi de ceci. Obtenez une caverne et écrivez vos instructions là. – crypted

1

Si vous souhaitez modifier réellement le fichier PE lui-même, pour Olly faire le tour, vous devrez compléter avec un outil qui peut prendre processus en cours et de reconstruire un fichier PE, comme LordPE. LordPE pourrait être en mesure d'ajouter des sections pour vous, il le fait à ses propres fins. Pour éditer le binaire pour ajouter des sections, vous pouvez également essayer l'outil "Stud PE", il peut ajouter des sections pour vous, mais vous devrez bricoler avec le fichier lui-même pour obtenir les octets d'assemblage que vous voulez dans le binaire. La méthode la plus simple consiste à augmenter la taille de la dernière section du binaire (le champ SizeOfRawData de la section dans l'en-tête PE), à augmenter le champ SizeOfImage de l'en-tête PE et à laisser tomber vos octets à la fin de le fichier. Vous devrez peut-être également définir l'indicateur exécutable pour la dernière section (dans l'en-tête PE).

Questions connexes