abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×

dnes 11:30 | Komunita

Etherpad (Wikipedie), svobodný online webový textový editor umožnující spolupráci v reálném čase, se stal oficiálním projektem organizace Software Freedom Conservancy (Wikipedie). Vývojáři Etherpadu se tak mohou stejně jako vývojáři dalších projektů soustředit pouze na vývoj softwaru a vše kolem zařídí Software Freedom Conservancy. Spuštěna byla instance Etherpadu pad.sfconservancy.org.

Ladislav Hagara | Komentářů: 1
dnes 10:40 | Zajímavý článek

Lukáš Růžička se v článku Workrave ve Fedoře aneb jak si nevytunelovat karpál na MojeFedora.cz věnuje aplikaci Workrave (Wikipedie) na sledování času stráveného na počítači, která může pomoci vyhnout se negativním účinkům práce s počítačem (RSI, CTS), nebo je alespoň výrazně zmírnit.

Ladislav Hagara | Komentářů: 1
dnes 10:00 | Komunita

Na Humble Bundle lze získat počítačovou hru Shadow Warrior: Special Edition běžící také v Linuxu zdarma. Speciální akce končí v sobotu v 19:00.

Ladislav Hagara | Komentářů: 1
včera 23:11 | Nová verze

Byla vydána verze 2.4.0 analyzátoru síťového provozu Wireshark. Jedná se o první stabilní verzi nové řady 2.4. Podrobný přehled novinek v poznámkách k vydání. V červnu proběhla konference SharkFest’17 US věnovaná Wiresharku. Záznamy přednášek jsou k dispozici na YouTube.

Ladislav Hagara | Komentářů: 0
včera 13:11 | Pozvánky

Spolek OpenAlt zve příznivce otevřeného přístupu na 142. brněnský sraz, který proběhne v pátek 21. července od 18:00 hodin ve Sport Centru Srbská (Srbská 4). Od 19:00 je pro zájemce zamluveno hřiště na plážový volejbal.

Ladislav Hagara | Komentářů: 0
včera 12:34 | Bezpečnostní upozornění

V GNOME Soubory, původně Nautilus, konkrétně v generování náhledů exe, msi, dll a lnk souborů byla nalezena a opravena bezpečnostní chyba CVE-2017-11421 s názvem Bad Taste. Při otevření složky obsahující tyto soubory může být spuštěn VBScript obsažen v názvech těchto souborů.

Ladislav Hagara | Komentářů: 2
včera 11:00 | Bezpečnostní upozornění

Společnost Oracle vydala čtvrtletní bezpečnostní aktualizaci svých softwarových produktů (CPU, Critical Patch Update). Opraveno bylo celkově 308 bezpečnostních chyb. V Oracle Java SE je například opraveno 32 bezpečnostních chyb. Vzdáleně zneužitelných bez autentizace je 28 z nich. V Oracle MySQL je opraveno 30 bezpečnostních chyb. Vzdáleně zneužitelných bez autentizace je 9 z nich.

Ladislav Hagara | Komentářů: 0
včera 01:00 | Komunita

Mark Krenz, známý svým twitterovým účtem @climagic (Command Line Magic), kde ukazuje, co vše a jak lze dělat v příkazovém řádku, přednášel včera v Praze. Záznam přednášky je k dispozici na YouTube.

Ladislav Hagara | Komentářů: 1
19.7. 10:00 | Nová verze

Microsoft vydal Skype pro Linux ve verzi 5.4 Beta. Nejnovější Skype pro Linux je postaven na frameworku Electron 1.7.4 a přináší skupinové videohovory.

Ladislav Hagara | Komentářů: 11
19.7. 06:00 | Nová verze

Werner Koch, zakladatel a hlavní vývojář GnuPG, oznámil vydání verze 1.8.0 svobodné kryptografické knihovny Libgcrypt. Jedná se o první stabilní verzi nové řady 1.8. Ta je API i ABI kompatibilní s řadou 1.7. Z novinek vývojáři zdůrazňují podporu kryptografických hašovacích funkcí Blake2 (Wikpedie), šifrovací mód XTS nebo zvýšení výkonu na architektuře ARM.

Ladislav Hagara | Komentářů: 0
Chystáte se pořídit CPU AMD Ryzen?
 (7%)
 (31%)
 (1%)
 (10%)
 (43%)
 (8%)
