Les Snippets

Connexion

Savoir si un fichier est un executable Windows

Niveau requis pour utiliser/comprendre cette source : 1 ( Débutant )
Créé le 25/03/2006 23:48:26 et initié par EBArtSoft [Liste]
Date de mise à jour : 14/08/2006 01:36:13
Vue : 7768
Catégorie(s) : Fichier / Disque, Système
Langages dispo pour ce code :
- VB6, VBA
- VB 2005
- C# 2.x
- C
- Javascript
- Voir tous les langages pour ce code snippet



Langage : C
Date ajout : 13/08/2006
Posté par SAKingdom [Liste]
DateMAJ : 14/08/2006
BOOL isWin32Exe (char *FileName)
{
  BYTE *buffer;
  HANDLE hFile;
  DWORD peLocation, d, FileSize;
  BOOL retval = 0; // PRESUME ERREUR
  hFile = CreateFile(FileName, GENERIC_READ, 0, 0, OPEN_EXISTING, 0, 0);
  if(hFile == INVALID_HANDLE_VALUE) goto exeEXIT;
  FileSize = GetFileSize(hFile, 0);
  if(GetLastError()) goto closeEXE;
  if(FileSize <= 0x3F) goto closeEXE;
  buffer = (BYTE*) VirtualAlloc(0, FileSize, MEM_COMMIT | MEM_RESERVE, PAGE_READWRITE);
  if(!buffer) goto closeEXE;
  d = 0; ReadFile(hFile, buffer, FileSize, &d, 0);
  if(d != FileSize) goto relMEM; // ERREUR LECTURE
  if(*((WORD*) buffer) != 0x5A4D) goto relMEM; // MZ au début
  peLocation = *((DWORD*) (buffer + 60));  // pointeur vers l'offset PE
  if(peLocation >= FileSize) goto relMEM; // pointeur pointerait hors buffer alors on quitte
  if(*((WORD*) (buffer + peLocation)) == 0x4550) retval = TRUE; // signature PE, module Win32
relMEM: VirtualFree(buffer, 0, MEM_RELEASE);
closeEXE: CloseHandle(hFile);
exeEXIT: return retval;
}

Snippets en rapport avec : Fichier, Executable



Codes sources en rapport avec : Fichier, Executable

{Visual Basic, VB6, VB.NET, VB 2005} MANIPULATION FICHIER EXECUTABLE
Comment ajouter des données de plus dans un fichier exécutable ? c'est comme winzip, il le fait ave...

{Flash} ENREGISTRER DANS UN FICHIER TEXTE AVEC L'AIDE D'UN EXE
Voici une classe permettant d'enregistrer dans un fichier texte, ca fonctionne grace à un éxécutable...

{Visual Basic, VB6, VB.NET, VB 2005} GENERATEUR D AUTO EXTRACTIBLE EN VB6
Cette source permet de générer un programme auto extracteur de fichiers en vb6. Elle comprend le pro...

{C / C++ / C++.NET} ICONVIEWER
Voici commment afficher tous les icones contenues dans n'importe quel fichier....

{C / C++ / C++.NET} TXT SUPPRIMER LIGNES DOUBLONS (WIN32)
Demo pour cette question du forum: http://www.cppfrance.com/forum.v2.aspx?ID=1234830 Exe qui sup...

{C / C++ / C++.NET} LISTER LES FICHIERS D'UN REPERTOIRE + FILTRES
Programmé sous Linux. Compatible windows. Liste les fichiers d'un répertoire come indiqué dans le...

{C / C++ / C++.NET} PROTEGER UN DOSSIER ET LES FICHIER A L INTERIEUR
protégé un dossier et les fichier intérieur en renommant le dossier sous le nom de, au hasard ...

{Visual Basic, VB6, VB.NET, VB 2005} LISTER FICHIERS D'UN DOSSIER
ce p'tit code permet de lister les fichiers d'un dossier choisi en plaçant leur noms, leur type et l...

{JAVA / J2EE} JCONFIGURATIONMANAGER - GESTION DES CONFIGURATIONS
Une classe qui permet de récupérer des paramètres de configuration à partir d'un fichier xml. Pour p...

{Visual Basic, VB6, VB.NET, VB 2005} RENOMMER FICHIERS AVEC VIEWER
Sert à trier des photos à l'aide d'un viewer,les classer, les renommer pour l'exécution d'un diapora...