Encyclopédie de la sécurité incendie

Éditeur de fichiers binaires en russe. Éditeur hexadécimal

Maintenant, il y aura beaucoup de matériel sur le sujet de la composition des données et de la manière dont elles peuvent être modifiées. Beaucoup de gens savent que tout fichier sur un ordinateur (image, texte ou multimédia) est un code binaire - des zéros et des uns. Pour éditer de tels fichiers, utilisez Éditeurs HEX– une application qui édite des données constituées d'un byte code. Les octets dans l'éditeur sont représentés au format hexadécimal.

Extension de fichier

Le problème réside dans le grand nombre de types de fichiers et au début, il n'est pas clair comment le système d'exploitation détermine le texte, le multimédia ou les archives et d'autres types de données. Comme vous le savez, le fichier est défini par le système à l'aide d'une extension ajoutée après le nom, par exemple, ".exe", ".txt" et autres.

Les paramètres du système d'exploitation sont flexibles, ce qui signifie que l'extension de n'importe quel fichier peut être supprimée, mais le système d'exploitation ne pourra alors pas l'ouvrir, il ne comprendra pas avec quel programme l'exécuter. Dans ce cas, la structure logique de l'objet ne changera pas. L'image montre un fichier texte, et à côté se trouve le même, mais sans extension et son icône est blanche.

Si un objet sans extension reste le même fichier avec un jeu de caractères logique, alors l'extension ne détermine pas son type, mais alors quoi ? Il y a une chose telle que format- ceci définit le type, c'est aussi la spécification de la structure de données. L'extension est un terme complètement différent. Mais que se passe-t-il si l'utilisateur tombe initialement sur un fichier sans extension, mais qu'il doit être ouvert de toute urgence, et qu'est-ce qui est inconnu ?

Descripteurs

Tous les fichiers peuvent être grossièrement divisés en deux composants - l'en-tête, qui contient les données d'identification de l'objet, et diverses métadonnées. Le deuxième composant est le "corps" de l'objet, à l'aide duquel le type de l'objet et des parties de l'en-tête, qui porte le nom du descripteur, sont déterminés. Deux descripteurs populaires sont - ASCII Et HEX. La deuxième option est analysée avec l'aide des éditeurs, qui ont été mentionnés au début.

La première méthode ASCII est définie à l'aide d'un éditeur de texte, par exemple, Notepad ++, cependant, il convient de considérer un point - certains ensembles d'octets ne peuvent pas être convertis au format ASCII, ce qui signifie qu'il est recommandé d'utiliser des éditeurs HEX. En lançant n'importe quel fichier à l'aide d'un tel utilitaire, la fenêtre affichera une vue matricielle avec une séquence d'octets, où un octet est contenu dans l'une des cellules. Les informations sur le descripteur se trouvent généralement dans les 3 premières cellules, rarement dans plus. Les cellules sont comptées horizontalement. Les données affichées dans les cellules sont présentées sous forme de code hexadécimal.

Décryptage du descripteur

Pour comprendre de quel type de données il s'agit, vous devez déchiffrer le code. Pour ce faire, vous avez besoin d'un service spécial qui détermine les formats de fichiers, par exemple open-file.ru . Mais il existe d'autres ressources faciles à trouver sur Internet. Après avoir téléchargé le fichier sur le site, les données seront analysées, puis le résultat sera affiché. Un tableau apparaîtra ci-dessous avec le type, le format et la description du fichier.

Ce dont nous avons discuté ci-dessus est l'utilisation des éditeurs HEX. Passons maintenant au code ASCII. Ce code peut être analysé en utilisant le même open-file.ru. En d'autres termes, les deux codes sont vérifiés par rapport à la ressource et rien n'a vraiment besoin d'être saisi.

Parfois, le format n'est pas si facile à déterminer. Ceci s'applique aux en-têtes ASCII. Le fait est que les premiers caractères peuvent être liés à des extensions de fichiers, et peut-être à plusieurs formats.

Bien sûr, il existe une option pour définir le format. Plusieurs lignes seront utilisées pour l'analyse, pas une seule. Ensuite, certains des éléments qui s'y trouvent pointeront vers le type de l'objet par n'importe quel moyen.

Que pouvez-vous faire d'autre avec un éditeur hexadécimal

En plus du fait que les éditeurs HEX aident à analyser n'importe quel fichier, il est possible de :

  1. travailler avec des images de disque ;
  2. modifier les rubriques ;
  3. modifier le contenu de la RAM ;
  4. modifier l'espace d'adressage virtuel du processus, etc.

