Author Topic: DLL s funkci staticke analyzy PE souboru  (Read 2244 times)

Conflict

  • g0d i5 just a stat1st1c
  • Senior Member
  • ****
  • Posts: 475
Re: DLL s funkci staticke analyzy PE souboru
« Reply #15 on: December 06, 2009, 12:13:13 AM »
je zcela bezne API cryptovat , maskovat atd (podivej na oblibene Conflictakovi vychytavky)
(dopredu rikam, ze sem necetl celou diskuzi)
Asi mas na mysli EPO, kde se da treba za API ExitProcess schovat GetDlgItemTextA a nebo jakykoliv jiny, nejlepe spustitelny kod.
Vyzaduje to ale hratky a planovani pri aplikovani teto metody => zbytecne slozity (ale ucinny). Uplne staci pres LoadLibraryA + GetProcAddress ziskat potrebne API. Delal to tak UPX a spousta dalsich packeru. Navic neni zapotrebi zadny importni tabulky, viz. viry a jejich hledani API.Ale tohle sou extremni pripady.

Pokud mas praci na hratkach s .exe zaplacenou, tak oukej. Pokud to delas pro svy poteseni, tak se na to vykasli, v dnesni dobe (temer) zbytecna ztrata casu. Radsi jdi pro svy poteseni ven.

Master

  • [t4C]newbie child
  • VIP
  • *****
  • Posts: 615
Re: DLL s funkci staticke analyzy PE souboru
« Reply #16 on: December 06, 2009, 09:40:18 AM »
Me napadla jedna metoda, ktera sice nebude 100% a uz tady byl nastineny podobny princip. Konkretne se jedna o tu detekci poly/meta morfismu. Jako moznost se jevi program 2x spustit, pokazde si udelat checksum jeho .code pameti a porovnat. Sice to nebude 100% a muze to teoreticky zarvat na fake, ale morfismus by to melo najit.

johnsmithx

  • Newbie
  • *
  • Posts: 11
Re: DLL s funkci staticke analyzy PE souboru
« Reply #17 on: December 06, 2009, 02:02:38 PM »
e) detekce "zajimavych" API z import table
a) pokus o rozbaleni packovanych (i cryptovanych?) souboru, v pripade uspechu skok na 1. fazi

v techto dvou fazich vidim nejvetsi problem, vim, ze samozrejme "bezny uzivatel" tezko bude menit hlavicky PE a hrat si s API ale ciste hypoteticky, je zcela bezne API cryptovat , maskovat atd (podivej na oblibene Conflictakovi vychytavky) - cili spousty jich po pouziti packeru

Jestli chces naznacit, ze je blbost toto zkouset, protoze to nebude 100%, pak se na to divas ze spatneho pohledu. Samozrejme, ze to nebude 100%, mozna to i bude velmi chabe, ale stale to bude krok dopredu. Zadny software, ktery nyni pouzivame (a vetsinou jde o pomerne drahe softwary), takto automatizovane zkoumat PE soubory neumi a bohuzel jsem ani nenasel zadny, ktery by neco takoveho vubec umel. Klidne bych ho i koupil (za nejakou rozumnou cenu), ale proste takovy program neznam.

Nejefektivnejsi by samozrejme bylo zkoumat kazdy soubor rucne, debuggerovat atd. Jenze to jde udelat u jednotek souboru, ne u tisicu ci desetitisicu. Pro nas jsou vzdy limitujici 2 faktory: deadline a budget. Tyto faktory maji navic protichudne dusledky. Abych se vlezl do terminu a stihnul udelat hodne prace, tak to mohu sice vyresit tak, ze praci rozlozim mezi vice lidi, jenze pak mi vzrostou naklady natolik, ze mi to nikdo nikdy nezaplati. Navic rozpocet je znam predem. Ilustrativni priklad: pred 10 lety zkoumal znalec 2 mesice datove nosice o celkove kapacite 1000 MB a inkasoval za to 50 tisic. Kc. Techto 50 tisic muze predstavovat v dnesnich penezich (s prihlednutim k rustu nakladu, inflaci apod.) rekneme 100 tis. Kc. Ovsem dnes za 100 tisic mame 2 mesice zkoumat napr. 1000 GB dat. Cili penize i doba zustaji stale stejne, ale objem dat se nam zvetsuje 1000 krat! Takze logicky se automatizuje vsechno, co jde, aby se to pocatecni kvantum dat zredukovalo na to skutecne minimum, ktere se pak da (byt stale ve spechu) mozna trochu zkoumat rucne.

Kdyz se podivas na nejaka computer forensics fora ve svete nebo se zeptas nejakych zahranicnich znalcu, nikdo nema cas (ani chut, pripadne znalosti) PE soubory zkoumat vic nez proste proti nim pustit automatizovane programy (ktere vyplivnou temer nic). Oni to beru jako realitu, se kterou nemohou nic udelat. Ja se snazim jit trochu dal, v metodach, v pouzitem softwaru (napr. dle ceskeho distributora firmy AccessData jsme jedini v republice, kdo si zatim koupil novou radu FTK), v hloubce analyz. No a co se tyce analyzy PE souboru, tak vzhledem k tomu, ze programuji nejakych 23 let (na te strance s knihovnou viru, co tady postnul NeptuN, jsem dokonce nasel svuj virus, ktery jsem napsal zacatkem 90. let), se snazim i trochu neco udelat v teto oblasti a vysledny software davam (alespon zatim) verejne k dispozici jako freeware. Nemel jsem zadna ocekavani, kdyz jsem tady napsal, ale to mnozstvi podnetu, ktere jsem tady dostal, je skutecne skvele. Myslim, ze se mi podari hodne z tech veci naimplementovat a co je nepodstatnejsi je, ze mi to realne pomuze v praci. Stale to vsak bude mit velmi velmi daleko k dostatecnosti, jak spravne podotykas. Ale co muzu delat vice? Nebo se na to vykaslat, protoze to "stejne neni dokonale"? Technik, jak zmast a zneefektivnit praci znalcu v tomto oboru je mnoho (google "anti-computer forensic") a znalec se vice a vice stava jen statistou. Velky problem vidim s tim exponencialne rostoucim mnozstvim dat - dnes lze bez obtizi do kazdeho jednoho pocitace vlozit 8 harddisku, coz muze byt 16 TB. Kolik takovych pocitacu muze mit organizovana skupina? V takove situaci uz ani ti kriminalnici nemusi nic sifrovat, staci, aby vsechna sva tajna data ukryly do .exe souboru, a nikdo to nema sanci najit.

Coz mne privadi k myslence, ze by stalo za to nejakym zpusobem kontrolovat, jestli k PE souboru nejsou pripojena "bezprizorni" data. Jakoze treba vezmu .zip soubor a prilepim ho ke konci .exe souboru. Jak by se neco takoveho pak dalo zjistit? Nesoulad mezi velikosti dle PE headeru a skutecnou velikosti?
« Last Edit: December 06, 2009, 02:23:47 PM by johnsmithx »

johnsmithx

  • Newbie
  • *
  • Posts: 11
Re: DLL s funkci staticke analyzy PE souboru
« Reply #18 on: December 06, 2009, 02:07:11 PM »
Vyzaduje to ale hratky a planovani pri aplikovani teto metody => zbytecne slozity (ale ucinny). Uplne staci pres LoadLibraryA + GetProcAddress ziskat potrebne API. Delal to tak UPX a spousta dalsich packeru. Navic neni zapotrebi zadny importni tabulky, viz. viry a jejich hledani API.Ale

Pokud nejaky program supluje importni tabulku pomoci LoadLibraryA + GetProcAddress, pak ale musi mit v importni tabulce alepon prave tyto dve funkce, ne? Cili tyto funkce mozna mohou byt prvni kandidati do seznamu "zajimavych" API.

johnsmithx

  • Newbie
  • *
  • Posts: 11
Re: DLL s funkci staticke analyzy PE souboru
« Reply #19 on: December 06, 2009, 02:12:31 PM »
Me napadla jedna metoda, ktera sice nebude 100% a uz tady byl nastineny podobny princip. Konkretne se jedna o tu detekci poly/meta morfismu. Jako moznost se jevi program 2x spustit, pokazde si udelat checksum jeho .code pameti a porovnat. Sice to nebude 100% a muze to teoreticky zarvat na fake, ale morfismus by to melo najit.

Dalsi dobry napad. K tomu bych asi musel pouzit maly VMware image, pro kazdy soubor vzdy udelat novy klon, zkopirovat tam podezrely soubor, spustit a pak zkoumat zmeny, ktere nastaly v tomto klonu (coz bude urcite obsah pameti a mozna i nejake zmeny na harddisku). Mozna k tomu mit soucasne pusteny process monitor a pak analyzovat jeho log? Nastesti VMware ma nejake API pro programove ovladani guest systemu z host systemu.

Conflict

  • g0d i5 just a stat1st1c
  • Senior Member
  • ****
  • Posts: 475
Re: DLL s funkci staticke analyzy PE souboru
« Reply #20 on: December 06, 2009, 05:27:22 PM »
Quote from: johnsmithx
Pokud nejaky program supluje importni tabulku pomoci LoadLibraryA + GetProcAddress, pak ale musi mit v importni tabulce alepon prave tyto dve funkce, ne? Cili tyto funkce mozna mohou byt prvni kandidati do seznamu "zajimavych" API.
jenze tyhle dve funkce sou ve vsech programech. Takze nejsou kandidaty. Maximalne, ze by byly v importni tabulce jen tyhle dve funkce.

Quote from: johnsmithx
V takove situaci uz ani ti kriminalnici nemusi nic sifrovat, staci, aby vsechna sva tajna data ukryly do .exe souboru, a nikdo to nema sanci najit.

Coz mne privadi k myslence, ze by stalo za to nejakym zpusobem kontrolovat, jestli k PE souboru nejsou pripojena "bezprizorni" data. Jakoze treba vezmu .zip soubor a prilepim ho ke konci .exe souboru. Jak by se neco takoveho pak dalo zjistit? Nesoulad mezi velikosti dle PE headeru a skutecnou velikosti?
O skryvani souboru do .exe se tu jeden clovek pokousel.
Nesoulad mezi velikosti v PE headeru a skutecnou velikosti by nemel nastat, protoze by to pak zavadec neprelouskal a vyhodil chybu.
Lepsi nez schovavat data do .exe, je schovat data do obrazku.

DARKER

  • [SCF]
  • Administrator
  • Senior Member
  • *****
  • Posts: 336
Re: DLL s funkci staticke analyzy PE souboru
« Reply #21 on: December 06, 2009, 06:13:01 PM »
Quote
(napr. dle ceskeho distributora firmy AccessData jsme jedini v republice, kdo si zatim koupil novou radu FTK)
a mate k dispozicii aj novy PRTK od tejto firmy, zaujimali by ma urcite benchmarky.

johnsmithx

  • Newbie
  • *
  • Posts: 11
Re: DLL s funkci staticke analyzy PE souboru
« Reply #22 on: December 06, 2009, 07:35:27 PM »
Quote
(napr. dle ceskeho distributora firmy AccessData jsme jedini v republice, kdo si zatim koupil novou radu FTK)
a mate k dispozicii aj novy PRTK od tejto firmy, zaujimali by ma urcite benchmarky.

Jasne, PRTK i DNA s 50ti workery. Ackoliv se mi vetsinou osvedcily spise programy z russian password crackers portalu, a ted v dobe CUDA uz CPU-only programy nemaji smysl vubec, tak jsem PRTK/DNA s velkou davkou skepticismu trochu zkousel, RAR konkretne, a je to zhruba o 10-20% rychlejsi nez jine programy. Jeste lepsi zprava ale je, ze AccessData uz potvrdili na foru, ze pripravuji vyuziti GPGPU.

Co naopak jsem nenasel vubec jsou nejaka konkretni cisla o vykonnosti tech hardwarovych akceleratoru TACC1441 a jejich srovnani treba s GTX295, a pokud by to bylo nesrovnatelne, pak treba s 3x Tesla C1060 (coz by celkem vyslo stejne jako jedna ta TACC krabicka).

DARKER

  • [SCF]
  • Administrator
  • Senior Member
  • *****
  • Posts: 336
Re: DLL s funkci staticke analyzy PE souboru
« Reply #23 on: December 06, 2009, 08:16:53 PM »
Quote
RAR konkretne, a je to zhruba o 10-20% rychlejsi nez jine programy.
Co naopak jsem nenasel vubec jsou nejaka konkretni cisla o vykonnosti tech hardwarovych akceleratoru TACC1441

o 10-20% rychlejsi s tymi 50ti workery? :-)

nejake benchmarky ohladom TACC1441 su tu:
http://www.tableau.com/index.php?pageid=tacc_alg

suhlasim softy kt nemaju podporu GPU su uz dneska v nevyhode ... Inac celkom sa mi pozdavaju aj niektore ElcomSoft produkty.

Niekedy v minulosti som chcel nakodit nieco ako DNA so zasuvnymi modulami (modul = podpora dakeho hashu alebo pswd) s tym ze, pisanie modulov by bolo opensource, bolo by k tomu SDK, cize ludia by si mohli pridavat vlastne veci a len server app by bola produkt.

johnsmithx

  • Newbie
  • *
  • Posts: 11
Re: DLL s funkci staticke analyzy PE souboru
« Reply #24 on: December 07, 2009, 05:12:23 AM »
o 10-20% rychlejsi s tymi 50ti workery? :-)

Ne :D 10-20% rychlejsi je PRTK, coz je prakticky DNA s jedinym workerem na localhostu.

nejake benchmarky ohladom TACC1441 su tu:
http://www.tableau.com/index.php?pageid=tacc_alg

Parada! No to ale vypada katastrofalne - RAR 1300 p/s??
Ted jsem zkousel na obycejne GTX275 za 4.8 tis. Kc a cRARk udela 2227 p/s a igrargpu dokonce 3185 p/s. TACC stoji taky 4.8 tis., ale USD. Tak jestli je 2x pomalejsi nez GTX275, tak je prakticky 34x drazsi.

Kdyz srovnam Tesly a GTX, tak Tesla je docela nevyhodna. Tesla C1060 ma vicemene srovnatelny vykon s GTX285, tedy o trochu rychlejsi nez GTX275, avsak stoji 5x draz nez GTX275. Nebo ve srovnani s GTX295 je Tesla C1060 2x pomalejsi, ale pritom je 2.5x drazsi. Nemuzu si pomoct, nejvyhodnejsi mi stale prijdou stare dobre GTX295.

suhlasim softy kt nemaju podporu GPU su uz dneska v nevyhode ... Inac celkom sa mi pozdavaju aj niektore ElcomSoft produkty.

Souhlas, ElcomSoft je dost dobry, no tak je to vlastne ten autor cRARku. Ale maji to drahe, 100 klientu za 3995 USD: http://www.crackpassword.com/products/prs/corp/eprb/, to DNA se 100 klienty stoji zhruba 1500 USD.

Niekedy v minulosti som chcel nakodit nieco ako DNA so zasuvnymi modulami (modul = podpora dakeho hashu alebo pswd) s tym ze, pisanie modulov by bolo opensource, bolo by k tomu SDK, cize ludia by si mohli pridavat vlastne veci a len server app by bola produkt.

No k tomu bys mohl vyuzit Johna, zdrojaky to ma, jen bys tam pridal CUDU, multi core a sitovinu. Idealni by bylo na kazdem pocitaci umet vyuzivat vsechny GPU i CPU, tak jako to dela BarsWF. Skoda, ze John nefunguje jako BarsWF  :'(
« Last Edit: December 07, 2009, 06:02:54 AM by johnsmithx »

DARKER

  • [SCF]
  • Administrator
  • Senior Member
  • *****
  • Posts: 336
Re: DLL s funkci staticke analyzy PE souboru
« Reply #25 on: December 07, 2009, 08:47:50 AM »
Quote
Souhlas, ElcomSoft je dost dobry, no tak je to vlastne ten autor cRARku.
Uz som sa bavil v minulosti s Pavlom Semjanovom a jeho system je teraz licencovany v Parallel Password Recovery (RAR module) http://www.parallelrecovery.com/rar-password.html kde je pouzity cRARk engine - momentalne najrychlejsi.

johnsmithx

  • Newbie
  • *
  • Posts: 11
Re: DLL s funkci staticke analyzy PE souboru
« Reply #26 on: December 07, 2009, 11:55:56 AM »
Nevim, proc jsem si myslel, ze cRARk je pouzity v ElcomSoft produktech  :-[

Dobre, stahl jsem si demo toho parallel password, tak to zkusim porovnat.