Programmes d'analyse de fichiers exécutables. Quelle est l'extension de fichier PE ? Autres causes de problèmes lors de l'ouverture de fichiers PE

Article de revue copié (effrontément) de fiks-ru.net

PEID 0,95


PEID- l'analyseur de fichiers exécutables le plus populaire. La dernière version est la 0.95 de novembre 2008. L'analyse est effectuée sur la base de données interne et externe des signatures, il existe plusieurs niveaux d'analyse de rapide à profond, vous pouvez traiter des répertoires entiers. La fonctionnalité est facilement étendue par des plugins externes, les signatures sont stockées dans un fichier texte séparé, vous pouvez donc facilement y ajouter les vôtres. Un programme spécial a été écrit pour fonctionner avec la base de données de signatures. PEIDSO. Les développeurs de plugins reçoivent un SDK avec des exemples dans différents langages de programmation et une description de l'API. Le programme hors site a ordonné à la campagne de vivre longtemps, mais dans tous les cas, il est préférable de la télécharger ici, car sinon vous devriez assembler vous-même l'ensemble nécessaire de plug-ins et de signatures, mais ici il est convenablement équipé.

Le manuel PEiD peut être lu

DiE 0,65 Rus



Détectez-le facilement (DiE), développement domestique, j'ai traduit la dernière version 0.65 en russe à loisir (si vous n'aimez pas la traduction, jetez le fichier DiE.RU hors du répertoire - ce sera Eng). Un émulateur a été ajouté à la version 0.65. Semblable à PEiD, mais l'accent est mis sur ses propres analyseurs heuristiques, et seulement ensuite sur l'analyse de signature. Le programme fournit également quelques fonctions utiles : visualisation des importations, des sections, visualisation d'un fichier en mode hexadécimal, un désassembleur, visualisation des principales caractéristiques de PE, obtention d'un hachage MD5 et CRC-32. La fonctionnalité est étendue avec des plugins.
Programme hors site

DiE (détecter facilement) 0,70 alpha 12

Mise à jour DiE (Detect it Easy) jusqu'à la version 0.70. Le programme a été complètement réécrit - avant c'était en Borland Delphi, et maintenant en Microsoft Visual C++. À cet égard, je considère que sa traduction ultérieure en russe est inutile, car vous ne pouvez plus donner de vidage, et cela ne vaut probablement pas la peine de "tourmenter" les chaînes codées en dur dans un éditeur HEX. Le hors site du programme est désormais localisé. Vous pouvez télécharger la nouvelle version directement depuis le site hors site (je ne l'ai pas ajoutée à l'archive).
PS Merci à un ami de exelab.ru pour avoir fourni des informations sur la nouvelle version.

ExeInfo PE 0.0.3.2

ExeInfo PEégalement très similaire à PEiD, dernière version 0.0.3.2 datée du 11 septembre 2012. Signatures intégrées (667 pièces). Le programme a une fonctionnalité intéressante : si le protecteur est défini, il donne des informations sur l'outil qui peut être utilisé pour essayer de le décompresser. Pour les débutants, ces informations seront très utiles. Les outils utiles incluent également un extracteur d'archives à partir de modules SFX, la recherche de chaînes de texte, les appels de registre, l'ajustement OEP, etc. Vous pouvez télécharger hors site. Vous pouvez également télécharger hors site un adaptateur plug-in pour PEiD et DiE, qui vous permet de numériser des fichiers via ExeInfo PE.

Balayage PE 3.31

Balayage Pe par snyper, dernière version 3.31, hors site a cessé d'exister. Avec une taille minimale, le programme a un grand potentiel. Il s'agit d'un analyseur heuristique et de signature de fichiers exécutables, décompresseur de certains packers, recherche OEP dynamique. En plus des outils ci-dessus, Pe-Scan dispose d'un analyseur probabiliste unique pour les packers et les chiffreurs de fichiers inconnus (bouton "adv.scan"). Il montre en termes de pourcentage lequel des emballeurs connus de lui est similaire à l'inconnu enquêté. Aide à identifier les packers UPX courants traités avec divers brouilleurs et modificateurs.

Goujon PE 2.6.1.0

Goujon PE, dernière version 2.6.1.0 datée du 2 juin 2012. Un très bon programme, en plus d'analyser le contenu du fichier, affiche de nombreuses autres informations utiles : sections, ressources, tables d'importation et d'exportation, en-tête DOS. L'éditeur HEX intégré à Stud_PE met en évidence les champs sélectionnés de l'en-tête du fichier, ce qui est très pratique lors de l'analyse de sa structure. Il existe également un gestionnaire de processus avec un dumper intégré. La fonctionnalité est étendue à l'aide de plugins, et les plugins de PEiD conviennent. Une description de l'API et du SDK pour les développeurs est incluse dans le package.

Identificateur de format de fichier 1.4

Identificateur de format de fichier- un développement très réussi de la société antivirus chinoise SUCOP, la dernière version est la 1.4 de 2008. L'analyseur fonctionne sur des signatures externes au format PEiD, mais la valeur principale est le déballeur statique intégré des packers simples. Le déballeur fonctionne sur la technologie d'une machine virtuelle, c'est-à-dire qu'aucun code n'est réellement exécuté, ce qui est particulièrement important lors de la recherche de logiciels malveillants. D'autres outils utiles du programme incluent un reconstructeur d'importation, un reconstructeur de fichier exécutable, un calculateur de décalage et un extracteur de superposition. Si vous comprenez le chinois, vous pouvez le télécharger hors site, mais je vous recommande de prendre cet assemblage dans les archives à la fin de l'article. Tout ce qui est superflu y a été supprimé, le moteur de déballage a été remplacé par un moteur commercial avec des fonctions améliorées et une base de données de signatures externe a été ajoutée. Il est recommandé d'avoir toujours à portée de main l'identificateur de format de fichier.

Identifiant de protection 0.6.4.1

Identifiant de protection, dernière version 0.6.4.0 Pas un mauvais programme principalement utilisé pour analyser les disques CD/DVD protégés. De plus, il définit environ 350 packers, dongles, installateurs de fichiers exécutables. Il ne nécessite pas de fichiers supplémentaires pour fonctionner, mais il n'est pas possible d'ajouter vos propres signatures. Dans les versions récentes, l'auteur a remarqué une mauvaise tendance à pousser un tas de déchets inutiles dans l'utilitaire, comme un indicateur de charge système, un gestionnaire de processus, un optimiseur de mémoire et d'autres excès.

Détecteur RDG Packer v.0.7.0


RDG Packer Detector, dernière version 0.7.0 datée du 27 décembre 2012. Une bonne idée, mais une implémentation monstrueuse, un autre exemple de ce en quoi les développeurs ne devraient PAS transformer leurs programmes. Si vous comprenez l'interface laide, en plus de l'analyseur, vous obtiendrez quelques outils supplémentaires comme OEP Detector, Cryptographic Analyzer, qui ne fonctionnaient pas pour moi normalement. La dernière version a été ajoutée à l'archive.

FastScanner v.3.0

Scanner rapide par l'équipe AT4RE cracker, la dernière version 3.0 Scanner fonctionne avec les signatures de PEiD, prend en charge les plugins. Belle interface, mais le résultat de la vérification des fichiers est souvent erroné. Parmi les fonctionnalités utiles, il existe un bon éditeur PE - des fichiers sous la forme d'un plugin.