Par exemple, des utilitaires de ce type sont utilisés dans le développement de logiciels. Lorsque vous devez saisir des données après avoir compilé le programme, mais que vous ne souhaitez pas le recompiler. Tout code de programme peut être modifié à l'aide d'un éditeur HEX. Bien sûr, vous devez être en mesure de le faire pour trouver les données nécessaires. Ainsi, ils cherchent à corriger les erreurs dans le code, ou les utilisent pour le piratage et la triche. Cela signifie que l'utilisation des éditeurs HEX est très large.

Quels éditeurs hexadécimaux utiliser

Il existe de nombreux programmes d'édition de données, et les voici présentés ci-dessous:

Un utilitaire populaire pour Windows. Avec lui, l'utilisateur ne pourra ouvrir aucun type de fichier et le modifier. Si quelque chose est mal modifié, l'utilitaire a un historique des modifications et vous pouvez toujours revenir à son état d'origine.

L'outil fonctionne très rapidement, sans peser beaucoup, et il est capable de travailler avec des fichiers volumineux. L'interface est simple et adaptée aux débutants, il y a une langue russe.

Cet éditeur peut être utilisé dans la version de démonstration pendant un certain temps, puis vous devez l'acheter. L'outil est universel, où de nombreuses options intéressantes se trouvent.

Il est possible de travailler non seulement avec des fichiers, mais également avec des disques durs, des lecteurs flash, des disques optiques et même des disquettes. Tous les systèmes de fichiers Windows sont pris en charge. Prend en charge le clonage de partition et la suppression permanente des données sans possibilité de récupération

Si vous êtes débutant, ce programme vous suffit, en particulier dans la section Aide, il existe une option pour passer à l'interface en russe.

Utilitaire 2 en 1, car il dispose d'une fonction de comparaison de fichiers et d'un éditeur HEX intégré. Parfois, il peut être nécessaire de comparer ces fichiers pour déterminer les différences et les similitudes, et pour analyser la structure des objets de différents formats.

Si deux fichiers diffèrent, les zones de la matrice seront peintes dans n'importe quelle couleur et la comparaison elle-même se déroule en quelques secondes. Certes, les fichiers ne dépassant pas 4 Go conviennent à l'analyse.

L'utilitaire lui-même a la capacité de changer l'interface. Ce qui signifie que l'utilisateur peut le personnaliser pour lui-même. Le travail ira plus vite.

Cette chose est gratuite, mais elle est capable de fonctionner avec des données en masse de tous formats et encodages. Il est possible de changer la RAM et le disque dur.

Le programme combine la sortie du code hexadécimal et du texte ASCII. L'interface de l'interface en anglais est assez simple, donc travailler avec elle ne sera pas difficile, surtout si vous avez déjà travaillé dans des éditeurs similaires.

Si un fichier ne s'ouvre pas dans un éditeur, il s'ouvrira dans celui-ci. C'est pourquoi j'ai donné ici une liste de plusieurs utilitaires. L'outil spécifié est responsable de l'ouverture des fichiers binaires. Il existe de nombreux paramètres et la configuration système requise est disponible pour n'importe quel ordinateur.

Travailler dans cet éditeur est aussi simple que d'imprimer dans Word. Il existe des options pour comparer les fichiers, leurs sommes de contrôle et exporter l'analyse vers différents formats, tels que html.

Si vous avez besoin de convertir un code en un autre système de numération, alors Hex Workshop dispose d'un convertisseur. Le programme est un shareware, ce qui peut être considéré comme l'un des inconvénients.

Ici, vous avez appris ce que sont les éditeurs HEX et pourquoi ils sont utilisés. À l'avenir, j'essaierai d'écrire des articles sur le travail avec eux, par exemple lorsque vous devez modifier un fichier.

Après la fin de la série d'articles "Meilleurs outils de pentester", la rédaction a reçu de nombreuses lettres demandant de faire une sélection d'éditeurs hexadécimaux. Bien sûr, l'intérêt n'est pas la possibilité d'éditer des données binaires, mais des fonctionnalités supplémentaires telles que la reconnaissance automatique des structures de données et le désassemblage du code. Pour faire un tour d'horizon, nous avons recueilli les opinions de personnes qui doivent souvent bricoler avec de tels outils - les analystes de virus. Et voici ce qu'ils nous ont dit.

