(Last updated: 16/03/10)
TrIDScan - Patterns scanner
TrIDScan è il modulo che si occupa di generare una definizione valida e utilizzabile con TrID, a
partire da un insieme di files dello stesso tipo.
La cosa funziona cosi. Volendo "addestrare" TrID a riconoscere dei files Class di Java, occorre
semplicemente:
Raccogliere un certo numero di files Class (più sono meglio è, ma già con una decina
si dovrebbe poter essere tranquilli)
Farli esaminare da TrIDScan, indicando il path in cui trovare i files di cui prima
D:\Trid>tridscan f:\test\*.class
TrID/32 - Scan Module v1.56 - (C) 2003-04 By M.Pontello
Checking files...
Found 97 matching files
Header Block Size: 222
Scanning for patterns...
Pattern(s) found: 3
Last Pattern end at offset: 11
Scanning for raw strings...
Raw string(s) found: 64
Pre-filtering strings...
Phase 1... 100%
Phase 2... 100%
Erasing substrings... 100%
String(s) found: 3
Writing XML file ...
Finished!
|
La scansione è generalmente molto veloce anche in presenza di molti files da analizzare.
In alcuni casi tuttavia, ad esempio se non c'è almeno un files di dimensioni contenute
(diciamo sotto i 300/500KB), e il contenuto degli stessi è virtualmente casuale
(ad esempio file compressi, MP3, JPEG, etc.) può essere utile disabilitare la scansione
delle stringhe caratteristiche con il parametro "/NS". Cosi facendo, la scansione diventa
praticamente istantanea anche per un migliaio di files.
TrIDScan produce un file "newtype.trid.xml" che rappresenta
una sorta di "definizione" di quel tipo di files. Quindi, si procede rinominando in modo
opportuno il file appena creato (in questo caso, "java-class.trid.xml" potrebbe essere la scelta migliore),
e lo si edita in modo da inserire una descrizione concisa del formato che rappresenta e
l'estensione standard per quella tipologia di files.
In questo modo si può creare una raccolta di patterns per una determinata tipologia di files
senza dover avere la minima conoscenza della struttura di quei files, senza dover usare un editor
HEX per darci un'occhiata, e senza cercare info su header caratteristico, etc.!
Il file "java-class.trid.xml" appena rinominato avrà quest'aspetto:
<TrID ver="2.00">
<Info>
<FileType>Java Bytecode</FileType>
<Ext>class</Ext>
<ExtraInfo>
<Rem></Rem>
<RefURL></RefURL>
</ExtraInfo>
<User>Marco Pontello</User>
<E-Mail>marcopon-nospam@myrealbox.com</E-Mail>
</Info>
<General>
<FileNum>80</FileNum>
<CheckStrings>True</CheckStrings>
<Date>
<Year>2003</Year>
<Month>11</Month>
<Day>14</Day>
</Date>
<Time>
<Hour>03</Hour>
<Min>10</Min>
<Sec>51</Sec>
</Time>
</General>
<FrontBlock>
<Pattern>
<Bytes>CAFEBABE00</Bytes>
<Pos>0</Pos>
</Pattern>
<Pattern>
<Bytes>00</Bytes>
<Pos>6</Pos>
</Pattern>
<Pattern>
<Bytes>00</Bytes>
<Pos>11</Pos>
</Pattern>
</FrontBlock>
<GlobalStrings>
<String>Code</String>
<String>init</String>
<String>java</String>
</GlobalStrings>
I campi "user", "e-mail" e "home" serviranno naturalmente per ricoprire di gloria e onori chi
vorrà contribuire ad ampliare la base di definizioni di TrID! :-)
Il default per questi campi può essere impostato nel file "tridscan.cfg.xml", che si presenta cosi:
<?xml version="1.0"?>
<settings>
<User>Marco Pontello</User>
<E-Mail>marcopon@nospam@myrealbox.com</E-Mail>
<Home>http://mark0.net</Home>
</settings>
I campi "Rem" e "RefURL", invece, servono per poter includere rispettivamente un
commento o indicare un sito di riferimento o comunque con informazioni utili relativamente
al tipo di files in questione. Per esempio, nel caso dei files Class, si potrebbe
scrivere qualcosa del genere:
<ExtraInfo>
<Rem></Rem>
<RefURL>http://java.sun.com/</RefURL>
</ExtraInfo>
A questo punto, la nuova definizione si aggiunge all'insieme di quelle già note.
Quando TrID viene lanciato, carica tutti i patterns conosciuti (ovvero quelli
presenti nella sua directory) e in base a questi analizza il file da identificare.
E' anche possibile "affinare" una definizione, eseguendo una scansione di alcuni files e indicando
a TrIDScan di partire da una definizione già esistente, anzichè da 0. In questo modo sarà come
avere a disposizione anche tutti i files che sono già stati analizzati (magari da altre persone).
Per utilizzare la funzione di refining, è sufficente aggiungere alla linea di comando anche la
definizione da utilizzare come base. La nuova definizione sostituirà la precedente, dopo che
quest'ultima sarà stata salvata come "newtype.trid.xml.bak" (se ci fosse la necessità di
recuperare lo stato precedente). Per esempio:
D:\Trid>tridscan c:\dev\programs\*.class java-class.trid.xml
|
E' anche possibile forzare il rescan delle stringhe caratteristiche, magari perchè
quella che si va a rifinire è una definizione prodotta con una versione di TrIDScan
che non le supportava ancora. In questo caso, è sufficente specificare il parametro
"/FS".
Visto che è veramente molto agevole produrre nuove definizioni, spero di poter raccogliere
un buon numero di defs in modo che chiunque si trovi ad utilizzare TrID possa contare su una
libreria di defs più completa e accurata possibile.
Quindi date fondo a quella marea di files che vi trovate sparsi negli oscuri meandri dei
vostri hard disks e mandate le definzioni all'e-mail che trovate nella pagina dei
Contacts!
Le nuove definizioni verranno aggiunte (o sostituite, se migliorative) a quelle già raccolte
e verranno messe a disposizione di tutti da queste pagine.
|
N.B.
Una nota riguardo alla preparazione dei files per lo scan e all'assegnazione
delle descrizioni:
Siate specifici se potete, generici se dovete!
Ovvero: se avete a disposizione un tot di files da voi prodotti con, mettiamo,
il Turbo Pascal della Borland, con varie versioni dello stesso, chiamateli
un qualcosa tipo "EXE DOS Borland Turbo Pascal".
Se invece sapete per certo che quei 10 files li aveti compilati con il TP 5.5,
usate pure "EXE DOS Borland Turbo Pascal V5.5".
|
Download
|
Win32
|
TrIDScan v1.56, 28KB ZIP
|
|
Win32
|
TrIDDefsPack v1.10, 23KB ZIP
|
|
|
TrID XML def, 667KB
RAR
(archivio con 3908 definizioni, 16/03/10)
|
Change Log
TrIDScan/32 v1.56 del 22/12/04:
+ Le stringhe caratteristiche vengono ordinate per lunghezza.
TrIDScan/32 v1.55 del 20/11/03:
+ Non viene più fatta distinzione tra maiuscole/minuscole per le stringhe caratteristiche.
+ Sistemato un possibile bug nella funzione di refining
TrIDScan/32 v1.50 del 15/11/03:
+ Rilevazione di stringhe caratteristiche in qualsiasi posizione nei files
analizzati - può essere forzata con "/FS" o disabilitata con "/NS"
TrIDScan/32 v1.23 del 13/08/03:
+ Nuova funzionalità per il refining delle definizioni.
+ Aggiunta la sezione <ExtraInfo> con gli elementi <Rem> (per dei commenti) e
<RefURL> (per indicare un URL di riferimento).
TrIDScan/32 v1.00.1 del 13/07/03:
+ Nelle definizioni generate è stato aggiunto l'elemento <ASCII>, che contiente un
dump del pattern a cui si riferisce. Si tratta solo di un hit per l'utente, per agevolare
la valutazione e l'editing della def.
|
|