Détecteur de bits 2.8.5.6

Détecteur de bits- un nouveau développement, également de l'équipe Arab cracker Under SEH Team, la dernière version publique est la 2.8.5.6 de juin 2012. En plus de la fonction de détermination du compilateur et du packer, il embarque plusieurs outils utiles et peu utiles.

Explorateur MiTeC EXE

Explorateur MiTeC EXE- un petit visualiseur gratuit de la structure des fichiers exécutables. Affiche les informations de l'en-tête de fichier, de la table d'importation et d'exportation, de TLS, de la version du fichier, des formulaires Delphi, de l'arborescence des ressources avec la possibilité d'afficher des images et des boîtes de dialogue sous une forme pratique et de les enregistrer sur le disque, et il existe également une fonction de recherche pratique pour le texte chaînes dans le fichier.

L'analyseur EXE ultime de Hellspawn 0.6

L'analyseur EXE ultime de Hellspawn- Prototype d'analyseur DiE. Il sera plus utile pour une collection que pour un usage pratique, car il est très désuet. Affiche les principales caractéristiques d'un fichier EXE, détecte de manière heuristique certains packers et protecteurs.

fichier inspecteur XL

fichier inspecteur XL de ViPER - un ancien analyseur de 2001, n'a pas été mis à jour depuis lors. Détecte de manière heuristique les packers et les compilateurs de fichiers exécutables, affiche les données de base de l'en-tête PE, de la section, des tables d'importation et d'exportation. En plus de l'analyseur, il comprend plusieurs outils utiles, par exemple, l'ajout d'une section vide à un fichier ou de nouvelles fonctions à importer, un calculateur RVA to Offset, le changement de la date et de l'heure d'un fichier, la redirection OEP, un gestionnaire de processus, et d'autres. Prend en charge les plugins et l'interface multilingue. Il est utile non seulement pour la collecte, mais aussi pour une utilisation pratique.

SCANIT 1.85


SCANiT- analyseur de fichiers de l'équipe de cracker tPORT. La fonctionnalité est petite, elle analyse le fichier à l'aide des signatures de PE Tools, elle prend en charge les plug-ins d'un format incompréhensible.

PE Pirate 0.51


Pirate PE de kosfiz - un détecteur de protecteurs, compilateurs, packers pouvant compresser des fichiers PE. Écrit en assembleur, peut scanner des répertoires, lire l'entropie des fichiers. Souvent erroné, malgré les assurances d'une précision de frappe de 95 à 99 %.

GAPE 1.01

bâiller- analyseur de l'équipe cracker TLG. Prend en charge les signatures de PE Tools et les plugins de PEiD. Parmi les outils, il y a un calculateur d'entropie de travail et un calculateur de déplacement de courbe dans le fichier. Utile pour la collecte.

PéStudio 7.95


J'ai longtemps voulu écrire sur le programme PéStudio, mais toutes les mains n'ont pas atteint. Le hors site du programme a déménagé ==> ICI<== версии там последнее время идут одна за одной, просто обновлять не успеваю - уже 7.95 натикало. Было немного времени, глянул у проги ресурсы на предмет локализации. В самом исполняемом файле можно разве что менюшку перекинуть, да и то смысла почти нет - на русском всего несколько слов появится (значит кириллицу до сих пор поддерживает), а вот все остальное у ней походу большей частью в файле PeStudioIndicators.xml mensonges, et quand j'essaie de les changer en russe, j'ai généralement toutes les valeurs, par exemple, immédiatement disparu même sans kryakozyabry. Bien sûr, vous pouvez toujours être plus intelligent - comme changer l'encodage du notoire utf-8 en dur windows-1251 et réenregistrer le document d'unicode en ANSI (vous pouvez utiliser un bloc-notes Windows ordinaire), mais hélas, il n'y a pas de temps pour expériences, et cela n'aura aucun sens - les versions sautent maintenant une par une. En bref, toute personne intéressée peut essayer, mais l'anglais ne m'interfère pas non plus dans ce programme - et donc tout semble être visible.

InspectExe


InspectExe ajoute des onglets supplémentaires à la fenêtre des propriétés des fichiers exécutables pour afficher les sections, importer la table, les ressources, le manifeste et d'autres données.

DNiD 1.0

DNiD- un programme similaire à PEiD, mais axé sur les applications .NET. Vous permet de définir des dizaines de versions différentes de compilateurs, protecteurs, packers et obfuscateurs de programmes .NET.

Scanner à rayons A 2.0.2.2


Scanner à rayons A, le projet n'a pas été mis à jour depuis longtemps, la dernière version est la 2.0.2.2 de 2005. Le programme est destiné uniquement à la numérisation de CD/DVD et définit plusieurs dizaines de protections contre la copie de disque. Définit également certains packers et protecteurs pour les fichiers exécutables.

ClonyXXL 2.0.1.5

Clony XXL- un utilitaire qui détermine le type de protection du CD. Comme le programme précédent, il n'a pas été mis à jour depuis longtemps, la dernière version est la 2.0.1.5 de 2003. Définit les protections : SafeDisc, SecuROM, Discguard, LaserLok, Psx/Lybcrypt, Cactus Data Shield (CD audio), Lock Blocks, CD Check, ProtectetCD-VOB, CD-Extra et protection basée sur le placement non standard des informations sur le disque. Par défaut, l'interface est en allemand, mais dans les paramètres, elle passe en anglais.

Résumé du dossier PE

Les fichiers PE sont associés à trois types de fichiers et peuvent être visualisés à l'aide de Microsoft Windows développé Microsoft Corporation. En général, ce format est associé à trois logiciel(s) applicatif(s) existant(s). Ils ont généralement le format Fichier exécutable portable. Ces fichiers sont classés en Fichiers exécutables, Fichiers de plug-in et Fichiers de données. La plupart des fichiers sont Fichiers exécutables.

L'extension de fichier PE peut être visualisée sous Windows. Ils sont principalement pris en charge sur les ordinateurs de bureau et certaines plates-formes mobiles. La cote de popularité des fichiers PE est "faible", ce qui signifie que ces fichiers sont rares.

Si vous souhaitez en savoir plus sur les fichiers PE et le logiciel qui les ouvre, consultez les détails supplémentaires ci-dessous. Alternativement, vous pouvez également apprendre à effectuer un dépannage simple pour les problèmes d'ouverture des fichiers PE.

Popularité des types de fichiers
Classement du fichier

Activité

Ce type de fichier est toujours d'actualité et est activement utilisé par les développeurs et les logiciels d'application. Bien que le logiciel d'origine de ce type de fichier puisse être éclipsé par une version plus récente (par exemple, Excel 97 vs Office 365), ce type de fichier est toujours activement pris en charge par la version actuelle du logiciel. Ce processus d'interaction avec un ancien système d'exploitation ou une version obsolète d'un logiciel est également appelé " rétrocompatibilité».

État du fichier
Dernière mise à jour de la page


Types de fichiers PE

Association du fichier maître PE

Le programme exécutable, qui est portable sur tous les systèmes d'exploitation Microsoft 32 bits, peut être exécuté sur n'importe quelle version de Windows NT, Windows 95 et Win32s.


Associations d'autres fichiers PE

