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 : 9920
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} EDITER UN FICHIER BIT PAR BIT
Bonjout, J'ai récemment eu besoin d'éditer un fichier bit à bit mais ne trouvant pas de moyen de ...

{PHP} CHARGER DES DONNÉES DEPUIS UN FICHIER TXT DANS UNE BASE DE DONNÉE
le titre dit tout dejàs ce script utilise une base de données Mysql les requêtes pour la création ...

{Visual Basic, VB6, VB.NET, VB 2005} INSERER TOUT TYPE DE FICHIERS DANS ORACLE EN VB.NET
Ce petit code permet d'ajouter tout type de fichiers dans oracle et par la suite de les récupérer, l...

{C / C++ / C++.NET} FICHIER ALBUM MUSICAL
.............................................................................creer un fichier conten...

{PHP} CLASSE SIMPLE DE GESTION DE FICHIERS
Bonjour, Dans le cadre d'un projet lié à mon lycée, j'ai dû développer un certain nombre de class...

{Visual Basic, VB6, VB.NET, VB 2005} CAPTURE ET ENREGISTREMENT D'UNE IMAGE DEPUIS UNE WEBCAM
Ce code permet de capturer une photo à partir d'un flux WebCam avec la technologie ActiveX. Inspiré ...