Domanda

Ho una serie di file di configurazione binari con tre versioni ciascuno - un originale, e due versioni diversamente modificate di ogni file. Ho bisogno di essere in grado di vedere le differenze tra le due versioni, così come l'originale, tutto allo stesso tempo.

Quello che ho bisogno è uno strumento diff a tre vie per i file binari. Attraverso un piuttosto estenuante ricerca su Google, alla fine ho capitato su un screenshot di un'applicazione che fa esattamente quello che mi serve - purtroppo, il post sul forum che contiene l'immagine non menziona quale applicazione è che stanno usando :

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

Qualcuno può punto nella direzione di un'applicazione (Windows) che fornisce un (hex) confronto binario di sicurezza di tre file binari me ??

È stato utile?

Soluzione

L'immagine è da Araxis Merge . La loro pro edizione ($ 270) supporta 3-way confronta.

Altri suggerimenti

Vim ha un built-in strumento di diff che può confrontare un numero arbitrario di file. Funziona anche su Windows. Lo si può trovare a http://vim.org .

L'installazione standard di vim per Windows include xxd, che permette di vedere file binari come testo:

Così, per esempio, se si tenta:

xxd xxd.exe

si otterrà:

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.../.../.../...

ecc ...

Così si può utilizzare xxd per scaricare i file binari in file di testo:

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

E vim quindi eseguire in modalità diff:

vim -d orig mod1 mod2

E questo vi darà qualcosa di simile:

esempio di 3-way vimdiff

(Questo screenshot è stato preso da qui e non più è che un esempio di ciò che un diff 3 vie sarà simile a VIM)

Tutti questi strumenti sono disponibili in finestre, in modo che dovrebbe risolvere il problema.

Modifica

Dopo aver unito i risultati di xxd, è possibile convertire il dump esadecimale in un file binario utilizzando xxd -r:

xxd -r merged_xxd_file merged_binary_file

È possibile vedere i dettagli e le opzioni in xxd c'è pagina di manuale

Si potrebbe avere uno sguardo a ECMerge (un lavoro che ho strumento su), ha un 2 e 3- modo diff dei file binari (HEX + ASCII). Non v'è alcuna funzione di unione. È possibile spostarsi da un'area modificato in zona cambiare facilmente e zone lunghe compatte (lungo inserimenti, modifiche o invariato).

L'ultima versione di Beyond Compare sembra sostenere 3-way diff e unire . Inoltre, il suo lista delle caratteristiche dice che supporta confronto di file binari.

Si noti che questo non è software libero: -)

I è stato recentemente introdotto per p4merge , che sembra supportare anche file binari.

Ci vogliono 3 file in input: L'originale e due derivati. Essa mostra loro side-by-side, con una quarta finestra che mostra il file fuse, con funzionalità di editing e la risoluzione dei conflitti.

Ho appena usato questo per unire due rami di una grande base di codice, ed era estremamente comodo.

esempio p4merge

Ora, non ho usato per unire i file binari, ma ha il supporto diffing immagini, così mi sarei sorpreso se i binari non erano supportati.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top