Plugin associé à Privacy Eraser, un Internet Eraser qui protège la confidentialité sur Internet en nettoyant toutes les traces d'activité Internet et informatique.

Le fichier de données est enregistré dans un format texte et stocke les données d'éphémérides planétaires pour le System Tool Set (STK), basé sur la géométrie du moteur physique, développé par des graphiques analytiques.


Essayez la visionneuse de fichiers universelle

En plus des produits listés ci-dessus, nous vous suggérons d'essayer la visionneuse de fichiers universelle comme FileViewPro. Cet outil peut ouvrir plus de 200 types de fichiers différents, offrant des fonctionnalités d'édition pour la plupart d'entre eux.

Licence | | Termes |


Dépannage de l'ouverture de fichiers PE

Problèmes généraux d'ouverture des fichiers PE

Microsoft Windows non installé

En double-cliquant sur un fichier PE, vous pouvez voir une boîte de dialogue système indiquant "Impossible d'ouvrir ce type de fichier". Dans ce cas, cela est généralement dû au fait que Microsoft Windows n'est pas installé sur votre ordinateur pour %%os%%. Étant donné que votre système d'exploitation ne sait pas quoi faire de ce fichier, vous ne pourrez pas l'ouvrir en double-cliquant dessus.


Conseil: Si vous connaissez un autre programme capable d'ouvrir un fichier PE, vous pouvez essayer d'ouvrir le fichier donné en sélectionnant cette application dans la liste des programmes possibles.

Mauvaise version de Microsoft Windows installée

Dans certains cas, vous pouvez avoir une version plus récente (ou plus ancienne) du fichier exécutable portable, non pris en charge par la version installée de l'application. Si la version correcte du logiciel Microsoft Windows (ou de l'un des autres programmes répertoriés ci-dessus) n'est pas disponible, vous devrez peut-être télécharger une version différente du logiciel ou l'une des autres applications logicielles répertoriées ci-dessus. Ce problème survient le plus souvent lorsque vous travaillez dans une ancienne version du logiciel d'application Avec un fichier créé dans une version plus récente, que l'ancienne version ne peut pas reconnaître.


Conseil: Parfois, vous pouvez avoir une idée générale de la version d'un fichier PE en cliquant avec le bouton droit sur le fichier, puis en choisissant Propriétés (Windows) ou Obtenir des informations (Mac OSX).


Résumé : Dans tous les cas, la plupart des problèmes qui surviennent lors de l'ouverture des fichiers PE sont dus à l'absence du logiciel d'application correct installé sur votre ordinateur.

Installer les produits optionnels - FileViewPro (Solvusoft) | Licence | Politique de confidentialité | Termes |


Autres causes de problèmes lors de l'ouverture de fichiers PE

