Bonjour je me demandais si il était possible et si il existait un exemple pour lire le contenu en byte d'un fichier .EXE et d'écrire ce contenu en sortie dans un nouveau .EXE ?
Je pense que avec WriteData et ReadData sa peut être possible mais ?
Lecture et écriture d'un fichier .EXE
Re: Lecture et écriture d'un fichier .EXE
Bien sur , tu as résumé les 2 fonctions qu'il te faut.
- falsam
- Messages : 7324
- Inscription : dim. 22/août/2010 15:24
- Localisation : IDF (Yvelines)
- Contact :
Re: Lecture et écriture d'un fichier .EXE
Sujet presque traité dans deux autres topics. Un code exemple sans oublié la règle des 33% minimum (Merci Denis & Nico)
Code : Tout sélectionner
Enumeration
#FileName
EndEnumeration
FileName.s = "TonFichier.exe"
;Lecture et mémorisation
If ReadFile(#FileName, FileName)
Length = Lof(#FileName)
*MemoryID = AllocateMemory(Length)
If *MemoryID
ReadData(#FileName, *MemoryID, Length)
*OutputBuffer=AllocateMemory(MemorySize(*MemoryID) * 1.35)
Base64Encoder(*MemoryID, MemorySize(*MemoryID), *OutputBuffer, MemorySize(*OutputBuffer))
EndIf
CloseFile(#FileName)
EndIf
;Ecriture
If CreateFile(#FileName, "test.exe")
WriteData(#FileName, *MemoryID, Length)
CloseFile(#FileName)
EndIf
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Re: Lecture et écriture d'un fichier .EXE
c'est quoi cette règle des 33% ?
pat
pat
- falsam
- Messages : 7324
- Inscription : dim. 22/août/2010 15:24
- Localisation : IDF (Yvelines)
- Contact :
Re: Lecture et écriture d'un fichier .EXE
Il y a quelques jours j'ai eu pas mal de souci de crash aléatoire dans un code lors de l’exécution de Base64Decoder() conjointement avec AllocateMemory().Patrick88 a écrit :c'est quoi cette règle des 33% ?
L'aide consacré à Base64Decoder() recommande de faire un tampon légèrement plus grand, par exemple 30%, pour éviter les débordements.
Quand je sais que je vais utiliser Base64Decoder(), l'alloue systématiquement 35% de plus à la zone mémoire contigüe.
Code : Tout sélectionner
*OutputBuffer=AllocateMemory(MemorySize(*MemoryID) * 1.35)
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Re: Lecture et écriture d'un fichier .EXE
Tu n'est pas obligé de passé par le base64encoder()
Code : Tout sélectionner
FileName.s = "01.exe"
File = ReadFile(#PB_Any,FileName)
*buffer = AllocateMemory(Lof(File))
ReadData(File,*buffer,Lof(File))
CloseFile(File)
File = CreateFile(#PB_Any,"out.exe")
WriteData(File,*buffer,MemorySize(*buffer))