Otázka:
Zpětná analýza proprietární struktury ukládání / formátu souborů
araisbec
2013-09-21 00:58:50 UTC
view on stackexchange narkive permalink

Pracuji na automatizaci některých funkcí v rámci aplikace třetí strany s uzavřeným zdrojem; Chci zautomatizovat vytváření „Projektových souborů“ (v nejjednodušší podobě, jen soubor video souborů v určitém pořadí). Video soubory, s nimiž tato aplikace pracuje, mají přidružený soubor metadat a já jsem již dokázal pochopit a znovu vytvořit 99% jeho formátu. Oba tyto „soubory projektu“ a soubory metadat jsou víceméně prostý XML (s některými podivnými názvy značek, které ještě musím rozluštit).

V zásadě chci vědět, jaké metody mohu použít k určit formát těchto projektových souborů, abych mohl psát své vlastní a odkazovat na video soubory, které jsem vybral v předchozí části mého skriptu.

Existuje mnoho Soubory DLL v adresáři aplikací a myslel jsem si, že možná sledování jejich použití během operace ukládání (souboru projektu v aplikaci) by mě mohlo nasměrovat správným směrem? Pokud ano, jak bych to mohl udělat? Také jsem se začal učit vkládání DLL a přemýšlel jsem, jestli by to mohlo být užitečné?

Jeden odpovědět:
Stolas
2013-09-23 19:00:53 UTC
view on stackexchange narkive permalink

Dobře, lze to vyřešit mnoha způsoby. Jak jste se nedávno naučili vkládání DLL, zábavným cvičením je využít tyto znalosti k přepsání funkce :)

Dobrým začátkem je Inline Hooking in Windows Presentation by High-Tech Bridge a tato stránka codeprojectu. To, co děláte, je přepsat funkci. Co budete muset udělat, abyste přesměrovali WriteFileA na svou vlastní funkci zápisu. To vám umožní zpětné trasování procházením návratových hodnot k určení toku dat. Můžete také prozkoumat způsob zápisu dat (jednorázově nebo po částech).

Můžete také trasovat aplikaci, zkontrolovat adresy shromážděných dat, zjistit, zda je analyzována pomocí nějakého druhu šifrování nebo kompresní algoritmus.

Doufám, že jsem nějaká forma pomoci. :)

Dobrý nápad! Další věc, o které jsem uvažoval, bylo použití Dependency Walker nebo IDA Pro (nebo obou), abych zjistil, jak se nazývají moduly DLL (při vytváření metadat, protože existuje řada knihoven DLL, které vypadají jako byly za tímto účelem zahrnuty). Pak jsem se chystal napsat své vlastní DLL, abych zaujal jejich místo, a "Man-In-The-Middle" přenos dat ... Myslíte si, že je to rozumný přístup (ve spojení s vaší metodou)? Dávám vám nejlepší (a jedinou!) Odpověď :)
Jen zkuste to, co podle vás funguje nejrychleji. Pokud něco nepřinese výsledky, zkuste něco jiného. IDA Pro je dobrá investice, pokud se opravdu věnujete reverznímu inženýrství. Ale pokud se jedná pouze o hobby / vedlejší projekty, nechal bych to na pokoji (možná IDA Free) kvůli nákladům na produkt.


Tyto otázky a odpovědi byly automaticky přeloženy z anglického jazyka.Původní obsah je k dispozici na webu stackexchange, za který děkujeme za licenci cc by-sa 3.0, pod kterou je distribuován.
Loading...