Même si Microsoft Windows ou un autre logiciel lié à PE est déjà installé sur votre ordinateur, vous pouvez toujours rencontrer des problèmes lors de l'ouverture de fichiers exécutables portables. Si vous rencontrez toujours des problèmes pour ouvrir les fichiers PE, la raison peut être liée à d'autres problèmes empêchant l'ouverture de ces fichiers. Ces problèmes incluent (énumérés dans l'ordre du plus courant au moins courant) :

  • Liens invalides vers des fichiers PE dans le registre de Windows ("répertoire téléphonique" du système d'exploitation Windows)
  • Suppression accidentelle de la description Fichier PE dans le registre Windows
  • Installation incomplète ou incorrecte logiciel applicatif associé au format PE
  • Corruption de fichiers PE (problèmes avec le fichier exécutable portable lui-même)
  • Infection à l'EP malware
  • Endommagé ou obsolète pilotes de périphérique matériel associé à un fichier PE
  • Manque de ressources système suffisantes sur l'ordinateur pour ouvrir le format de fichier exécutable portable

Sondage : À quelle fréquence rencontrez-vous une extension de fichier que vous ne reconnaissez pas ?


Meilleures marques d'appareils mobiles

Samsung (28.86%)
Pomme (21.83%)
Huawei (9.25%)
Xiaomi (6.74%)
LG (3.11%)

Événement du jour

Les photographes ont le choix entre une longue liste de formats de fichiers, mais lorsqu'ils souhaitent inclure une énorme quantité d'informations sur l'image dans leurs photos RAW, c'est le choix à faire.



Comment résoudre les problèmes d'ouverture des fichiers PE

Si votre ordinateur a programme antivirus Peut analyser tous les fichiers sur l'ordinateur, ainsi que chaque fichier individuellement. Vous pouvez analyser n'importe quel fichier en cliquant avec le bouton droit sur le fichier et en sélectionnant l'option appropriée pour analyser le fichier à la recherche de virus.

Par exemple, sur cette figure, dossier mon-dossier.pe, alors vous devez faire un clic droit sur ce fichier, et dans le menu fichier sélectionner l'option "numériser avec AVG". La sélection de cette option ouvrira AVG Antivirus et analysera le fichier à la recherche de virus.


Parfois, une erreur peut résulter de mauvaise installation du logiciel, ce qui peut être dû à un problème survenu au cours du processus d'installation. Cela peut interférer avec votre système d'exploitation associez votre fichier PE à la bonne application logicielle, influençant le soi-disant "associations d'extensions de fichiers".

Parfois simple réinstallation de Microsoft Windows peut résoudre votre problème en liant correctement PE à Microsoft Windows. Dans d'autres cas, des problèmes d'association de fichiers peuvent résulter de mauvaise programmation logicielle développeur, et vous devrez peut-être contacter le développeur pour obtenir de l'aide.


Conseil: Essayez de mettre à jour Microsoft Windows vers la dernière version pour vous assurer que vous disposez des derniers correctifs et mises à jour.


Cela peut sembler trop évident, mais souvent le fichier PE lui-même peut être à l'origine du problème. Si vous avez reçu un fichier via une pièce jointe à un e-mail ou l'avez téléchargé à partir d'un site Web et que le processus de téléchargement a été interrompu (par exemple, par une panne de courant ou une autre raison), le fichier peut être corrompu. Si possible, essayez d'obtenir une nouvelle copie du fichier PE et essayez de l'ouvrir à nouveau.


Soigneusement: Un fichier corrompu peut causer des dommages collatéraux aux logiciels malveillants précédents ou préexistants sur votre PC, il est donc important de maintenir votre ordinateur à jour avec un antivirus à jour.


Si votre fichier PE associé au matériel de votre ordinateur pour ouvrir le fichier dont vous pourriez avoir besoin mettre à jour les pilotes de périphérique associés à cet équipement.

Ce problème généralement associé aux types de fichiers multimédias, qui dépendent de l'ouverture réussie du matériel à l'intérieur de l'ordinateur, par exemple, carte son ou carte vidéo. Par exemple, si vous essayez d'ouvrir un fichier audio mais que vous ne parvenez pas à l'ouvrir, vous devrez peut-être mettre à jour les pilotes de la carte son.


Conseil: Si, lorsque vous essayez d'ouvrir un fichier PE, vous obtenez Message d'erreur lié au fichier .SYS, le problème pourrait probablement être associé à des pilotes de périphériques corrompus ou obsolètes qui doivent être mis à jour. Ce processus peut être facilité en utilisant un logiciel de mise à jour du pilote tel que DriverDoc.


Si les étapes n'ont pas résolu le problème et que vous rencontrez toujours des problèmes pour ouvrir les fichiers PE, cela peut être dû à manque de ressources système disponibles. Certaines versions des fichiers PE peuvent nécessiter une quantité importante de ressources (par exemple, mémoire/RAM, puissance de traitement) pour s'ouvrir correctement sur votre ordinateur. Ce problème est assez courant si vous utilisez en même temps un matériel informatique assez ancien et un système d'exploitation beaucoup plus récent.

Ce problème peut se produire lorsque l'ordinateur a du mal à terminer une tâche car le système d'exploitation (et d'autres services exécutés en arrière-plan) peuvent consomme trop de ressources pour ouvrir le fichier PE. Essayez de fermer toutes les applications sur votre PC avant d'ouvrir Portable Executable File. En libérant toutes les ressources disponibles sur votre ordinateur, vous vous assurez d'avoir les meilleures conditions possibles pour tenter d'ouvrir le fichier PE.


Si tu terminé toutes les étapes ci-dessus et que votre fichier PE ne s'ouvre toujours pas, vous devrez peut-être exécuter mise à niveau matérielle. Dans la plupart des cas, même avec des versions matérielles plus anciennes, la puissance de traitement peut encore être plus que suffisante pour la plupart des applications utilisateur (sauf si vous effectuez beaucoup de travaux gourmands en CPU comme le rendu 3D, la modélisation financière/scientifique ou un travail multimédia intense) . Ainsi, il est probable que votre ordinateur n'ait pas assez de mémoire(plus communément appelé "RAM" ou RAM) pour effectuer la tâche d'ouverture d'un fichier.

Essayez de mettre à jour votre mémoire pour voir si cela aide à ouvrir le fichier PE. Aujourd'hui, les mises à niveau de mémoire sont assez abordables et très faciles à installer, même pour l'utilisateur moyen d'un ordinateur. En prime, vous vous verrez probablement une belle amélioration des performances pendant que votre ordinateur effectue d'autres tâches.


Installer les produits optionnels - FileViewPro (Solvusoft) | Licence | Politique de confidentialité | Termes |


Typedef struct _IMAGE_FILE_HEADER ( WORD Machine ; WORD NumberOfSections ; DWORD TimeDateStamp ; DWORD PointerToSymbolTable ; DWORD NumberOfSymbols ; WORD SizeOfOptionalHeader ; WORD Caractéristiques ; ) IMAGE_FILE_HEADER, *PIMAGE_FILE_HEADER ;
Je ne décrirai que sèchement ces champs, car. les noms sont intuitifs et représentent des significations directes, pas VA, RVA, RAW et d'autres choses effrayantes et intrigantes dont nous n'avons entendu parler que par les vieux pirates. Bien que nous ayons déjà rencontré RAW, ce ne sont que des décalages par rapport au début du fichier (ils sont également appelés pointeurs bruts ou décalage de fichier). Autrement dit, si nous avons une adresse RAW, cela signifie que nous devons passer du début du fichier aux positions RAW ( ptrFichier+ RAW). Après cela, vous pouvez commencer à lire les valeurs. Un excellent exemple de ce type est e_lfnew- que nous avons couvert ci-dessus dans la rubrique Dos.

*machine: WORD est un nombre (2 octets) qui spécifie l'architecture du processeur sur lequel cette application peut s'exécuter.
NombreDeSections: DWORD - nombre de sections dans le fichier. Les sections (ci-après dénommées le tableau des sections) suivent immédiatement l'en-tête (PE-Header). La documentation indique que le nombre de sections est limité à 96.
HeureDateStamp: WORD - un nombre qui contient la date et l'heure de création du fichier.
PointerToSymbolTable: DWORD est le décalage (RAW) de la table des symboles et SizeOfOptionalHeader est la taille de cette table. Cette table est destinée à servir de stockage d'informations de débogage, mais le détachement n'a pas remarqué la perte d'un combattant dès le début du service. Le plus souvent, ce champ est effacé avec des zéros.
SizeOfOptionHeader: WORD - la taille de l'en-tête optionnel (qui suit l'actuel) La documentation indique que pour un fichier objet, il est défini sur 0…
*Caractéristiques: WORD - caractéristiques du fichier.

* - champs définis par une plage de valeurs. Des tableaux de valeurs possibles sont présentés dans la description de la structure au bureau. site et ne sera pas donné ici, parce que. ils ne portent rien de particulièrement important pour comprendre le format.

Quittons cette île ! Nous devons avancer. Le point de repère est un pays appelé Optional-Header.

« Où est la carte, Billy ? J'ai besoin d'une carte."
(Île au trésor)

En-tête facultatif (IMAGE_OPTIONAL_HEADER)

Le nom de ce titre continental n'est pas très réussi. Cet en-tête est obligatoire et a 2 formats PE32 et PE32+ (respectivement IMAGE_OPTIONAL_HEADER32 et IMAGE_OPTIONAL_HEADER64). Le format est stocké dans le champ la magie: MOT. L'en-tête contient les informations nécessaires pour télécharger le fichier. Comme toujours :

IMAGE_OPTIONAL_HEADER

typedef struct _IMAGE_OPTIONAL_HEADER ( WORD Magic ; BYTE MajorLinkerVersion ; BYTE MinorLinkerVersion ; DWORD SizeOfCode ; DWORD SizeOfInitializedData ; DWORD SizeOfUninitializedData ; DWORD AddressOfEntryPoint ; DWORD BaseOfCode ; DWORD BaseOfData ; DWORD ImageBase ; DWORD SectionAlignment ; DWORD FileAlignment ; WORD MajorOperatingSystemVersion ; WORD MinorOperatingSystemVersion;WORD MajorImageVersion;WORD MinorImageVersion ; WORD MajorSubsystemVersion ; WORD MinorSubsystemVersion ; DWORD Win32VersionValue ; DWORD SizeOfImage ; DWORD SizeOfHeaders ; DWORD CheckSum ; WORD Subsystem ; WORD DllCharacteristics ; DWORD SizeOfStackReserve ; DWORD SizeOfStackCommit ; DWORD SizeOfHeapReserve ; DWORD SizeOfHeapCommit ; DWORD LoaderFlags ; DWORD NumberOfRvaAndSizes ; IMAGE_DATA_DIRECTORY DataDirectory ; ) IMAGE_OPTIONAL_HEADE R , *PIMAGE_OPTIONAL_HEADER ;


* Comme toujours, nous n'aborderons que les principaux domaines qui ont le plus d'impact sur l'idée de téléchargement et sur la manière d'avancer avec le fichier. Convenons que les champs de cette structure contiennent des valeurs avec des adresses VA (adresse virtuelle) et RVA (adresse virtuelle relative). Ce sont déjà des adresses pas comme RAW, et elles doivent pouvoir lire (plus précisément, compter). Nous allons certainement apprendre à faire cela, mais seulement pour commencer, nous allons analyser les structures qui se succèdent pour ne pas se confondre. Pour l'instant, rappelez-vous simplement - ce sont des adresses qui, après calculs, pointent vers un endroit spécifique dans le fichier. Il y aura également un nouveau concept - l'alignement. Nous l'examinerons avec les adresses RVA, car ceux-ci sont assez étroitement liés.

AddressOfEntryPoint: DWORD - Adresse du point d'entrée RVA. Peut pointer vers n'importe quel point de l'espace d'adressage. Pour les fichiers .exe, le point d'entrée correspond à l'adresse à partir de laquelle le programme démarre et ne peut pas être nul !
BaseDeCode: DWORD - RVA du début du code du programme (section de code).
BaseDeDonnées: DWORD - RVA du début du code du programme (section data).
base d'images: DWORD - Adresse de base de chargement de programme préférée. Doit être un multiple de 64 Ko. Dans la plupart des cas, il s'agit de 0x00400000.
Alignement des sections: DWORD - taille d'alignement (octets) de la section lors du déchargement dans la mémoire virtuelle.
AlignementFichier: DWORD - taille d'alignement (octets) d'une section dans un fichier.
SizeOfImage: DWORD - taille du fichier (en octets) en mémoire, y compris tous les en-têtes. Doit être un multiple de SectionAligment.
SizeOfHeaders: DWORD - taille de tous les en-têtes (DOS, DOS-Stub, PE, Section) alignés sur FileAligment.
NumberOfRvaAndSizes: DWORD - le nombre de répertoires dans la table des répertoires (sous la table elle-même). Actuellement, ce champ est toujours égal à la constante symbolique IMAGE_NUMBEROF_DIRECTORY_ENTRIES, qui est égale à 16.
Répertoire de données: IMAGE_DATA_DIRECTORY - répertoire de données. En termes simples, il s'agit d'un tableau (taille 16), dont chaque élément contient une structure de 2 valeurs DWORD.

Considérez à quoi ressemble la structure IMAGE_DATA_DIRECTORY :

Typedef struct _IMAGE_DATA_DIRECTORY ( DWORD VirtualAddress; DWORD Size; ) IMAGE_DATA_DIRECTORY, *PIMAGE_DATA_DIRECTORY;
Ce que nous avons? Nous avons un tableau de 16 éléments, dont chaque élément contient l'adresse et la taille (quoi ? comment ? pourquoi ? le tout en une minute). La question se pose de savoir quelles sont exactement ces caractéristiques. Pour cela, Microsoft a des constantes spéciales à faire correspondre. On peut les voir à la toute fin de la description de la structure. Pour l'instant:

// Entrées de répertoire #define IMAGE_DIRECTORY_ENTRY_EXPORT 0 // Répertoire d'exportation #define IMAGE_DIRECTORY_ENTRY_IMPORT 1 // Répertoire d'importation #define IMAGE_DIRECTORY_ENTRY_RESOURCE 2 // Répertoire de ressources #define IMAGE_DIRECTORY_ENTRY_EXCEPTION 3 // Répertoire d'exceptions #define IMAGE_DIRECTORY_ENTRY_SECURITY 4 // Répertoire de sécurité #define IMAGE_DIRECT ORY_ENTRY_BASERELOC 5 // Table de relocalisation de base #define IMAGE_DIRECTORY_ENTRY_DEBUG 6 // Répertoire de débogage // IMAGE_DIRECTORY_ENTRY_COPYRIGHT 7 // (utilisation X86) #define IMAGE_DIRECTORY_ENTRY_ARCHITECTURE 7 // Données spécifiques à l'architecture #define IMAGE_DIRECTORY_ENTRY_GLOBALPTR 8 // RVA de GP #define IMAGE_DIRECTORY_ENTRY_TLS 9 // T Répertoire LS #définir IMAGE_DIRECTORY_ENTRY_LOAD_CONFIG 10 // Charger le répertoire de configuration #define IMAGE_DIRECTORY_ENTRY_BOUND_IMPORT 11 // Répertoire d'importation lié dans les en-têtes #define IMAGE_DIRECTORY_ENTRY_IAT 12 // Importer la table d'adresses #define IMAGE_DIRECTORY_ENTRY_DELAY_IMPORT 13 // Retarder le chargement des descripteurs d'importation #define IMAGE_DIRECTORY_ENTRY_ COM_DESCRIPTOR 14 // Descripteur d'exécution COM
Ah ! Nous voyons que chaque élément du tableau est responsable de la table qui lui est attachée. Mais hélas et ah, alors que ces rivages nous sont inaccessibles, car. nous ne savons pas comment travailler avec les adresses VA et RVA. Et pour apprendre, nous devons apprendre quelles sont les sections. Ce sont eux qui parleront de leur structure et de leur travail, après quoi on comprendra pourquoi VA, RVA et alignements sont nécessaires. Dans cet article, nous n'aborderons que les exportations et les importations. Le but des champs restants peut être trouvé dans le bureau. documentation ou livres. Donc. En fait les champs :

adresse virtuelle: DWORD - RVA pour la table à laquelle correspond l'élément du tableau.
taille: DWORD - taille de la table en octets.

Donc! Pour accéder à des rivages aussi exotiques que des tableaux d'importations, d'exportations, de ressources et autres, nous devons accomplir une quête avec des sections. Eh bien, garçon de cabine, jetons un coup d'œil à la carte générale, déterminons où nous en sommes maintenant et passons à autre chose :

Et nous ne sommes pas directement devant les vastes étendues de sections. Il faut savoir par tous les moyens ce qu'ils cachent et enfin s'occuper d'un autre type d'adressage. On veut de la vraie aventure ! Nous voulons passer rapidement à des républiques telles que des tables d'importation et d'exportation. Les vieux pirates disent que tout le monde n'a pas pu les atteindre, et ceux qui sont revenus sont revenus avec de l'or et des femmes ayant des connaissances sacrées sur l'océan. Nous mettons les voiles et gardons notre chemin vers l'en-tête de section.

« - Tu es déposé, Silver ! Descendez du tonneau !
(Île au trésor)

En-tête de section (IMAGE_SECTION_HEADER)


Juste derrière le tableau Répertoire de données les sections se succèdent. La table de section est un état souverain, qui est divisé en NombreDeSections villes. Chaque ville a son propre métier, ses propres droits, ainsi qu'une taille de 0x28 octets. Le nombre de sections est indiqué dans le champ NombreDeSections, qui est stocké dans File-header. Alors regardons la structure :

Typedef struct _IMAGE_SECTION_HEADER ( Nom BYTE ; union ( DWORD PhysicalAddress ; DWORD VirtualSize ; ) Divers ; DWORD VirtualAddress ; DWORD SizeOfRawData ; DWORD PointerToRawData ; DWORD PointerToRelocations ; DWORD PointerToLinenumbers ; WORD NumberOfRelocations ; WORD NumberOfLinenumbers ; DWORD Features; ) IMAGE_SECTION_HEADER, *P IMAGE_SECTION_HEADER ;
Nom: BYTE - nom de la section. Il fait actuellement 8 caractères.
TailleVirtuelle: DWORD - taille de section dans la mémoire virtuelle.
SizeOfRawData: DWORD - taille de section dans le fichier.
adresse virtuelle: DWORD - Adresse de la section RVA.
SizeOfRawData: DWORD - taille de section dans le fichier. Doit être un multiple AlignementFichier.
PointerToRawData: DWORD - Décalage RAW au début de la section. Doit aussi être un multiple AlignementFichier
Caractéristiques: DWORD - attributs d'accès à la section et règles pour le charger dans Wirth. mémoire. Par exemple, un attribut pour définir le contenu d'une section (données initiales, données non initiales, code). Ou accéder aux attributs - lecture, écriture, exécution. Ce n'est pas tout le spectre. Les caractéristiques sont définies par des constantes du même WINNT.h, qui commencent par IMAGE_SCN_. Vous pouvez vous familiariser avec les attributs des sections plus en détail. Les attributs sont également bien décrits dans les livres de Chris Kaspersky - références à la fin de l'article.

En ce qui concerne le nom, rappelez-vous ce qui suit - la section avec les ressources doit toujours avoir le nom .rsrc. Sinon, les ressources ne seront pas chargées. Comme pour le reste des sections, le nom peut être n'importe quoi. Généralement il y a des noms significatifs, comme .data, .src, etc... Mais cela arrive aussi :

Les sections sont une zone qui est déchargée dans la mémoire virtuelle et tout le travail est effectué directement avec ces données. Une adresse dans la mémoire virtuelle, sans aucun décalage, est appelée une adresse virtuelle, VA en abrégé. Adresse préférée pour télécharger l'application, définie dans le champ base d'images. C'est comme le point auquel la zone d'application démarre dans la mémoire virtuelle. Et par rapport à ce point les décalages RVA (Relative virtual address) sont comptés. Autrement dit, VA = base d'images+ RVA ; base d'images nous savons toujours et ayant à notre disposition VA ou RVA, nous pouvons exprimer l'un à travers l'autre.

On dirait qu'ils s'y sont habitués. Mais c'est de la mémoire virtuelle ! Et nous sommes dans le physique. La mémoire virtuelle pour nous est maintenant comme un voyage vers d'autres galaxies, que nous ne pouvons imaginer que jusqu'à présent. Nous ne pouvons donc pas accéder à la mémoire virtuelle pour le moment, mais nous pouvons savoir ce qui s'y trouvera, car il est extrait de notre fichier.

alignement


Afin de représenter correctement le déchargement à Wirth. mémoire, il est nécessaire de traiter un mécanisme tel que l'alignement. Tout d'abord, regardons le diagramme de la façon dont les sections sont échangées dans la mémoire.

Comme vous pouvez le voir, la section est déchargée en mémoire non pas en fonction de sa taille. Les alignements sont utilisés ici. Il s'agit de la valeur qui doit être un multiple de la taille de la section en mémoire. Si nous regardons le diagramme, nous verrons que la taille de la section est de 0x28 et qu'elle est déchargée dans la taille de 0x50. Cela est dû à la taille de l'alignement. 0x28 "n'atteint pas" 0x50 et par conséquent, la section sera déchargée et le reste de l'espace d'un montant de 0x50-0x28 sera annulé. Et si la taille de la section était supérieure à la taille de l'alignement, alors quoi ? Par exemple sectionTaille= 0x78, et sectionAlignement= 0x50, c'est-à-dire resté inchangé. Dans ce cas, la section occuperait 0xA0 (0xA0 = 0x28 * 0x04) octets en mémoire. Autrement dit, une valeur qui est un multiple sectionAlignement et recouvre complètement sectionTaille. Il convient de noter que les sections du fichier sont alignées de la même manière, uniquement par la taille AlignementFichier. Après avoir reçu la base nécessaire, nous pouvons comprendre comment convertir RVA en RAW.

"Ici vous n'avez pas de plaine, ici le climat est différent."
(V.S. Vysotsky)

Petite leçon d'arithmétique


Avant le début de l'exécution, une partie du programme doit être envoyée à l'espace d'adressage du processeur. L'espace d'adressage est la quantité de RAM physiquement adressée par le processeur. Le "morceau" dans l'espace d'adressage où le programme est déchargé est appelé une image virtuelle. L'image est caractérisée par l'adresse de chargement de base (Image base) et la taille (Image size). Donc VA (Virtual address) est l'adresse relative au début de la mémoire virtuelle, et RVA (Relative Virtual Address) est relative à l'endroit où le programme a été déchargé. Comment puis-je connaître l'adresse de téléchargement de base d'une application ? Il y a un champ séparé pour cela dans l'en-tête facultatif appelé base d'images. C'était un petit prélude pour me rafraîchir la mémoire. Considérons maintenant une représentation schématique des différents adressages :

Alors, comment pouvez-vous toujours lire les informations d'un fichier sans le décharger dans la mémoire virtuelle ? Pour ce faire, vous devez convertir les adresses au format RAW. Ensuite, nous pouvons entrer dans le fichier jusqu'à la zone dont nous avons besoin et lire les données nécessaires. Étant donné que RVA est l'adresse de mémoire virtuelle qui a été mappée à partir du fichier, nous pouvons inverser le processus. Pour cela, nous avons besoin de la clé neuf par seize arithmétique simple. Voici quelques formules :

VA = ImageBase + RVA ; RAW = RVA - sectionRVA + rawSection ; // rawSection - décalage vers la section depuis le début du fichier // sectionRVA - section RVA (ce champ est stocké à l'intérieur de la section)
Comme vous pouvez le voir, pour calculer RAW, nous devons déterminer la section à laquelle RVA appartient. Pour ce faire, vous devez parcourir toutes les sections et vérifier la condition suivante :

RVA >= sectionAdresseVituelle && RVA< ALIGN_UP(sectionVirtualSize, sectionAligment) // sectionAligment - выравнивание для секции. Значение можно узнать в Optional-header. // sectionVitualAddress - RVA секции - хранится непосредственно в секции // ALIGN_UP() - функция, определяющая сколько занимает секция в памяти, учитывая выравнивание
En rassemblant tous les puzzles, nous obtenons la liste suivante :

Typedef uint32_t DWORD ; typedef uint16_t WORD ; typedef uint8_t BYTE ; #define ALIGN_DOWN(x, align) (x & ~(align-1)) #define ALIGN_UP(x, align) ((x & (align-1))?ALIGN_DOWN(x,align)+align:x) // rubriques IMAGE_SECTION_HEADER ; // init array sections int defSection(DWORD rva) ( for (int i = 0; i< numberOfSection; ++i) { DWORD start = sections[i].VirtualAddress; DWORD end = start + ALIGN_UP(sections[i].VirtualSize, sectionAligment); if(rva >= démarrer && rva< end) return i; } return -1; } DWORD rvaToOff(DWORD rva) { int indexSection = defSection(rva); if(indexSection != -1) return rva - sections.VirtualAddress + sections.PointerToRawData; else return 0; }
* Je n'ai pas inclus de déclaration de type ni d'initialisation de tableau dans le code, mais j'ai uniquement fourni des fonctions qui aideront à calculer les adresses. Comme vous pouvez le voir, le code n'est pas très compliqué. Est-ce un peu déroutant. Il disparaît... si vous passez un peu plus de temps à bricoler le .exe via le désassembleur.

HOURRA ! Compris. Maintenant, nous pouvons aller au bord des ressources, importer et exporter des bibliothèques, et généralement partout où notre cœur le désire. Nous venons d'apprendre à travailler avec un nouveau type d'adressage. Prenons la route!

"-Pas mal pas mal! Pourtant, ils ont reçu leurs rations pour aujourd'hui !
(Île au trésor)

table d'exportation


Au tout premier élément du tableau Répertoire de données RVA est stocké sur la table d'exportation, qui est représentée par la structure IMAGE_EXPORT_DIRECTORY. Ce tableau est spécifique aux fichiers de bibliothèque dynamique (.dll). Le but principal de la table est de lier les fonctions exportées avec leur RVA. Le descriptif est présenté en Caractéristiques :

Typedef struct _IMAGE_EXPORT_DIRECTORY ( Caractéristiques DWORD ; DWORD TimeDateStamp ; WORD MajorVersion ; WORD MinorVersion ; DWORD Name ; DWORD Base ; DWORD NumberOfFunctions ; DWORD NumberOfNames ; DWORD AddressOfFunctions ; DWORD AddressOfNames ; DWORD AddressOfNameOrdinals ; ) IMAGE_EXPORT_DIREC TORY,*PIMAGE_EXPORT _REPERTOIRE ;
Cette structure contient trois pointeurs vers trois tables différentes. Ceci est une table de noms (fonctions) ( AdresseDeNoms), ordinaux( AddressOfNamesOrdinals), adresses( AdresseDeFonctions). Le champ Nom stocke la RVA du nom de la bibliothèque dynamique. Un ordinal est comme un intermédiaire entre la table des noms et la table des adresses, et est un tableau d'indices (la taille de l'index est de 2 octets). Pour plus de clarté, considérons le schéma :