Tout éditeur hexadécimal vous permet d'explorer et de modifier un fichier à un niveau bas, fonctionnant avec des bits et des octets. Le contenu du fichier est présenté sous forme hexadécimale. C'est la fonctionnalité de base. Cependant, certains éditeurs offrent beaucoup plus aux utilisateurs, leur permettant de comprendre, en fait, ce qu'il y a dans cet ensemble de caractères incompréhensibles qui apparaît à l'ouverture d'un fichier. Pour ce faire, les chaînes ASCII et Unicode sont automatiquement extraites, les modèles connus sont recherchés, les structures de données de base sont reconnues, et bien plus encore. Il existe de nombreux éditeurs hexadécimaux, mais si nous décidons de les considérer dans le contexte d'échantillons de logiciels malveillants, il est facile de mettre en évidence certains d'entre eux. Seuls quelques-uns sont vraiment utiles pour analyser le code malveillant et examiner les documents infectés (par exemple, PDF).

McAfee FileInsight

FileInsight est un éditeur hexadécimal gratuit pour Windows de McAfee Labs. Le produit, bien sûr, exécute toutes les fonctionnalités standard associées à un tel logiciel, offrant une interface pratique pour visualiser et éditer des fichiers en modes hexadécimal et texte. Mais ce n'est qu'une goutte dans l'océan, si vous regardez toutes ses fonctionnalités. Cela vaut la peine de commencer par le fait que FileInsight est capable d'analyser la structure des fichiers binaires exécutables pour Windows (fichiers PE), ainsi que les objets Microsoft Office OLE. De plus, l'utilisateur se voit proposer un désassembleur x86 intégré. Il suffit de sélectionner la partie du fichier que vous souhaitez afficher sous forme de code lisible, et FileInsight affichera ce fragment sous la forme d'une liste d'instructions d'assembleur. Le désassembleur est particulièrement utile lors de la recherche de shellcode dans des fichiers malveillants. Les autres options que les inverseurs adoreront sont la possibilité d'importer des déclarations de structure. Pour ce faire, le programme a juste besoin de spécifier un fichier d'en-tête avec des déclarations comme :

struct ANIHeader(
DWORD cbSizeOf ; // Nombre d'octets dans AniHeader
DWORD cFrames ; // Nombre d'icônes uniques
Étapes c DWORD ; // Nombre de Blits
};

Dans ce cas, le programme lui-même analysera ces constructions. Cependant, de nombreux algorithmes intuitifs de traitement de code sont proposés par défaut. Tout d'abord, nous parlons de décoder de nombreuses méthodes d'obfuscation (xor, add, shift, Base64, etc.) - les scripts intégrés cliquent une ou deux fois sur cette cryptoprotection. Ici, il convient de noter que l'objet de la recherche ne doit pas nécessairement être binaire, il peut s'agir d'une page Web ordinaire qui éveille les soupçons. Le programme vous permet d'automatiser de nombreuses actions à l'aide de simples scripts JavaScript ou de modules Python, qui ont déjà été beaucoup écrits. Hélas, avec tous les avantages, FileInsight présente également un sérieux inconvénient, qui se traduit par l'incapacité de traiter des fichiers volumineux. Par exemple, si vous essayez de fournir à l'utilitaire un fichier de 400 à 500 Mo, l'erreur « Échec de l'ouverture du document » se bloque.

Éditeur hexadécimal Neo

Il existe deux versions de cet éditeur hexadécimal de HDD Software - une version gratuite simple et une version commerciale avancée. La version gratuite est un éditeur HEX solide mais banal qui possède une interface personnalisable sympa avec prise en charge de différents schémas de couleurs. Pas plus. Mais la version professionnelle de Hex Editor Neo fournit plusieurs options utiles qui peuvent être extrêmement utiles lors de l'analyse de fichiers binaires. Par exemple, l'utilisateur a la possibilité de décoder le code crypté à l'aide des algorithmes les plus courants. De plus, il devient possible d'afficher et de modifier les ressources locales telles que les flux NTFS, les lecteurs locaux, la mémoire de processus et la RAM. Dans la version la plus complète, il existe également un support pour un langage de script, qui vous permet d'automatiser de nombreux processus à l'aide de scripts en VBScript et JavaScript. Mais la meilleure partie est que vous disposez d'un désassembleur intégré qui fonctionne avec les binaires x86, x64 et .NET ! Une autre caractéristique est la création rapide de correctifs basés sur la comparaison de deux binaires. Cela semble impressionnant, mais est-ce mieux que FileInsight ? Probablement pas. FileInsight semble globalement plus fonctionnel. D'autre part, même la version gratuite de Hex Editor Neo fonctionne très bien même avec de très gros fichiers et vous permet de rechercher des chaînes ASCII et Unicode. Le désassembleur ici n'est pas limité à la plate-forme x86 uniquement, et l'éditeur de ressources intégré est très pratique. Il y a quelque chose à penser.

FlexHex

FlexHex est un puissant éditeur hexadécimal commercial de Heaventools Software qui inclut de nombreuses fonctionnalités disponibles dans Hex Editor Neo. La seule chose qui n'est pas ici est peut-être le support des scripts. Mais cet éditeur complet gère aussi bien les fichiers binaires, les fichiers OLE, les disques physiques et les flux NTFS alternatifs. Ce dernier est particulièrement important car FlexHex vous permet de modifier des données que d'autres éditeurs pourraient même ne pas voir. De plus, vous ressentez immédiatement l'accent mis sur le travail avec de grandes quantités d'informations : quelle que soit la taille du fichier, la navigation dans celui-ci s'effectue sans aucun retard ni frein. Pour encore plus de commodité, il existe un système de signets pratiques. En même temps, FlexHex conserve en permanence un historique de toutes les opérations - vous pouvez annuler n'importe quelle action en la sélectionnant simplement dans la liste des modifications (la liste d'annulation n'est pas limitée) ! FlexHex prend en charge toutes les opérations nécessaires avec des données binaires, en recherchant des chaînes ASCII et Unicode. Si vous devez traiter une structure avec un format déjà connu, il ne sera pas difficile de définir ses paramètres à l'aide d'outils spéciaux. En conséquence, nous obtenons un excellent éditeur hexadécimal, mais toujours bien inférieur au même FileInsight. La seule option remarquable est le traitement des fichiers OLE, mais il y a aussi des problèmes ici. Plusieurs fois en essayant d'ouvrir un OLE infecté, le programme s'est planté avec l'erreur "Le fichier doc a été corrompu".

010 éditeur

010 Editor est un célèbre produit commercial développé par SweetScape Software. Si vous le comparez avec les trois outils précédents, il peut tout faire : il prend en charge le travail avec de très gros fichiers, fournit des capacités de manipulation de données intéressantes, vous permet de modifier des ressources locales, dispose d'un système de script pour automatiser les actions de routine (plus de 140 différents fonctions à votre service). Et 010 Editor a un zeste, une fonctionnalité unique. L'éditeur rend tout le monde heureux grâce à la possibilité d'analyser différents formats de fichiers à l'aide de sa propre bibliothèque de modèles (appelés modèles binaires). Ici, il n'a pas d'égal. De nombreux passionnés du monde entier travaillent sur des modèles, martelant divers formats et structures de données. En conséquence, le processus de navigation à travers différents formats de fichiers devient transparent et compréhensible. Cela s'applique également au traitement des fichiers binaires Windows (fichiers PE), des fichiers de raccourcis Windows (LNK), des archives Zip, des fichiers de classe Java, etc. Tout le charme de cette fonctionnalité a été réalisé par de nombreuses personnes lorsque le célèbre spécialiste de la sécurité Didier Stevens a créé un modèle d'analyse des fichiers PDF pour 010 Editor. Avec d'autres utilitaires, cela simplifie grandement l'analyse des documents PDF infectés, qui, au cours des six derniers mois, n'ont cessé d'étonner par le nombre d'endroits où le lecteur peut être utilisé. Nous ajoutons ici un outil de comparaison binaire sympa, une calculatrice avec une syntaxe de type C, une conversion de données entre les formats ASCII, EBCDIC, Unicode, et nous obtenons un outil très attrayant avec des fonctionnalités uniques.

Haut

Hiew, en termes de méthode de distribution, n'est pas très différent de ses collègues - c'est aussi un produit commercial qui a été développé par notre compatriote Evgeny Suslikov. Avec une longue histoire, le programme est très apprécié par de nombreux professionnels de la sécurité de l'information. Il y a des raisons assez évidentes à cela - des capacités puissantes pour examiner et éditer la structure et le contenu des fichiers exécutables pour les binaires Windows (PE) et Linux (ELF). Une autre fonctionnalité très utile pour l'inversion est l'assembleur et désassembleur x86-64 intégré. Ce dernier prend même en charge les instructions ARM. Inutile de dire que l'éditeur digère parfaitement les fichiers volumineux et vous permet d'éditer les disques logiques et physiques. De nombreuses tâches sont facilement automatisées grâce à un système de macros clavier, de scripts et même d'une API pour développer des extensions (Hiew Extrenal Modules). Mais avant de vous précipiter dans la bataille, gardez à l'esprit que l'interface Hiew est une fenêtre de type DOS, ce qui est assez gênant pour travailler par habitude. Mais vous pouvez sentir par vous-même tout le charme de la vieille école.

radar

Radare est un ensemble d'utilitaires gratuits pour la plate-forme Unix qui offrent des options intéressantes pour éditer des fichiers en mode HEX. Il inclut directement l'éditeur hexadécimal lui-même (radare) avec la possibilité d'ouvrir des fichiers locaux et distants. Le programme analyse les fichiers exécutables de différents formats, à la fois Linux (ELF) et Windows (PE). En plus de l'édition, Radare dispose d'un outil de comparaison de fichiers binaires (radiff) et d'un assembleur/désassembleur intégré. Et personnellement, un outil pour générer des shellcodes (rasc) s'est avéré utile à quelques reprises. Toutes les opérations peuvent être facilement automatisées et personnalisées à l'aide d'un système de script. Parmi les inconvénients, encore une fois, nous pouvons noter l'absence d'interface graphique - toutes les actions sont effectuées à partir de la ligne de commande, et il ne sera possible de travailler pleinement avec les utilitaires qu'après avoir lu la documentation. D'autre part, le site propose des screencasts visuels qui démontrent à la fois les points principaux et les petits secrets (comme connecter un plugin Python).

Alors que choisir ?

Nous avons couvert plusieurs éditeurs hexadécimaux puissants qui incluent des options utiles pour analyser les fichiers suspects. De tous les produits, FileInsight se démarque, qui, malgré toutes ses fonctionnalités (et c'est vraiment impressionnant), reste gratuit. 010 Editor fournit un grand nombre de modèles pour traiter une grande variété de fichiers, y compris des documents PDF. C'est une méga-puce qu'il ne faut pas négliger. Ce sont les deux éditeurs que j'utilise tout le temps ; pour le travail d'un analyste, peut-être, ils sont les mieux adaptés. Si nous parlons de travailler sous la plate-forme Unix, alors, bien sûr, nous ne devons pas oublier Radare. Le package offre des fonctionnalités très puissantes, bien qu'il soit difficile à utiliser en raison du fait qu'il fonctionne à partir de la ligne de commande. Hiew n'est pas non plus très convivial, bien que ses capacités vous permettent certainement d'effectuer une variété d'opérations avec des binaires. De plus, Hiew est le choix de beaucoup de vrais pros, et cela vaut beaucoup (et signifie beaucoup). Quant à Hex Editor Neo, vous devriez le mettre en service si vous êtes intéressé par la possibilité de désassembler le code x86, x64 et .NET.

REMARQUE
Les dessins sur cette page ne sont pas affichés, mais vous pouvez les trouver dans le livre.

Ce que nous allons faire maintenant est très intéressant de mon point de vue. Ce sera votre premier programme de code machine (et probablement le seul))).

L'assembleur est un langage de bas niveau, mais reste un langage. Avez-vous essayé d'écrire un programme en code machine ? Essayons maintenant.

Vous pouvez écrire un programme sans aucun compilateur assembleur et autres outils - en utilisant n'importe quel éditeur hexadécimal (ou éditeur hexadécimal ou éditeur hexadécimal).

Pourtant, l'analyse des programmes dans un éditeur hexadécimal est très utile. Surtout pour ceux qui vont travailler avec l'électronique - après tout, les microprocesseurs ne comprennent ni Pascal ni C ++. Bien qu'il existe des dispositifs et des programmes spéciaux que ces langages leur "expliquent".

Vous avez d'abord besoin d'un éditeur hexadécimal. Vous pouvez utiliser celui que vous avez sous la main. Cependant, j'utiliserai le McAfee FileInsight v2.1 déjà mentionné. Cet éditeur hexadécimal peut être téléchargé gratuitement. Toutes les actions décrites ci-dessous sont valables pour cet éditeur.

Donc, vous avez un éditeur hexadécimal installé. Lançons-le. Nous cliquons sur le bouton OUVRIR, trouvons l'un des fichiers COM que nous avons créés, par exemple, debug_1.com, et chargeons-le dans l'éditeur.

Lorsque le fichier est chargé, vous verrez ce qui suit dans l'éditeur (voir aussi Figure 1.12) :

00000000 B4 02 B2 41 CD 21 CD 20 ...A.!. Vous pouvez ouvrir deux autres fichiers que nous avons créés : mycode.com (créé dans emu8086) ou ATEST.COM (que nous avons créé dans la section ). Voir pareil. Cela signifie que tous les assembleurs produisent le même code machine. Autrement dit, les différences dans le texte du programme ne sont pas fondamentales - elles ne sont dues qu'aux différences dans les assembleurs eux-mêmes.

REMARQUE
Si dans votre cas vous voyez une image différente, soit vous avez ouvert un autre fichier, soit vous le visualisez en mode texte. Dans ce dernier cas, cliquez sur le bouton Afficher comme hexadécimal dans la barre d'outils (voir Figure 1.12).

Que signifient ces chiffres ?

