J'utilise C# pour lire un fichier exe et injecter un code pour afficher une boîte de message lorsque l'exe fonctionne de sorte que le code que je utilise est le suivant:Convertir automatiquement l'adresse virtuelle en adresse mémoire?
6A 00 //push 0
68 OXxxxx //push Address of Message Title
68 OXxxxx //push Address of Message Body
6A 00 //push 0
FF 15 OXxxxx //Call Address of User32.MessageBoxA
E9 OXxxxx // jmp to old entry point
toutes les adresses que je utilise sont des adresses virtuelles, mais le nouvel exe ne peut pas fonctionner, je pense que les adresses devraient traduire en adresse mémoire (par Windows Loader), mais comment je peux le faire ??.
merci
2 questions: 1 - ce qui est (E8 04 00 00 00 // appelez $ + 5 + 2 31 32 33 00 // '123', 0 6A 00 // push 0) 2 - comment ajouter des entrées pour les instructions push et call dans la table de relocalisation – Radi
@radi 1. - c'est un code d'assemblage. Vous devriez l'apprendre, avant d'essayer d'infecter PE. 2. - lire les spécifications de format PE. – Abyx
Petite correction: Le 'call' n'a pas besoin d'une entrée de relocalisation, ce qu'il doit faire est se référer à la table d'importation. –