Prenons un exemple. Disons que le i-ème élément du tableau de noms indique le nom de la fonction. Ensuite, l'adresse de cette fonction peut être obtenue en se référant au i-ème élément du tableau d'adresses. Ceux. i est un ordinal.

Attention! Si vous avez pris par exemple le 2e élément dans la table des ordinaux, cela ne signifie pas 2 - c'est un ordinal pour les tables de noms et d'adresses. L'indice est la valeur stockée dans le deuxième élément du tableau ordinal.

Nombre de valeurs dans les tables de noms ( NombreDeNoms) et les ordinaux sont égaux et ne correspondent pas toujours au nombre d'éléments dans la table d'adresses ( NombreDeFonctions).

« Ils sont venus me chercher. Merci pour votre attention. Maintenant, ils doivent être en train de tuer !
(Île au trésor)

table d'importation


La table d'importation fait partie intégrante de toute application qui utilise des bibliothèques dynamiques. Ce tableau permet de corréler les appels de fonction de bibliothèque dynamique avec les adresses correspondantes. L'importation peut se produire dans trois modes différents : standard, contraignant (importation liée) et différé (importation différée). Parce que le sujet de l'importation est assez multiforme et tire pour un article séparé, je ne décrirai que le mécanisme standard, et le reste je ne décrirai que comme un «squelette».