Tout est clair avec des zéros - c'est la première cellule de mémoire dans laquelle le numéro B4 est écrit. Ce numéro sera alors écrit à l'adresse 0100h (pour un fichier COM). La ligne doit contenir 16 chiffres, chacun composé de deux chiffres. Les nombres sont écrits sous forme hexadécimale. Mais notre programme est petit - seulement 8 octets, nous avons donc 8 chiffres.

Eh bien, qu'est-ce que B4? Cette commande est "Entrer la valeur dans le registre AH". Quelle valeur saisit-on ? Correct : 02 (le numéro suivant dans la ligne).

AX=0200 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000 DS=0B72 ES=0B72 SS=0B72 CS=0B72 IP=0102 NV UP EI PL NZ NA PO NC 0B72:0102 B241 MOV DL,41 Voir la dernière ligne de B241 ? Une combinaison familière ? Il s'agit du code de commande MOV DL, 41.

Reste à s'occuper des personnages mystérieux au bout du fil. Et ici tout est simple : chaque chiffre du nombre correspond au code du caractère de la table ASCII, et ces caractères sont affichés dans le même ordre que les chiffres hexadécimaux. Dans ce texte, au lieu de certains caractères, il y a des points (.) - ce ne sont que des codes pour les caractères non alphabétiques.

Eh bien, maintenant écrivons et créons notre programme bien étudié sans assembleurs ni éditeurs de liens. Ouvrez l'éditeur, créez un nouveau fichier (pour cela, cliquez sur le bouton NOUVEAU de la barre d'outils), puis cliquez sur le bouton Afficher en hexadécimal et saisissez les données :

00000000 B4 02 B2 41 CD 21 CD 20 Enregistrez le fichier sous un nom, par exemple, hex_1.com. Tout. Le programme est prêt. Vous pouvez maintenant l'exécuter et admirer à nouveau votre création. Le résultat sera le même que dans tous les cas précédents.

Et une autre agréable surprise de la part de l'éditeur McAfee FileInsight v2.1 - il a son propre désassembleur ! Si vous chargez un fichier exécutable dans l'éditeur et sélectionnez l'onglet DÉSASSEMBLAGE dans le coin inférieur gauche, vous pouvez afficher le code source du programme chargé en langage assembleur (Fig. 1.12).

Pourquoi avons-nous besoin d'éditeurs hexadécimaux et de désassembleurs ? Après tout, c'est si difficile. Oui, ce n'est pas facile. Cependant, les pirates ne le pensent pas. C'est à l'aide d'éditeurs hexadécimaux et de désassembleurs qu'ils cassent les programmes. Ils trouvent les endroits dont ils ont besoin dans le code et les corrigent en fonction de leurs caprices de pirates.

Bien sûr, nous ne sommes pas des hackers. Nous n'interromprons pas les programmes. Cependant, les désassembleurs et les éditeurs hexadécimaux sont également très utiles pour les programmeurs respectueux des lois. Ils sont utilisés, par exemple, pour le débogage, pour l'étude des codes machine, etc. Par exemple, vous savez à quoi ressemble une instruction en langage assembleur, mais vous voulez connaître son code machine. S'il n'y a pas de documentation, il n'y a qu'une seule issue - un éditeur hexadécimal et / ou un désassembleur. Cependant, il convient de noter que toutes les commandes ne rentrent pas dans le code machine à deux chiffres. Certaines commandes sont assez complexes et nécessitent plus de nombres pour être représentées dans les codes machine.

Un éditeur HEX est un programme qui peut afficher des informations comme un ordinateur les "voit", mais en les convertissant en hexadécimal. En ouvrant n'importe quel fichier dans une telle application, l'utilisateur verra une matrice composée de colonnes et de lignes, dont le nombre dépend de la taille du fichier en question. Par conséquent, si vous modifiez les valeurs d'octets dans l'éditeur, le contenu du document ouvert changera également.

Un peu de théorie

Toutes les données sont stockées dans la mémoire du PC sous forme de mots machine, sinon - octets. Chacun comprend 8 bits (chiffres binaires qui prennent la valeur "0" ou "1"). Par des calculs mathématiques, vous pouvez comprendre qu'un nombre compris entre 0 et 255 peut être écrit sur un octet. Si vous convertissez 255 en hexadécimal, il sera converti en FF. Autrement dit, pour afficher n'importe quel mot machine, il est très pratique d'utiliser la représentation hexadécimale. D'où le nom du groupe de programmes - éditeur hexadécimal.

Principaux éléments des programmes

En plus de la matrice décrite ci-dessus, il peut y avoir d'autres moyens dans l'interface du groupe d'applications présenté :

  • Numérotation des lignes. Généralement situé sur le côté gauche de l'application. Affiche le décalage du premier octet de la chaîne par rapport au début du fichier.
  • En haut, il y a souvent une bande de nombres similaire montrant le décalage d'octet de la valeur relative à gauche dans la ligne. En additionnant les valeurs des chaînes, vous pouvez obtenir le nombre de chaque octet.
  • La zone de droite peut afficher les mêmes données que dans le tableau, mais sous forme de texte utilisateur).

McAfee FileInsight

Cet éditeur HEX est absolument gratuit. Fonctionne uniquement dans les systèmes d'exploitation de la famille Windows. Le produit a tout le nécessaire pour gentleman, comme la visualisation et l'édition d'un fichier. En même temps, le programme a une interface agréable et pratique.

Mais les fonctionnalités standard sont le minimum pour lequel FileInsight peut être utilisé. Quel est le maximum ? Vous devez commencer par la capacité d'analyser les structures des fichiers exécutables. N'est-ce pas suffisant? Tout fragment sélectionné peut être désassemblé à la volée. Un clic - et les numéros incompréhensibles deviennent une liste lisible.

Entre autres choses, cet éditeur HEX fournit de nombreux algorithmes de traitement de code pour contourner la protection intégrée par les développeurs. Tout d'abord, vous devez faire attention au décodage des méthodes d'obfuscation telles que add, xor, Base64, shift. Les scripts fournis avec l'application cassent facilement cette protection cryptographique. La plupart des actions peuvent être automatisées en écrivant des scripts simples en JS ou Python. Parfois, il n'est pas nécessaire de créer quoi que ce soit de nouveau, car la base de ceux-ci est impressionnante.

Bien que FileInsight soit considéré comme l'un des meilleurs outils de rétro-ingénierie, le programme présente également un énorme inconvénient - l'incapacité de traiter des fichiers de plus de 400 Mo.

Éditeur hexadécimal Neo

Cet éditeur HEX est distribué en deux versions : gratuite et avancée. Un produit avec une licence freeware est de haute qualité, mais banal. Parmi les fonctionnalités, vous pouvez mettre en évidence les paramètres étendus de l'interface et les schémas de couleurs. La version professionnelle fournit des fonctionnalités plus utiles qui sont particulièrement pertinentes lors de l'analyse

Par exemple, l'utilisateur a la possibilité de décoder des programmes cryptés avec des algorithmes communs. En plus de cela, il existe des fonctions qui permettent d'éditer les ressources locales (RAM, flux NTFS, disques durs). L'automatisation des processus est mise en œuvre à l'aide de scripts VBS et JS.

Cependant, la caractéristique la plus importante du programme est le désassembleur, qui peut fonctionner avec les fichiers x64, x86 et .NET. Une autre fonctionnalité non fournie par les concurrents est la création d'un patch basé sur une comparaison de deux exécutables binaires. Certes impressionnant, mais comparé à FileInsight, Neo perd toujours. Cependant, NEO peut gérer des fichiers volumineux.

Haut

L'éditeur Hiew HEX n'a ​​pas de version gratuite. Une équipe russe est engagée dans le développement. Le produit commence son histoire depuis l'époque des applications 16 bits pour DOS et Windows 3.1. Hiew est souvent utilisé par les professionnels impliqués dans les problèmes de sécurité informatique et de l'information. Les raisons sont claires : toute la gamme des possibilités d'édition et de visualisation des binaires exécutables Windows, ainsi que des programmes Linux compilés (ELF).

Une autre caractéristique notable pour aider à l'ingénierie inverse est le désassembleur et l'assembleur intégrés de Hiew. De plus, ils fonctionnent avec les applications x86 et x86_64, les instructions du processeur sont également prises en charge.L'éditeur gère les fichiers volumineux sans aucune difficulté, vous permet d'effectuer des modifications de données de bas niveau sur les disques durs physiques.

Un grand nombre d'actions peuvent être automatisées. Pour ce faire, les programmeurs ont intégré la possibilité de créer des scripts, des macros de clavier et des fonctions API qui sont utilisées pour appeler des procédures internes à partir d'applications externes. Mais Hiew n'a toujours pas atteint la victoire inconditionnelle dans le domaine des éditeurs hexadécimaux. Son interface est entièrement faite dans le style de DOS, et il est occupé à dessiner des fenêtres (ou la console, si nous parlons de systèmes Linux).

Bonne journée à tous.

Pour une raison quelconque, beaucoup de gens pensent que travailler avec des éditeurs hexadécimaux est le lot de professionnels et que les utilisateurs novices ne devraient pas s'en mêler. Mais, à mon avis, si vous avez au moins des compétences informatiques de base et que vous comprenez pourquoi vous avez besoin d'un éditeur hexadécimal, alors pourquoi pas ?!

Avec l'aide d'un programme de ce type, vous pouvez modifier n'importe quel fichier, quel que soit son type (de nombreux manuels et guides contiennent des informations sur la modification d'un fichier particulier à l'aide d'un éditeur hexadécimal) ! Certes, l'utilisateur doit avoir au moins une compréhension de base du système hexadécimal (les données de l'éditeur hexadécimal y sont présentées). Cependant, des connaissances de base à ce sujet sont données dans les cours d'informatique à l'école, et probablement beaucoup en ont entendu parler et ont une idée à ce sujet (par conséquent, je ne le commenterai pas dans cet article). Voici donc les meilleurs éditeurs hexadécimaux pour débutants (à mon humble avis).

1) Éditeur hexadécimal gratuit Neo

L'un des éditeurs les plus simples et les plus courants pour les fichiers hexadécimaux, décimaux et binaires sous Windows OS. Le programme vous permet d'ouvrir n'importe quel type de fichiers, d'apporter des modifications (l'historique des modifications est enregistré), de sélectionner et de modifier facilement un fichier, de déboguer et d'analyser.

Il convient également de noter un très bon niveau de performances, associé à une faible configuration système requise pour la machine (par exemple, le programme vous permet d'ouvrir et d'éditer des fichiers assez volumineux, tandis que d'autres éditeurs se figent simplement et refusent de travailler).

Entre autres choses, le programme prend en charge la langue russe, possède une interface réfléchie et intuitive. Même un utilisateur novice pourra comprendre et commencer à travailler avec l'utilitaire. En général, je le recommande à tous ceux qui commencent à se familiariser avec les éditeurs hexadécimaux.

2) WinHex

Cet éditeur, malheureusement, est un shareware, mais c'est l'un des plus polyvalents, il prend en charge un tas d'options et de fonctionnalités différentes (dont certaines sont difficiles à trouver chez les concurrents).

En mode éditeur de disque, il vous permet de travailler avec : HDD, disquettes, lecteurs flash, DVD, disques ZIP, etc. Prend en charge les systèmes de fichiers : NTFS, FAT16, FAT32, CDFS.

Je ne peux pas manquer de noter des outils d'analyse pratiques: en plus de la fenêtre principale, vous pouvez en connecter d'autres avec diverses calculatrices, des outils de recherche et d'analyse de la structure des fichiers. En général, convient aux utilisateurs débutants et expérimentés. Le programme prend en charge la langue russe ( sélectionnez le menu suivant : Aide / Configuration / Français ).

WinHex, en plus de ses fonctions les plus courantes (qui prennent en charge des programmes similaires), vous permet de "cloner" des disques et d'en supprimer des informations afin que personne ne puisse jamais les récupérer !

3) Éditeur hexadécimal HxD

Un éditeur binaire gratuit et assez puissant. Prend en charge tous les principaux encodages (ANSI, DOS/IBM-ASCII et EBCDIC), les fichiers de presque toutes les tailles (d'ailleurs, l'éditeur vous permet d'éditer la RAM en plus des fichiers, d'écrire directement les modifications sur le disque dur !).

Vous pouvez également noter une interface bien pensée, une fonction pratique et simple pour rechercher et remplacer des données, un système de sauvegardes et de restaurations par étapes et à plusieurs niveaux.

Après le démarrage, le programme se compose de deux fenêtres : à gauche se trouve un code hexadécimal, et à droite se trouve une traduction de texte et le contenu du fichier.

Parmi les inconvénients, je soulignerais le manque de langue russe. Cependant, de nombreuses fonctions seront claires même pour ceux qui n'ont jamais appris l'anglais...

4) HexCmp

HexCmp - ce petit utilitaire combine 2 programmes à la fois : le premier vous permet de comparer des fichiers binaires entre eux, et le second est un éditeur hexadécimal. C'est une option très utile lorsque vous avez besoin de trouver des différences dans différents fichiers, cela aide à explorer la structure différente d'une grande variété de types de fichiers.

Soit dit en passant, les lieux après comparaison peuvent être peints dans une couleur différente, selon l'endroit où tout correspond et où les données sont différentes. La comparaison se fait à la volée et est très rapide. Le programme prend en charge les fichiers dont la taille ne dépasse pas 4 Go (ce qui est suffisant pour la plupart des tâches).

En plus de la comparaison habituelle, vous pouvez comparer dans la version texte (ou même les deux à la fois !). Le programme est assez flexible, vous permet de personnaliser le jeu de couleurs, de spécifier les boutons de raccourci. Si vous configurez le programme correctement, vous pouvez travailler avec sans souris du tout ! En général, je recommande que tous les "vérificateurs" novices des éditeurs hexadécimaux et des structures de fichiers soient familiarisés.

Messages similaires