Celkem 1031 hlasů
 Komentářů: 65, poslední 1.6. 19:16
    Rozcestník

    Dotaz: Reverse engineering datových formátů

    16.2.2005 20:28 unchallenger | skóre: 69 | blog: unchallenger
    Reverse engineering datových formátů
    Přečteno: 265×
    Hledám nějaký nástroj na $SUBJ. Pro začátek bych chtěl alespoň (pohodlně) vypisovat bloky ze souborů interpretované jako všechny možné typy (od usinged char po big endian IEEE double), vypsat z N souborů hodnoty na daném offsetu interpretované jako daný typ, hledat offsety, na nichž leží daná hodnota, když se správně interpretuje, etc. Navymýšlel bych si i pokročilejší funkce, ale zatím to vypadá, jako bych si musel něco napsat i na ty základní. Tudíž otázka je: Co na to použít?

    Odpovědi

    Vašek Lorenc avatar 16.2.2005 22:02 Vašek Lorenc | skóre: 27
    Rozbalit Rozbalit vše Re: Reverse engineering datových formátů
    Bohužel neznám konkrétní produkt, ale vzhledem k tomu, že máš na práci nejspíš dost jiných věcí, nebylo by lepší tím pověřit nějakého šikovného diplomanta (třeba z informatiky)? Užitečná diplomka je poměrně vzácný jev.. ;)
    ...včetně majestátného loosa
    16.2.2005 22:57 Michal Marek (twofish) | skóre: 55 | blog: { display: blog; } | Praha
    Rozbalit Rozbalit vše Re: Reverse engineering datových formátů
    To je obávám se tak na zápočet...

    Yeti: kdyby ses do toho pustil sám, tak dej vědět (třeba v blogu, mi tě nezastřelíme). BTW: khexedit asi není to, co chceš slyšet?
    Vašek Lorenc avatar 16.2.2005 23:21 Vašek Lorenc | skóre: 27
    Rozbalit Rozbalit vše Re: Reverse engineering datových formátů

    Netřeba se obávat :) Spíš šlo o to nechat práci někomu, kdo by ji rád dodělal a navíc by z toho měl užitek -- ať už jako bakalářku nebo zápočet.

    Možná by bylo ale zajímavé někde hodit nějaký Wiki web a dávat tam různé poznámky a možná řešení k implementaci.. Nebo do blogu, ale ten by k tomu nemusel být tak vhodný. Nějaké hledání vzrůstajících/klesajících sekvencí by se třeba taky hodilo, zvlášť s různými odstupy (ať už hodnot nebo pozic v souboru) -- indexy nebo něco takového by se tím při velké dávce štěstí daly odhalit.. Ale takových nápadů má určitě kdekdo celé kapsy :)

    ...včetně majestátného loosa
    16.2.2005 23:22 unchallenger | skóre: 69 | blog: unchallenger
    Rozbalit Rozbalit vše Re: Reverse engineering datových formátů
    Na zápočet? To by byl pěkně levný zápočet ;-)

    Ad khexedit. To je přesně to, co chci, až na to, že to potřebuji skriptovat, a ne klikat (tedy někdy i interaktivně, a na to vypadá docela použitelně, až na to, že v hlavním okně umožňuje jen jednobajtové formáty, což je pro mě pruda, protože reálná čísla zatím z hexdumpu číst neumím). Mám třeba dvacet souborů a hypotézu, že na offsetu 0x0022 je jako little endian IEEE single nějaká zajímavá hodnota. Tak chci vypsat ze všech zároveň, co by to bylo zač, ve formátu soubor: hodnota. Strávil jsem v khexeditu jen několik minut, ale nevidím způsob, jak to udělat bez oteveření dvaceti oken nebo otevření dvaceti souborů postupně a čtyřiceti Ctrl-C, přepnutí okna, Ctrl-V, přepnutí okna.
    elviin avatar 16.2.2005 22:20 elviin | skóre: 29 | blog: elviin | Plzeň-Praha
    Rozbalit Rozbalit vše Re: Reverse engineering datových formátů
    Jestli jsem to spravne pochopil (jeste nevim, co je to $SUBJ), tak tomu by mohl poslouzit Bison.
    16.2.2005 22:37 unchallenger | skóre: 69 | blog: unchallenger
    Rozbalit Rozbalit vše Re: Reverse engineering datových formátů
    No, to moc ne. Možná jsem to nenapsal jasně, ale jde mi o binární data, v textových se obvykle jde vyznat, a o interaktivní šťourání, což yacc + lex stejně neumožňují.

    P.S.: $SUBJ je proměnná obsahující na předmět zprávy (subject).
    16.2.2005 22:45 Michal Čihař | skóre: 61 | blog: Bláboly | Praha
    Rozbalit Rozbalit vše Re: Reverse engineering datových formátů
    Jediné co mě napadá je nějaký chytřejší hex editor, minimálně něco z toho by to mohlo zvládnout.
    16.2.2005 23:24 Hynek (Pichi) Vychodil | skóre: 43 | blog: Pichi | Brno
    Rozbalit Rozbalit vše Re: Reverse engineering datových formátů
    No už to tak vypadá, že si budeš muset něco napsat (nebo si nechat něco napsat). Perlivé pack a unpack jsou silné zbraně, tak něco s Term::ReadLine by jsi měl mít za chvilku. Defakto by ti z toho rovnou mohl vypadávat zárodek příslušného filtru. Pokud jsi na perl zanevřel, tak je tu ještě python a jiné (forth ;-) smalltalk, lisp).
    XML je zbytečný, pomalý, nešikovný balast, znovu vynalézané kolo a ještě ke všemu šišaté, těžké a kýčovitě pomalované.
    16.2.2005 23:34 unchallenger | skóre: 69 | blog: unchallenger
    Rozbalit Rozbalit vše Re: Reverse engineering datových formátů
    Když to začnu psát já, tak to skončí jedním ze dvou konců:

    - jako chaotická změť specializovaných skriptíků, které budu před každým použitím upravovat a ještě předtím studovat, co vlastně delají

    - jako interpret speciálního jazyka pro popis datových formátů[*], který nikdy nedokončím

    A tomu se chci vyhnout, kromě toho bych ideálně nechtěl psát nic.

    [*] perlí unpack znám, ale potřeboval bych nejdřív něco, co dokáže dekódovat ty formátovací vzory ;-)
    16.2.2005 23:39 VícNežNic | skóre: 42 | blog: Spáleniště | Ne dost daleko
    Rozbalit Rozbalit vše Re: Reverse engineering datových formátů
    A tomu se chci vyhnout, kromě toho bych ideálně nechtěl psát nic.
    Tuším, že se rodí velký softwarový produkt ;-)
    Copak toho není dost?
    16.2.2005 23:55 Michal Čihař | skóre: 61 | blog: Bláboly | Praha
    Rozbalit Rozbalit vše Re: Reverse engineering datových formátů
    - jako interpret speciálního jazyka pro popis datových formátů[*], který nikdy nedokončím
    Hmm, to mi silně připomíná "interpret" jazyka, který jsem vytvořil při reverse engeneeringu protokolu telefonu. Ale je to natolik nedokončené, že je asi lepší začít od začátku :-).
    18.2.2005 19:36 Michal Marek (twofish) | skóre: 55 | blog: { display: blog; } | Praha
    Rozbalit Rozbalit vše Re: Reverse engineering datových formátů
    Právě jsem dopsal tohle, snad to dělá aspoň něco, co potřebuješ

    ukázka:
    $ ./revdump  '"na %d. pozici je " (u8) 0 (u16_le) 114 (u16_be) $0' /etc/passwd /etc/group
    /etc/passwd: na 114. pozici je 613a     3a61
    /etc/group: na 114. pozici je 3a78      783a
    
    první parametr určuje, co se má odkud vypsat (dá se to načíst i ze souboru), zbytek jsou soubory, ze kterých se bude vypisovat. Ten zápis vypadá takhle:
    "format string" (type) offset
    
    nebo
    "format string" (type) $reference
    
    kde format string je nepovinný parametr pro printf (zatím skutečně printf, takže není problém to shodit ;-)), type je typ (umí to i floaty, ale moc jsem je nezkoušel), offset je jasný, reference znamená, že jako offset se veme výsledek n-tého výrazu (zde $0 dá 114, takže se vlastně použije stejná offset, jenom se interpretuje jako be).

    Ješte chci přidělat opakování stejné posloupnosti výrazů na bloky vstupu, aby v tom šel emulovat xxd/od a nějaké základní operace pro výpočet offsetu (typu sečti výsledek $x a $y, vynásob n a použij to jako offset).

    A taky vlastní printf, aby to nepadalo a aby to umělo \n apod a lár bugů

    Takže otázka: hodí se ti něco takového?
    18.2.2005 19:39 Michal Marek (twofish) | skóre: 55 | blog: { display: blog; } | Praha
    Rozbalit Rozbalit vše Re: Reverse engineering datových formátů
    Jo, a má to skoro 3 000 řádků ;-)
    18.2.2005 22:23 unchallenger | skóre: 69 | blog: unchallenger
    Rozbalit Rozbalit vše Re: Reverse engineering datových formátů
    Jo, určitě, ale kde to najdu?

    Já jsem tedy zrovna svůj poslední formát už rozebral pomocí xxd, head, tail a jednoúčelových primitivních nástrojů (resp. fázi fyzické struktury už mám za sebou), naštěstí byl dost jednoduchý, takže jsem psaní něčeho zase uložil k ledu, ale hodit se to určitě bude nejpozději příště ;-)
    18.2.2005 23:29 Michal Marek (twofish) | skóre: 55 | blog: { display: blog; } | Praha
    Rozbalit Rozbalit vše Re: Reverse engineering datových formátů
    Já tam ještě opravoval pár chyb, je to tady. Ale zatím je to spíš takový prototyp, viz grep FIXME *
    19.2.2005 19:54 unchallenger | skóre: 69 | blog: unchallenger
    Rozbalit Rozbalit vše Re: Reverse engineering datových formátů
    Nemůžu to nějak přimět k vypisování floating point dat. Pokud tomu dobře rozumím, tak

    '"%g" (float_le) 0x0002'

    by mělo vypsat little endian (Intel) IEEE single na posici 2, ale vypisuje to úplně jiná čísla, než vím, že v těch souborech jsou.

    No, nebudu si stěžovat, až to budu zase potřebovat, raději se zapojím do vývoje...
    19.2.2005 20:25 Michal Marek (twofish) | skóre: 55 | blog: { display: blog; } | Praha
    Rozbalit Rozbalit vše Re: Reverse engineering datových formátů
    Nj, floating point čísla jsou trochu rozbitý... Zítra bych měl mít čas, tak to dám do pořádku.
    19.2.2005 20:34 unchallenger | skóre: 69 | blog: unchallenger
    Rozbalit Rozbalit vše Re: Reverse engineering datových formátů
    Žádný spěch; já doufám, že to nebudu potřebovat hodně dlouho. I když to tak asi úplně nedopadne ;-)
    20.2.2005 15:18 Michal Marek (twofish) | skóre: 55 | blog: { display: blog; } | Praha
    Rozbalit Rozbalit vše Re: Reverse engineering datových formátů
    Oops, blbá chyba, zapomněl jsem, že float se funkcím s proměnným počtem parametrů (printf) předává jako double.

    patch, nová verze.
    22.2.2005 16:23 unchallenger | skóre: 69 | blog: unchallenger
    Rozbalit Rozbalit vše Re: Reverse engineering datových formátů
    Patch, aby se negativní offsety počítaly od konce souboru.

    Patch pro výrobu rpm balíčku.

    P.S.: Pokud tohle je verze 0.0.2.1, tak čekám, že verze 1.0 bude mimo jiné obsahovat reimplementaci TeXu v zsh ;-)
    31.3.2005 16:10 Michal Marek (twofish) | skóre: 55 | blog: { display: blog; } | Praha
    Rozbalit Rozbalit vše Re: Reverse engineering datových formátů
    Mám po zkouškách, tak jsem dostal novou verzi do použitelného stavu: revdump-0.1.tar.gz. Nějaké příklady jsou v src/test/*.rd.

    P.S.: Pokud tohle je verze 0.0.2.1, tak čekám, že verze 1.0 bude mimo jiné obsahovat reimplementaci TeXu v zsh ;-)
    Zatím to není ekvivalentní ani HQ9+, ale do 1.0 času dost ;-)
    31.3.2005 16:19 unchallenger | skóre: 69 | blog: unchallenger
    Rozbalit Rozbalit vše Re: Reverse engineering datových formátů
    Já jsem od té doby zase reverse-engineeroval a revdump využil, ale co jsem hodně potřeboval (a napsal si na to pidinástroj používaný v kombinaci s head a tail...), bylo interpretovat část souboru od každého bajtu jako daný typ (v mém případě nejčastěji single, double) a vypsat posice, které dají hodnoty z nějakého zadného/rozumného rozsahu

    offset hodnota

    pak se výsledek z několika souborů projede joinem, a hned je jasno.

    Tak to byl takový námět ;-)
    31.3.2005 16:43 Michal Marek (twofish) | skóre: 55 | blog: { display: blog; } | Praha
    Rozbalit Rozbalit vše Re: Reverse engineering datových formátů
    ./revdump --repeat --with-offsets --step=1 --cols=1 \
    '(float_le) 0 if $_ > 10' soubory | grep -v NO
    
    ale && zatím nefunguje. A je nevyšší čas napsat aspoň help, když jsem se sám musel koukat do zdrojáku, jak se ty optiony jmenují :-/

    PS: Je to v main.c, až to budeš taky hledat ;-)
    31.3.2005 16:59 Michal Marek (twofish) | skóre: 55 | blog: { display: blog; } | Praha
    Rozbalit Rozbalit vše Re: Reverse engineering datových formátů
    Vlastně && a || se dají nahradit pomocí uniq, ale měl by to umět rovnou revdump (stejně jako nevypisovat řádky se samým NO).
    31.3.2005 17:45 unchallenger | skóre: 69 | blog: unchallenger
    Rozbalit Rozbalit vše Re: Reverse engineering datových formátů
    No vida, jaké to má netušené možnosti. Ještěže existuje jako help alespoň tento thread, jinak bych to do příště zapomněl... ;-)

    Založit nové vláknoNahoru

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.