Question

J'ai un ensemble de fichiers de configuration binaires avec trois versions chacune - un original et deux versions modifiées différemment de chaque fichier. Je dois être en mesure de voir les différences entre les deux versions, ainsi que l'original, tout en même temps.

Ce que je besoin est un outil de comparaison à trois voies pour les fichiers binaires. A travers une recherche Google plutôt épuisant, je finalement arrivé sur une capture d'écran d'une application qui fait exactement ce que je dois - malheureusement, le forum post contenant l'image ne mentionne pas quelle application il est qu'ils utilisent :

http://www.xboxhacker.org/index.php?topic=15032.0

point que quelqu'un peut me dans le sens d'un (Windows) application qui fournit une comparaison (hex) binaire de sécurité de trois fichiers binaires ??

Était-ce utile?

La solution

La capture d'écran est de Araxe de fusion. Leur édition pro (270 $) prend en charge 3 voies compare.

Autres conseils

Vim dispose d'un outil diff intégré qui permet de comparer un nombre arbitraire de fichiers. Il fonctionne également sous Windows. Vous pouvez trouver http://vim.org .

L'installation standard de vim pour Windows comprend xxd, qui vous permet de voir les fichiers binaires sous forme de texte:

Ainsi, par exemple si vous essayez:

xxd xxd.exe

vous obtiendrez:

0000000: 4d5a 9000 0300 0000 0400 0000 ffff 0000  MZ..............
0000010: b800 0000 0000 0000 4000 0000 0000 0000  ........@.......
0000020: 0000 0000 0000 0000 0000 0000 0000 0000  ................
0000030: 0000 0000 0000 0000 0000 0000 d800 0000  ................
0000040: 0e1f ba0e 00b4 09cd 21b8 014c cd21 5468  ........!..L.!Th
0000050: 6973 2070 726f 6772 616d 2063 616e 6e6f  is program canno
0000060: 7420 6265 2072 756e 2069 6e20 444f 5320  t be run in DOS 
0000070: 6d6f 6465 2e0d 0d0a 2400 0000 0000 0000  mode....$.......
0000080: 6ba7 bec3 2fc6 d090 2fc6 d090 2fc6 d090  k.../.../.../...

etc ...

Vous pouvez donc utiliser xxd pour vider vos fichiers binaires dans des fichiers texte:

xxd orig > orig.txt
xxd mod1 > mod1.txt 
xxd mod2 > mod2.txt

Et puis exécutez vim en mode diff:

vim -d orig mod1 mod2

Et cela vous donnera quelque chose comme ceci:

exemple de 3 voies vimdiff

(Cette capture d'écran a été prise et est plus qu'une illustration de ce qu'est un diff 3 voies ressemblera à VIM)

Tous ces outils sont disponibles dans les fenêtres, ils doivent donc résoudre votre problème.

Modifier

Une fois que vous fusionnez les résultats de xxd, vous pouvez convertir le vidage hexadécimal dans un fichier binaire en utilisant xxd -r:

xxd -r merged_xxd_file merged_binary_file

Vous pouvez voir plus de détails et d'options dans xxd est manpage

Vous pourriez avoir un regard ECMerge (œuvre I de l'outil sur), il a 2 et 3- manière diff des fichiers binaires (ASCII HEX +). Il n'y a pas de fonction de fusion. Vous pouvez passer de la zone changée à la zone de changement facilement et longues zones compactes (insertions longues, des changements ou sans changement).

La dernière version de Beyond Compare semble soutenir 3 voies diff et fusionner . De plus, son liste des fonctionnalités dit qu'il soutient la comparaison des fichiers binaires.

Notez que ce n'est pas un logiciel libre: -)

J'a été récemment présenté à P4Merge , qui semble soutenir également les fichiers binaires.

Il faut 3 fichiers en entrée: l'original et deux dérivés. Il montre les côte à côte, avec une quatrième fenêtre qui affiche le fichier fusionné, avec des capacités d'édition et la résolution des conflits.

Je viens d'utiliser cela pour fusionner deux branches d'un grand codebase, et il était extrêmement pratique.

exemple P4Merge

Maintenant, je n'ai pas utilisé pour fusionner des fichiers binaires, mais il ne supporte diffing images, donc je serais surpris si les binaires ne sont pas pris en charge.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top