Page 1 sur 1

ReadDATA / WriteDATA oui mais pas pour EXE!!!! [Résolut]

Publié : sam. 14/juil./2007 13:08
par Fortix
Bonjours, j'ai un petit problème avec "writeData" ,j'arrive à reconstituer
des fichiers txt,js,vbs,bat,etc...... mais pas les exe, pourquoi? :?: ,je pense que ça a un rapport avec la structure PE des executables :!: ,dans ce cas exist il un moyen de reconstituer des exe tels quels??

voici mon exemple en cours (fait en 2min45 donc erreurs possibles!!)

Code : Tout sélectionner

PJ_$ = OpenFileRequester("Recherche Fichier",PJ_$, "Tous les fichiers (*.*)|*.*",0)
;tt=FileSize(PJ_$)

Path_$=GetPathPart(PJ_$)
File_$=GetFilePart(PJ_$)

ID_file = ReadFile(#PB_Any, PJ_$)

*MemoryID = AllocateMemory(FileSize(PJ_$))

If ReadData(ID_file, *MemoryID, MemorySize(*MemoryID))
    CreateFile(1,Path_$+"Remake "+File_$)
        WriteData(1,*MemoryID,MemoryStringLength(*MemoryID))
    CloseFile(1)
EndIf

si vous avez une reponse, je vous serais très reconnaissant :D

Publié : sam. 14/juil./2007 14:15
par Droopy
Surement du à la fonction MemoryStringLength() qui coupe après le chr(0)

Code : Tout sélectionner

PJ_$ = OpenFileRequester("Recherche Fichier",PJ_$, "Tous les fichiers (*.*)|*.*",0) 
Taille=FileSize(PJ_$) 

Path_$=GetPathPart(PJ_$) 
File_$=GetFilePart(PJ_$) 

ID_file = ReadFile(#PB_Any, PJ_$) 

*MemoryID = AllocateMemory(FileSize(PJ_$)) 

If ReadData(ID_file, *MemoryID, Taille) 
  CreateFile(1,Path_$+"Remake "+File_$) 
  WriteData(1,*MemoryID,Taille) 
  CloseFile(1) 
EndIf 

Publié : sam. 14/juil./2007 20:18
par Fortix
Effectivement, tu as raison Droopy, et dire que j'étais bloqué sur ça depuis plus de trois jours :x ,ça m'apprendra à vouloir toujours tous trouver par moi même :x :x :x :x ,en tous cas Merci beaucoups Droopy :lol: