1) Ja jsem pouzival zmineny PEiD a LordPe.
Trochu jsem zagooglil, ale zda se mi, ze zdrojovy kody volne nejsou ani u jednoho. Prestoze to nebude jedoduche, mozna by nebylo od veci "ziskat" vsechny tyhle veci z PEiDu, jelikoz uz s nim zkusenosti mas. Tusim ze PEiD je psany v C++, no Olly by si s tim mel poradit. Pokud je to
Myslis jakoze to disassemblerovat? No to je mozny. I kdyz teda co se tyce te zakladni funkce - identifikace - tak ono to stejne nedela o moc vic nez porovnava dany soubor vuci ruznym signaturam. Ty signatury jsou jednak interne zakompilovane, ale taky jsou ve forme externiho souboru userdb.txt, ktery je prubezne aktualizovan na webu, takze ten by asi byl lepsi zdroj informaci. A tento soubor je verejne dostupny, takze kdybych si udelal vlastni funkci, ktera ty signatury umi pouzivat, tak cely PEiD nepotrebuju. Jen teda budu muset nekde najit syntaxi toho souboru. Vypada to nejak takhle:
[UPX 0.50 - 0.70]
signature = 60 E8 00 00 00 00 58 83 E8 3D
ep_only = true
[UPX 0.72]
signature = 60 E8 00 00 00 00 83 CD FF 31 DB 5E
ep_only = true
[UPX 2.00-3.0X -> Markus Oberhumer & Laszlo Molnar & John Reiser]
signature = 5E 89 F7 B9 ?? ?? ?? ?? 8A 07 47 2C E8 3C 01 77 F7 80 3F ?? 75 F2 8B 07 8A 5F 04 66 C1 E8 08 C1 C0 10 86 C4 29 F8 80 EB E8 01 F0 89 07 83 C7 05 88 D8 E2 D9 8D ?? ?? ?? ?? ?? 8B 07 09 C0 74 3C 8B 5F 04 8D ?? ?? ?? ?? ?? ?? 01 F3 50 83 C7 08 FF ?? ?? ?? ?? ?? 95 8A 07 47 08 C0 74 DC 89 F9 57 48 F2 AE 55 FF ?? ?? ?? ?? ?? 09 C0 74 07 89 03 83 C3 04 EB E1 FF ?? ?? ?? ?? ?? 8B AE ?? ?? ?? ?? 8D BE 00 F0 FF FF BB 00 10 00 00 50 54 6A 04 53 57 FF D5 8D 87 ?? ?? ?? ?? 80 20 7F 80 60 28 7F 58 50 54 50 53 57 FF D5 58 61 8D 44 24 80 6A 00 39 C4 75 FA 83 EC 80 E9
ep_only = false
[UPX 2.90 [LZMA] (Delphi stub) -> Markus Oberhumer, Laszlo Molnar & John Reiser]
signature = 60 BE ?? ?? ?? ?? 8D BE ?? ?? ?? ?? C7 87 ?? ?? ?? ?? ?? ?? ?? ?? 57 83 CD FF 89 E5 8D 9C 24 ?? ?? ?? ?? 31 C0 50 39 DC 75 FB 46 46 53 68 ?? ?? ?? ?? 57 83 C3 04 53 68 ?? ?? ?? ?? 56 83 C3 04
ep_only = true
No na prvni pohled mi to prijde, ze ve vetsine pripadu staci najit EP a porovnat x bajtu.. Zkusim o tom neco zjistit, dik za tip!
2) Automatizovane zpusoby neznam, nicmene par veci me napada.
Predne bys pri analyze mohl filtrovat (po checksumu) vsechny soubory operacniho systemu, coz by ti mohlo "par" milionu souboru vyloucit. K tomu bys potreboval pravdepodobne seznamy jejich souboru (pro kazdy OS), coz se da take jednoduchym programkem s pouzitim databaze
No to jsou ty fingerprint a hash databaze, ktere jsem zminoval. To samozrejme pouzivame. Nejvetsi databaze kontrolnich souctu je NSRL, spravuje ji americky NIST, tam je neco pres 50 milionu souboru, z toho kolem 16 milionu unikatnich checksumu. To jsou "known good" soubory. Pak mame treba HashKeeper od NDIC US DoJ a nekolik dalsich databazi, to je vetsinou dostupne jen pro LE a obsahuji spise ty "known bad" soubory. No ale tim to konci, muzu pouzit jen duveryhodne zdroje, coz jsou vicemene jen urcite statni instituce. Mohl bych si udelat a pouzit i vlastni seznamy checksumu, jenze abych mohl neco takhle zkatalogizovat, tak bych to musel nejdrive koupit a mit to pak permanentne ulozene v "supliku", aby mohl kdykoliv prokazat zdroj. Problem u vsech techto databazi checksumu je to, ze v evropskem prostredi se to moc nechyta, odfiltruji diky tomu tak 20%.
Krome hashu jsou jeste ruzne fingerprint databaze, coz je na stejnem principu jako libmagic nebo tady ten PEiD, jen jsou zamereny velmi specificky na urcite "bad" programy.
No a tim veskera automaticka identifikace PE souboru konci. Pro vsechny ostatni formaty mi ruzne softwary (jako zaklad se vetsinou pouziva EnCase a FTK) dokazi vytahnout kdejakou informaci, metadata, alternativni streamy, data carving, desifrace, analyza redundantnich dat (v mp3, jpg atd.) za ucelem detekce skrytych informaci (steganografie) atd. atp., mame dokonce i nastroje na automaticke rozpoznavaji pornografickych obrazku, ale kdyz jde o PE soubory, tak to toho rekne velmi velmi malo, treba jen: "executable", coz navic ani neni vzdy pravda (ne kazdy PE je executable). Od softwaru za 100 tisic bych skutecne cekal, ze dokaze aspon tolik, co obycejny unix prikaz "file" umi uz desitky let.

Cili kdyz to shrnu, tak z celkoveho mnozstvi souboru mi nakonec zbude rekneme 10-30%, ktere jsou PE a temer nic o nich nevim. A to jsou stale stovky tisic souboru.
zvladnout. Co se tyce analyzy .exe souboru, mozna by nebylo od veci se mrknout do Import Table po nejakych specifickych APInach. Krome
Todle je dobry napad, nad tim se zkusim zamyslet, diky!
toho s .exe souborem moc neporidis, asi proto se ti zda ten vystup nedostatecny. Spis bych provadel analyzu exacu podle toho, co hledas a
To je strasne ruzne. Nekdy se vi dopredu, co se stalo a jak v tom dane technicke prostredky figuruji, a hledaji se dukazy pro podporu techto podezreni. Muze jit o typickou pocitacovou kriminalitu, nelegalni software, bezpecnostni incidenty, servery, internet atd. Ale casto je jednoduse spachan nejaky (jakykoliv) trestny cin a vysetrovatel proste zabavi pocitace. Dneska ma kazdy pocitac a vzdy je moznost, ze se na takovem pocitaci bude nachazet nejaka informace, souvislost, digitalni dukaz, ktery s danym cinem souvisi. (Vtipne je, jak se postupuje v pripade, kdy se zjisti indicie o jinych nezakonnych aktivitach s aktualne vysetrovanym cinem nesouvisejicim. V americe je kvuli tomu v aktualni dobe hodne hluku, podle posledni precedensu oni proste dostanou warrant na zajisteni konkretnich stop a nic jineho je nesmi zajimat a dokonce ani nesmi zkouset hledat. U nas je to divocejsi, bereme vsechno a jsou to pak pritezujici okolnosti pokud ne rovnou dalsi pripad, nejaka ochrana soukromi v tomto smyslu k nam jeste nedorazila.)
Typicke zadani pak je zajistit veskere informace souvisejici s vysetrovanym pripadem. Cili dopredu nevim, co hledam. Na to mame urcite postupy, checklisty, ktere vychazi z best practices pouzivanych v computer forensics a jedna z prvnich fazi je prave vytezeni veskerych dat z nosicu a jejich nasledna identifikace. Zkomprimovane a zaheslovane soubory se rozbaluji, zjistuji se hesla do ruznych programu, veskera data se fulltextove indexuji (vznikne index s desitky milionu klicovych slov, ktery umozni prohledavat terabajty dat behem sekundy, takovy soukromy google), proste v teto pocatecni fazi jde o to, aby se znalcovy vedomosti o systemu co nejvice priblizily znalostem puvodniho uzivatele/majitele.
Takova "defaultni" otazka take casto byva zjistit nainstalovany software. To nezjistim ze seznamu adresaru v "Program Files" ani z registru. To zjistim pouze skutecnou identifikaci souboru. V tom treba trochu pomahaji prave informace z VersionInfo sekce (ProductName).
kdo je tvuj "protivnik". Treba pokud hledas jednoduse zasifrovana data pomoci APIn windowsu, jiste najdes nejaky watermark (nehlede, ze na ne pak muzes pouzi COFEE
). Pokud
COFEE je pro pouziti v terenu jeste nez se pocitac vypne. Do pocitace se strci flashka, neco se z ni spusti a udela to ruzne snapshoty. Muze to sice byt nekdy uzitecne, muze to vytahnout nejaka hesla, ale takove postupy se moc nepouzivaji, protoze se tim narusuje integrita a autenticita tech nosicu. Ty disky nejsou v te chvili chranene proti zapisu. Uz jen to, ze se tam strci USB flashka zpusobi mnoho nevratnych zmen. Todle nikdo nedela. Ja vysetrovatelum vzdycky radim nesahat vubec na nic, vytahnout snury natvrdo z elektrickych zasuvek a vsechno sbalit. U nas se pres hardwarove writeblockery udelaji binarni image ze vsech nosicu (vcetne HPA/DCO oblasti samozrejme) a disky putuji do zapecetenych pytliku.
hledas data sifrovana TrueCryptem, tak to by se taky mohlo dat. (Otazkou spis je, jestli to pak desifrujes). Spustitelne soubory mohou obsahovat samozrejme take zajimave informace, ale pokud budou obsahovat polymorfismus nebo nedej boze metamorfismus, tak z toho stejne moc nezjistis. (i kdyz poznat polymorfismus ci metamorfismus by mozna jit mohlo, a to by rozhodne ukazalo na VELMI podezrely soubor - pokud pomineme par "znamych" vyjimek jako Total Commander apod.
)
Todle je ovsem dalsi velmi dobra myslenka! Ted jeste zjistit, jak to zjistim..