lano
Aktives Mitglied
Moin.
Ich hab da nen kleines Problem.
Ich möchte Dateien anhand ihrer ersten 40 byte erkennen.
Dazu hab ich mir Folgendes gedacht...
Drei Programme...
Das erste "fb_hexdump" liest die ersten 40 byte einer datei und gibt sie als hex aus.
Das zweite "fb_hexdump_compare" liest die liste der hex dumps ein und erstelle einen hex string in dem die bits makiert sind die bei allen hex dumps gleich sind.
Das geht bei mir schief.
Das ist zB meine Liste die verglichen werden soll.
Wenn ich das durch Programm Nummer 2 schiebe erhalte ich sowas:
Die Ausgabe ist nicht richtig...
Das dritte "fb_magic" soll einen übergebenen hexdump mit einer liste von bekannten vergleichen und den datei typ ausgeben.
ich hab mir gedacht ich speichere die daten in fb_magic so
Lasst euch von den unterschiedlichen Werten nicht verwirren, es dient nur als beispiel.
Meine Frage an sich.... Kann man das so machen? Gibts da nen einfacheren Weg?
Ich hab da nen kleines Problem.
Ich möchte Dateien anhand ihrer ersten 40 byte erkennen.
Dazu hab ich mir Folgendes gedacht...
Drei Programme...
Das erste "fb_hexdump" liest die ersten 40 byte einer datei und gibt sie als hex aus.
Bash:
fb_hexdump -f fb_hexdump
7F454C46010101000000000000000000020028000100000038050100340000003C1D000000040005
Das zweite "fb_hexdump_compare" liest die liste der hex dumps ein und erstelle einen hex string in dem die bits makiert sind die bei allen hex dumps gleich sind.
Das geht bei mir schief.
Das ist zB meine Liste die verglichen werden soll.
Bash:
find . -type f -name "*.sh" -exec fb_hexdump -f {} \; | grep ^23
2321202F62696E2F73680A0A4C4F43414C5F444F574E4C4F41445F4E414D453D222F7661722F746D
2321202F62696E2F73680A0A23232323232323232323232323232323232323232323232323232323
23212F62696E2F73680A0A6563686F2022232323232320424547494E2053454354494F4E20636667
23212F62696E2F73680A736574202D65756F20706970656661696C0A0A2320537570706F72746461
23212F62696E2F73680A0A232052657065617465720A6966205B202D78202F7362696E2F72657874
23212F62696E2F73680A0A6966205B202D65202F7661722F746D702F7765626461762E6C6F67205D
23212F62696E2F73680A0A666F72206620696E2024286C73202F7661722F746D702F6C69626D7372
23212F62696E2F73680A0A6563686F2022232323232320424547494E2053454354494F4E20426F78
23212F62696E2F73680A0A6563686F2022232323232320424547494E2053454354494F4E20736367
23212F62696E2F73680A736574202D65756F20706970656661696C0A0A2320537570706F72746461
23212F62696E2F73680A736574202D65756F20706970656661696C0A0A2320537570706F72746461
23212F62696E2F73680A0A23203D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D0A2320636F6D6D6F6E
23212F62696E2F73680A0A230A2320536574757020616E64206272696E6775702074686520504D49
23212F62696E2F73680A0A230A2320536574757020746865205652583631382044534C2D6461656D
23212F62696E2F73680A232323203D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D0A23232320546869
23212F62696E2F73680A0A230A2320636F6E6669677572652074686520434F2F435045206C696E65
23212F62696E2F73680A0A230A232053657475702074686520565258363138206461746170617468
23212F62696E2F73680A0A230A2320536574757020616E64206272696E6775702074686520565258
23212F62696E2F73680A0A23232054686973207363726970742063616E20626520757365642C2074
2323237374204350452073746172747570207363726970742323232323232323230A232323232323
2321202F62696E2F73680A6578656320323E202F6465762F636F6E736F6C650A2323204C6F616469
2321202F62696E2F73680A49474E4F52455F414E445F45584954202829207B0A6563686F2049474E
23212F62696E2F73680A0A0A232055506E50207265717569726573206C6F6F706261636B0A696663
23212F62696E2F73680A0A5245424F4F545F464F525F5550444154453D60636174202F70726F632F
23212F62696E2F73680A232323232323232323232323232323232323232323232323230A23232323
2321202F62696E2F73680A0A44454255474F5054533D22220A6966205B2022247B3123232D646562
23212F62696E2F73680A2323204B756E64656E2D4669726D776172650A2323204C6F6767696E6720
23212F62696E2F73680A746666735F6E6F6465735F696E69742829207B0A23232323232323232323
2321202F62696E2F73680A6361736520243120696E0A7374617274290A7069646F66207069637475
2321202F62696E2F73680A0A6361736520243120696E0A0A7374617274290A202020206966205B20
23212F62696E2F73680A232323232323232323232323232323232323232323232323232323232323
23212F62696E2F73680A2320496E636C756465206D6F64656C20696E666F726D6174696F6E0A0A47
2321202F62696E2F73680A2323232323232323232323232323232323232323232323232323232323
23212F62696E2F73680A2320696E74656E74696F6E616C6C79206C65667420626C616E6B0A656368
23212F62696E2F73680A233D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D
2321202F62696E2F73680A4D41585F444F574E4C4F41445F53495A453D313030300A696E3D222431
2321202F62696E2F73680A0A4C4F43414C5F444F574E4C4F41445F4E414D453D222F7661722F746D
2321202F62696E2F73680A0A23232323232323232323232323232323232323232323232323232323
2321202F62696E2F73680A0A23232323232323232323232323232323232323232323232323232323
23212F62696E2F73680A0A74726170202222205349474855500A0A56455253494F4E3D27312E3020
23212F62696E2F73680A2320696E74656E74696F6E616C6C79206C65667420626C616E6B0A656368
23212F62696E2F73680A0A2323232323232323232323232323232323232323232323232323232323
Wenn ich das durch Programm Nummer 2 schiebe erhalte ich sowas:
Bash:
find . -type f -name "*.sh" -exec fb_hexdump -f {} \; | grep ^23 | fb_hexdump_compare
Original Hex Dump:
2321202F62696E2F73680A0A4C4F43414C5F444F574E4C4F41445F4E414D453D222F7661722F746D
Compare Hex Dump:
Original Hex Dump:
2321202F62696E2F73680A0A4C4F43414C5F444F574E4C4F41445F4E414D453D222F7661722F746D
Compare Hex Dump:
2321202F62696E2F73680A0A23232323232323232323232323232323232323232323232323232323
Original Hex Dump:
2321202F62696E2F73680A0A4C4F43414C5F444F574E4C4F41445F4E414D453D222F7661722F746D
Compare Hex Dump:
Original Hex Dump:
2321202F62696E2F73680A0A4C4F43414C5F444F574E4C4F41445F4E414D453D222F7661722F746D
Compare Hex Dump:
23212F62696E2F73680A0A6563686F2022232323232320424547494E2053454354494F4E20636667
Original Hex Dump:
2321202F62696E2F73680A0A4C4F43414C5F444F574E4C4F41445F4E414D453D222F7661722F746D
Compare Hex Dump:
Hex Representation of Differences:
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
Das dritte "fb_magic" soll einen übergebenen hexdump mit einer liste von bekannten vergleichen und den datei typ ausgeben.
Bash:
fb_magic 2321202F62696E2F73680A0A4C4F43414C5F444F574E4C4F41445F4E414D453D222F7661722F746D
ich hab mir gedacht ich speichere die daten in fb_magic so
C:
{"Shell File", "23212F62696E2F73680A0A2323232323232323232323232323232323232323232323232323232323",
"00020F5D1F4F6D7F3F6A7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F"},
Lasst euch von den unterschiedlichen Werten nicht verwirren, es dient nur als beispiel.
Meine Frage an sich.... Kann man das so machen? Gibts da nen einfacheren Weg?