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 : 10438
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....

{Delphi} ENREGISTREMENT DES DONNÉES DANS L'EXE
Alors rien de bien nouveau, comment écrire dans un Exe ? La méthode a déjà été montrée / démontrée ...

{Visual Basic, VB6, VB.NET, VB 2005} LA MEILLEURE SOLUTION POUR EMPÊCHER L'ÉCRITURE ET L'INFECTION DES VIRUS SUR LES CLÉS USB
L'idée de ce Script vient après avoir lu cet Article:"Create Fake Dummy File on USB Flash Drive to E...

{Visual Basic, VB6, VB.NET, VB 2005} 2COMBOBOX SAVE 1FICHIER .DAT
Enregistrement et lecture de 2 ComboBox d'un fichier .dat... sur que c’est pas la meilleure source m...

{C / C++ / C++.NET} C++ CONSOLE APPLI : GESTION CABINET MÉDICAL
Voila mon premier essai en Visual C++: Un mini projet POO en C++ (développé sous Ms Visual Studio 20...

{Javascript / DHTML} TELECHARGEMENT SANS RECHARGER LA PAGE
voila comment télécharger un fichier sur votre serveur sans devoir recharger la page en cours. en f...

{Visual Basic, VB6, VB.NET, VB 2005} UTILITAIRE DE SANITIZATION DES DISQUES DURS/FICHIERS (SUPPRESSION DE DONNÉES CONFIDENTIELLES)
Salut, Voici un code VB.Net pour effectuer la sanitization de disques dur et/ou fichiers. /!\ ...