hextrim

Hextrim è una piccola utility da terminale che svolge una semplice operazione che stranamente non è svolta da nessun tool standard di unix.

Hextrim usa come input lo stdin e lo copia sullo stdout rimuovendo le occorrenze della stringa binaria presentata in esadecimale come parametro.

Hextrim è publicato sotto licenza Gnu GPL

Hextrim is a simple tool that executes a simple task curiosly not performed by any unix standard tool.

Hextrim use stdin as input and copy it to stdout cutting out every matches of the bynary string given as parameter.

Hextrim is given under the Gnu GPL license

Download Source [hextrim-0.2.tar.bz2]

Download binary (linux x86) [DOWNLOAD]


Esempio d’uso

cat foo.dat | hextrim 1CAFFE >> bar.dat


Note sull’implementazione

Il codice è scritto in c/c++ standard ansi (niente stl tralaltro).

la ricerca all’interno del pattern è effettuata un algoritmo di backtrack che genera una rete a stati finiti in cui sono descritti i collegamenti che portano direttamente al riconoscimento del pattern e i vari salti all’indietro da effettuare in caso di errori.
La tabella dei salti è generata analizzando le ridondanze interne al pattern
Questo algoritmo è stato sviluppato da Knut, Morris e Pratt nel 1977 e permette di eseguire la ricerca in tempo O(n+k) dove n è la lunghezza del testo e k la lunghezza del pattern

4 commenti

No ping yet

  1. thedarshan scrive:

    mi è capitato ti voler estrarre delle stringhe da un file binario, e a volte in mezzo alla stringa c’era una sottostringa binaria che andava rimossa.
    quindi ho scritto questo tool.

    1. Antonio Di Salvo scrive:

      Ciao,
      per effettuare operazioni simili di solito risulta comodo utilizzare sed.

      1. Vincenzo La Spesa scrive:

        Trovo sed veramente scomodo per lavorare su stringhe binarie

  2. The Black Voice scrive:

    Però non riesco a capirne l’utilità…

Lascia un Commento

Il tuo indirizzo mail non sarà pubblicato!

Puoi usare i seguenti tag HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>