Importation standard-V Répertoire de données la table d'importation est stockée sous l'index IMAGE_DIRECTORY_ENTRY_IMPORT(=1). C'est un tableau d'éléments de type IMAGE_IMPORT_DESCRIPTOR. La table d'importation stocke (dans un tableau) les noms des fonctions/ordinaux et où le chargeur doit écrire l'adresse effective de cette fonction. Ce mécanisme n'est pas très efficace, car franchement, tout se résume à parcourir l'ensemble de la table d'exportation pour chaque fonction nécessaire.

Importation liée- avec ce schéma de travail, -1 est entré dans les champs (dans le premier élément de la table d'importation standard) TimeDateStamp et ForwardChain et les informations sur le lien sont stockées dans la cellule Répertoire de données avec l'index IMAGE_DIRECTORY_ENTRY_BOUND_IMPORT(=11). C'est-à-dire qu'il s'agit d'une sorte d'indicateur pour le chargeur dont il a besoin pour utiliser l'importation liée. Pour la "chaîne des importations consolidées", leurs structures apparaissent également. L'algorithme de travail est le suivant - la bibliothèque nécessaire est déchargée dans la mémoire virtuelle de l'application et toutes les adresses nécessaires sont «liées» au stade de la compilation. Parmi les lacunes, on peut noter que lors de la recompilation d'une dll, vous devrez recompiler l'application elle-même, car. les adresses de fonction seront modifiées.

Retarder l'importation- avec cette méthode, on suppose que le fichier .dll est attaché à l'exécutable, mais il n'est pas déchargé en mémoire immédiatement (comme dans les deux méthodes précédentes), mais uniquement lorsque l'application accède au symbole pour la première fois (le éléments dits déchargés des bibliothèques dynamiques). Autrement dit, le programme est exécuté en mémoire et dès que le processus a atteint l'appel de fonction de la bibliothèque dynamique, un gestionnaire spécial est appelé, qui charge la dll et diffuse les adresses effectives de ses fonctions. Pour les importations différées, le chargeur fait référence au DataDirectory (élément numéro 15).

Après avoir un peu couvert les méthodes d'importation, passons directement au tableau d'importation.

« C'est un marin ! Ses vêtements étaient marins. - Ouais ? As-tu pensé trouver un évêque ici ?
(L'île au trésor - John Silver)

Descripteur d'importation (IMAGE_IMPORT_DESCRIPTOR)


Pour connaître les coordonnées de la table d'importation, nous devons nous référer au tableau Répertoire de données. A savoir, à l'élément IMAGE_DIRECTORY_ENTRY_IMPORT (=1). Et lisez l'adresse RVA de la table. Voici un aperçu général du chemin qui doit être fait:

Ensuite, nous obtenons RAW de RVA, conformément aux formules données ci-dessus, puis "parcourons" le fichier. Nous sommes maintenant juste devant un tableau de structures appelé IMAGE_IMPORT_DESCRIPTOR. Le signe de la fin du tableau est la structure « nulle ».

Typedef struct _IMAGE_IMPORT_DESCRIPTOR ( union ( Caractéristiques DWORD ; DWORD OriginalFirstThunk ; ) DUMMYUNIONNAME ; DWORD TimeDateStamp ; DWORD ForwarderChain ; Nom DWORD ; DWORD FirstThunk ; ) IMAGE_IMPORT_DESCRIPTOR,*PIMAGE_IMPORT_DESCRIPTOR ;
Je n'ai pas pu obtenir de lien vers la description de la structure sur msdn, mais vous pouvez le voir dans le fichier WINNT.h. Commençons à comprendre.

Premier morceau original: DWORD - RVA de la table des noms d'importation (INT).
HeureDateStamp: DWORD - date et heure.
TransitaireChaîne: DWORD - index du premier caractère transféré.
Nom: DWORD - chaîne RVA avec le nom de la bibliothèque.
FirstThunk: DWORD - RVA de la table d'adresses d'importation (IAT).

Tout ici ressemble un peu à l'exportation. Aussi une table de noms (INT) et aussi un chiffon dessus adresses (IAT). Également appelée bibliothèque RVA. Seulement ici INT et IAT font référence à un tableau de structures IMAGE_THUNK_DATA. Il est présenté sous deux formes - pour le 64e et pour le 32e systèmes et ne diffère que par la taille des champs. Considérez x86 comme exemple :

Typedef struct _IMAGE_THUNK_DATA32 ( union ( DWORD ForwarderString; DWORD Function; DWORD Ordinal; DWORD AddressOfData; ) u1; ) IMAGE_THUNK_DATA32,*PIMAGE_THUNK_DATA32;
Il est important de répondre que les actions ultérieures dépendent du bit haut de la structure. S'il est défini, les bits restants correspondent au numéro du symbole importé (importation par numéro). Sinon (bit haut effacé), les bits restants spécifient la RVA du symbole importé (importation par nom). Si nous avons une importation par nom, le pointeur stocke l'adresse dans la structure suivante :

Typedef struct _IMAGE_IMPORT_BY_NAME (WORD Hint; BYTE Name; ) IMAGE_IMPORT_BY_NAME, *PIMAGE_IMPORT_BY_NAME;
Ici Indice est le numéro de la fonction, et Nom- Nom.

A quoi ça sert tout ça ? Tous ces tableaux, structures ... Pour plus de clarté, considérons un schéma merveilleux avec

Portable Executable (PE) est un format de fichier exécutable qui existe depuis longtemps et qui est toujours utilisé sur toutes les versions de Windows. Cela inclut les fichiers au format *.exe, *.dll et autres, et ces fichiers contiennent toutes les informations sur le programme. Mais n'importe quel programme peut contenir un virus, et avant l'installation, il est souhaitable de savoir ce qui est stocké derrière un fichier avec ce format. Cela peut être trouvé en utilisant PE Explorer.

PE Explorer est un programme conçu pour visualiser et modifier tout ce qui est contenu dans les fichiers PE. Ce programme a été créé et très souvent utilisé pour détecter les virus, mais ses fonctions utiles ne se limitent pas à cela. Par exemple, il peut être utilisé pour supprimer des informations de débogage ou traduire n'importe quel programme en russe.

Pendant que le programme est compressé, il est généralement crypté afin que l'utilisateur ou toute autre personne ne puisse pas voir tout ce qui se passe dans les coulisses. Mais PE Explorer n'arrête pas cela, car grâce à un algorithme spécialement écrit, il peut décrypter ces fichiers et afficher tout le contenu.

Parcourir les titres

Dès que vous ouvrez le fichier PE, le programme ouvrira la visionneuse d'en-tête. Ici, vous pouvez voir beaucoup de choses intéressantes, mais rien ne peut être changé et ce n'est pas nécessaire.

Répertoires de données

Les répertoires de données (répertoires de données) constituent une partie importante de tout fichier exécutable, car c'est dans ce tableau que sont stockées les informations sur les structures (leur taille, pointeur vers le début, etc.). Les copies des fichiers doivent être modifiées, sinon cela peut entraîner des conséquences irréversibles.

Titres de section

Tout le code d'application important est stocké dans PE Explorer dans différentes sections pour un meilleur ordre. Étant donné que cette section contient toutes les données, elles peuvent être modifiées en changeant leur emplacement. Si certaines données ne doivent pas être modifiées, le programme vous en informera.

Éditeur de ressources

Comme vous le savez, les ressources font partie intégrante du programme (icônes, formulaires, inscriptions). Mais avec l'aide de PE Explorer, ils peuvent être modifiés. Ainsi, vous pouvez remplacer l'icône de l'application ou traduire le programme en russe. Ici, vous pouvez également enregistrer des ressources sur votre ordinateur.

Désassembleur

Cet outil est nécessaire pour l'analyse express des fichiers exécutables, de plus, il est réalisé dans un format plus simplifié, mais non moins fonctionnel.

Tableau d'importation

Grâce à cette section du programme, vous pouvez savoir si l'application en cours de vérification est nuisible à votre ordinateur. Cette section contient toutes les fonctions contenues dans le programme.

Analyseur de dépendance

Un autre avantage du programme dans la lutte contre les virus. Ici, vous pouvez voir la dépendance avec les bibliothèques dynamiques, reconnaissant ainsi si cette application constitue une menace pour votre ordinateur ou non.

Avantages du programme

  1. Intuitif
  2. Possibilité de changer de ressource
  3. Permet de se renseigner sur les virus dans le programme avant même d'exécuter le code

Défauts

  1. Manque de russification
  2. Payant (version gratuite uniquement disponible pendant 30 jours)

PE Explorer est un excellent outil qui vous permettra de protéger votre ordinateur des virus. Bien sûr, il peut être utilisé dans une autre direction, en ajoutant du code dangereux à un programme totalement inoffensif, mais ce n'est pas recommandé. De plus, en raison de la possibilité de modifier les ressources, vous pouvez ajouter de la publicité ou traduire le programme en russe.

SDL Passolo 2015 est l'utilitaire le plus puissant pour traduire des programmes dans différentes langues du monde. Comprend de nombreux formats, distingue le type de langage. Un éditeur de ressources de modèles avec des fonctionnalités avancées conçues pour la localisation de logiciels. SDL Passolo 2015 dispose d'un éditeur de boîte de dialogue visuel avec une gamme d'outils de mise en forme pratiques, prend en charge le travail avec presque toutes les ressources, offre de nombreux réglages précis, une option de traitement par lots et un correcteur orthographique intégré. SDL Passolo 2015 peut aider un traducteur à économiser beaucoup d'efforts et de temps dans la localisation de logiciels. Cela est dû au fait que le programme fournit la fonction de traduction automatique et de vérification du texte traduit pour les erreurs les plus courantes. La fonction de traduction automatique est réalisée en présence de certains dictionnaires, dont il existe de nombreux sur Internet, y compris ceux de Microsoft. Si vous n'êtes pas satisfait des dictionnaires prêts à l'emploi, vous pouvez les créer vous-même. Il suffit de traduire un programme une fois et d'exporter la liste de traduction vers un dictionnaire. Et à l'avenir, ce dictionnaire pourra être connecté lors de la traduction de nouvelles versions de programmes. SDL Passolo 2015 propose une correction visuelle très avancée des boîtes de dialogue dans les programmes traduisibles. Qu'il suffise de dire qu'il n'est pas très inférieur à l'édition de formulaires dans Microsoft Visual Studio.Net. Si vous dites que Resource Hacker a de bons ajustements de dialogue, alors vous n'avez pas vu Passolo. La liste des avantages Passolo ne se limite pas à cela. Ajouter. Information : Nouvelles fonctionnalités : * La terminologie est désormais également fournie à partir des listes de traduction Passolo. * Les services de pré-traduction, les recherches de traductions lâches, les correspondances et la terminologie peuvent désormais être facilement sélectionnés dans la boîte de dialogue des options. * La recherche de traductions avec des index rapides dans les projets et les glossaires rend le processus de recherche beaucoup plus rapide. * Nouvelle interface utilisateur moderne qui permet l'ancrage arbitraire des fenêtres de sortie. Nouveau paramètre de masquage automatique pour les fenêtres de sortie. * Les raccourcis clavier peuvent être modifiés dans la boîte de dialogue de personnalisation de la barre d'outils. * La recherche de traductions non strictes marque désormais les différences entre les correspondances non strictes dans le texte recherché et les textes en couleur. * Lorsqu'une entrée est sélectionnée, les terminologies sont sélectionnées dans le menu contextuel du texte source, surgissant avec des informations supplémentaires concernant l'élément terminologique affiché. * Les fichiers peuvent être glissés et déposés dans la fenêtre du projet pour les ajouter en tant que fichier source ou en importer des informations. * L'historique de tous les changements dans le texte est fourni avec la date et le nom d'utilisateur. Les versions précédentes des données peuvent être restaurées à l'aide de la fonction de restauration. * Les entrées de la fenêtre de projet peuvent désormais être filtrées et regroupées. * Les entrées de la fenêtre de projet peuvent être filtrées sous forme de listes de chaînes.
Vous avez aimé l'article ? Partager avec des amis: