RE FORUM

[REVERSE ENGINEERING] => Newbie => Topic started by: HypnotiX on February 02, 2007, 01:53:25 PM

Title: Newbie crackME - 18->[SOLVED]
Post by: HypnotiX on February 02, 2007, 01:53:25 PM
Rikal jsem si ze napisu nejake CrackMe, a jak jsem rekl tak jsem udelal.CrackMe ma 6 Levelu s obtiznosti 0/10 - asi 6/10, takze si muzete vybrat dle vaseho gusta. Je tam obsazeno nejake crypto, SEH, anti-Olly,anti-Attach, anti-disassm, samozrejme az ve vyssich levelech. Cm je npsano v Masm32, packer neni pouzity zadny, jede to pod XP, jine jsem nezkousel. Doufam ze vam to pojede na vasich XP
Title: Re: Newbie 18
Post by: Master on February 02, 2007, 06:17:54 PM
O jeje,hypnova cme jsou nekdy na palicu.No co,aspon bude sranda :)
Title: Re: Newbie 18
Post by: Iron Screw on February 02, 2007, 07:04:45 PM
Jako, rad bych tady teda rozjel diskusi ... :) Pravda, ze jsem kdysi davno neco umel, ale uz sem pozapomel :( .... a tohle cme je fakt dobry, takze muzeme zacit. :)
Title: Re: Newbie 18
Post by: Z!L0G80 on February 02, 2007, 07:05:15 PM
tohle do newbie fakt ses nesplet? no ty tls a crypto je docela zabavne - prvni pohled ...
Title: Re: Newbie 18
Post by: eraser on February 02, 2007, 08:03:26 PM
Tie? by som povedal, ?e by malo byť toto CM presunuté do vhodnej?ej miestnosti.
Title: Re: Newbie 18
Post by: eraser on February 02, 2007, 08:39:36 PM
Hmmm, to zru?enie NAG je skutočne také ľahké?  :)   Inak pekná API funkcia, čo je za NAG-om volaná, čo povie? Master... ;)  i keď v tomto prípade ide o niečo iné.
Title: Re: Newbie 18
Post by: Master on February 02, 2007, 09:02:21 PM
Ja uz sem u 2 levelu.Nag byl v pohode,jak sem videl api hned mi bylo jasne vo co go a co se ma doplnit.U levelu 1 to bylo horsi.Nez sem si sepsal utilitku,ktera mi to prepocetla zpatky,tak to chvilku trvalo.Furtmi to hazelo nekorektni vysledky.Ale uz to je v poho.

Ja si ji vsiml,ale zatim to neresim :D
Title: Re: Newbie 18
Post by: eraser on February 02, 2007, 10:35:54 PM
Quote from: Master
U levelu 1 to bylo horsi.Nez sem si sepsal utilitku,ktera mi to prepocetla zpatky,tak to chvilku trvalo.Furtmi to hazelo nekorektni vysledky.Ale uz to je v poho.

Ja som to najskôr robil ručne s kalkulačkou, pri treťom znaku ma to pre?lo, tak som to prepísal do C s tým, ?e som sa asi 10 minút babral s prepisom ROL do ANSI C. Shit, niekedy sú tie in?trukcie tak jednoduché a vo vy??ích jazykoch vzniká taký bordel... samozrejme som to mohol vyrie?iť vkladaným ASM, len?e prečo si prácu tro?ku nezťa?iť a nenaučiť sa niečo nové?   :rolleyes:

Btw. hard key, very hard...  :eek:

HypnotiX: Krokovať tú MASM aplikáciu je úplná krása, keď to porovnám s nejakou Delphi binárnou kopou, tak úplná balada.
Title: Re: Newbie 18
Post by: Master on February 03, 2007, 08:41:09 AM
Já to prave radeji v kladam pres to asm.Je to vetsinou rychlejsi a presnejsi.U klasickyho C++ se mi to porad nejak divne posouvalo a nemel sem naladu se s tim trapit.
Title: Re: Newbie 18
Post by: eraser on February 03, 2007, 01:37:07 PM
No, makrá, či funkcie na ROR/ROL sú verejne známe a overené, jediná nutnosť je dávať pozor o aké operandy sa jedná, či?e v tomto prípade ide o 8 bitové registre, tak?e je nutné posúvať operandom 0-7, či?e napr. prvý posun je o 0xA (10 dekadicky), tak?e vlastne sa jedná posun o 2, preto?e 10 modulo 8 je 2.

Inak zrovna som si to teda napísal i v kladanom ASM a opäť musím skon?tatovať, ?e LCC to s tou AT&T syntaxou posral!  :(
Title: Re: Newbie 18
Post by: HypnotiX on February 03, 2007, 03:57:42 PM
Quote from: eraser


HypnotiX: Krokovať tú MASM aplikáciu je úplná krása, keď to porovnám s nejakou Delphi binárnou kopou, tak úplná balada.

Testni final test, to se krokuje uplne krasne :)
Title: Re: Newbie 18
Post by: Iron Screw on February 03, 2007, 05:07:32 PM
Fakt pekne cme ... delam na lvl 3 ... :)
u lvl 2 mas mozna neumyslny "bug" ... teda jestli to bug je
Title: Re: Newbie 18
Post by: CZerezpiCZkin on February 03, 2007, 05:52:57 PM
Quote from: Iron Screw
Fakt pekne cme ... delam na lvl 3 ... :)
u lvl 2 mas mozna neumyslny "bug" ... teda jestli to bug je


Musim sa sprtat, ale nedalo mi to a mrkol som na to aj ja (cca 2 hodky). Ozaj pekne CME, ked mi skoncia skusky sa na to pozriem poriadne.
Ja som to zbehol po level3, tam je krasne zistitelne aj spravne SN pre meno, ale ku KG som sa este nedostal - no time.
Ten bug v leveli2 mas na mysli ze "za istych podmienok to zozerie skoro vsetko"?  ;)
Title: Re: Newbie 18
Post by: Iron Screw on February 03, 2007, 07:03:45 PM
Quote from: CZerezpiCZkin

Ten bug v leveli2 mas na mysli ze "za istych podmienok to zozerie skoro vsetko"?  ;)


To bude skoro ono... 7 znaku "napevno" a zbytek muze byt skoro cokoli.
Ale spis mam namysli posledni znaky...
Title: Re: Newbie 18
Post by: HypnotiX on February 03, 2007, 08:26:48 PM
Quote from: Iron Screw
Fakt pekne cme ... delam na lvl 3 ... :)
u lvl 2 mas mozna neumyslny "bug" ... teda jestli to bug je

 :cool:  Ano ano priznavam, chybka se vloudila, ale bute radi, to co tam bylo pred tim...
Title: Re: Newbie 18
Post by: CZerezpiCZkin on February 03, 2007, 08:37:03 PM
Quote from: Iron Screw
Ale spis mam namysli posledni znaky...


Tak to je zrejme to, co som mal na mysli, len som to nechcel podrobnejsie popisovat, ked na to nikto nedal dotaz. Posledne znaky + nejake tie prve + este cosi a LicKey jak vysity...   ;)

2 HypnotiX: Chybka - nechybka cme to je pekne, klobuk dole. Ja som tiez chcel uz davnejsie podobne CME s moznostou volby urovni spravit, ale akosi z toho zislo, takze mi tymto plnis myslienky...  :)
Title: Re: Newbie 18
Post by: eraser on February 04, 2007, 01:19:57 PM
Sakry?, ja u? som o tom kecal s Master-om, no tento víkend mi to nevychádza, tak?e ma čaká vyplnený ka?dý večer tohto tý?dňa.

V piatok som sa s tým chvíľu hral, behom pár sekúnd som odpálil NAG a na?iel som Key pre lvl1 a potom som haluzil s prepisom ROL do ANSI C. Včera som bol totálne rozbehaný a dneska u? cestujem do roboty.

Vidím to tak, ?e asi lvl2 bude pre mňa stopkou, no na to tu máme skôlku, tak?e určite čoskoro čakajte n00b dotazy.
Title: Re: Newbie crackME - 18
Post by: CZerezpiCZkin on February 04, 2007, 08:17:33 PM
Nedalo mi to a musel som dokoncit aspon ten level3 este predtym ako "pozastavim" svoju snahu koli povinnostiam.
A prisiel som na jednu zaujimavu vec: pre moje meno (CZpCZ) existuju dve spravne seriove cisla - to je prca, co?  :)  
Hold, ja musim byt vzdy nieco extra...  :D   (je to dane menom a sposobom overovania)
Uznajte, nemohol som si to nechat pre seba...  ;)
Title: Re: Newbie crackME - 18
Post by: Iron Screw on February 04, 2007, 10:26:42 PM
neboj, ja pro to svoje nasel taky minimalne 2 spravne ;)
Title: Re: Newbie crackME - 18
Post by: eraser on February 06, 2007, 08:20:36 AM
Ako som tak pozeral, resp. skú?al, tak na lvl2 by sa kľudne dal spraviť generátor správnych kľúčov.

Inak ma tro?ku sklamalo, ?e pre lvl3 neexistuje rie?enie pre moje meno "eraser", ale mo?no som dačo prehliadol.

Jo a ta debug ochrana v lvl4 ma pobavila.   :p   Vidno, ?e Hypno sleduje openrce.org stránku.  :rolleyes:
Title: Re: Newbie crackME - 18
Post by: Master on February 06, 2007, 09:29:35 AM
Asi mas pravdu.Me keygen vyplivne sice serial,ale je nejaky divny a nesplnuje to co by mel a pri tkousce to hodi badboy.
Ale na moje jmeno nebo treba imagin,CZpCZ i LLameLLik to jede.

Jinak ten antidebug u lvl4 je notoricky znamej :)
Title: Re: Newbie crackME - 18
Post by: eraser on February 06, 2007, 09:49:00 AM
Ide o to, ?e pokiaľ v lvl3 nemá ten vygenerovaný string z mena 16 znakov, tak serial nemá rie?enie, preto?e byte 00 do reťazca nevlo?ím.

Jo, tých antidebuggov je viacero, stačí mrknúť na OpenRCE. Ja som to vyrie?il dvomi spôsobmi, priamo som assembloval v OllyDbg alebo som prepísal ten %s%s... reťazec priamo v exe CM.
Title: Re: Newbie crackME - 18
Post by: BlackRose on February 06, 2007, 02:06:22 PM
Hm, tak jestli to jede na XP nevim, ale na mejch pracovnich W2k to nejede urcite :( Zkusim na to kouknout doma...

BlackRose
Title: Re: Newbie crackME - 18
Post by: llAmElliK on February 06, 2007, 06:49:02 PM
Quote from: BlackRose
Hm, tak jestli to jede na XP nevim, ale na mejch pracovnich W2k to nejede urcite :( Zkusim na to kouknout doma...

BlackRose

Jo nejede...taky mam v praci W2K a nejede,ale v tom problem nevidim,Hypno na to upozornoval tagze OK.
Title: Re: Newbie crackME - 18
Post by: eraser on February 07, 2007, 08:19:43 AM
Včera som krokoval ten lvl4 a oproti lvl3 je to pekný skok, resp. záhul.
Title: Re: Newbie crackME - 18
Post by: Master on February 07, 2007, 02:14:16 PM
lvl 4 je az nepekne jednoduchy :D
Title: Re: Newbie crackME - 18
Post by: eraser on February 07, 2007, 02:52:36 PM
Jak pre koho... mo?no pozná? nejaké triky, ktoré ja nie a potom mi nič iné neostáva, len to opäť postupne krokovať. Podstata mi je v?ak jasná, no e?te nechápem presnú skladbu tých chainov, resp. manipuláciu s jednotlivými bajtami a ich kombinácia do výsledného reťazca. Čo mám na konci dostat, to mi bolo jasné behom minuty.

?e ma to skorej nenapadlo, osloviť mistra GOOGLE a následne behom sekundy zistiť, o aké ?ifrovanie sa jedna.   :rolleyes:
Title: Re: Newbie crackME - 18
Post by: llAmElliK on February 07, 2007, 03:02:55 PM
27 postu na toto tema - (26 bez meho) a ted si je zpet projdete a zjistite ze k danemu tematu je jich sotva 1/3 - OPET akorat neprehledna zmet nicnerikajiciho textu.
Tohle neni CHAT - sve poznatky bez presnych informaci z kodu si vymenujte na PM popripade na ICQ.
Diky
Title: Re: Newbie crackME - 18
Post by: llAmElliK on February 07, 2007, 10:14:54 PM
Spoustu starosti se da usetrit volbou spravnych nastroju s cimz souvisi i pocatecni analyza - no a jelikoz jsem analyzoval (pac trochu znam Hypno-skill:D ) tag nezklamal...

 
Code: [Select]
BASE64 table :: 000033BE :: 004053BE
The reference is above.
BigLib BigMod :: 00002856 :: 00403456
The reference is above.
BigLib BigPowMod :: 00002A54 :: 00403654
The reference is above.
CRC32 :: 000005C7 :: 004011C7
Referenced at 004011B6
Referenced at 00401A4E
Title: Re: Newbie crackME - 18
Post by: eraser on February 08, 2007, 08:22:54 AM
Daný výpis je to prvotné, čo som vlo?il do môjho pracovného textového dokumentu. Mimochodom, včera ráno som o ?ifre v lvl4 nevedel, ani ťuk, teraz je u? prekonaná. Keby Hypno nepou?il notoricky známy exponent, tak by som na to bez pomoci asi nikdy nedo?iel. Takto mi stačil google, základný popis a jedna ?ikovná utilitka. Nie je v?ak nad to, keď človek na to rie?enie príde absolútne sám a predtým o danej problematike nevedel z hola nič.

Inak ?koda, ?e sa na tento ?týl nedá v podstate vytvoriť keygen.

Momentálne som v?ak dočasne v koncoch, preto?e som narazil na anti-debug/disassemble trik v lvl5, čo je opäť pre mna novinka. Ale zatiaľ neradte, skúsim dačo pohľadať.

No, zohnal som si nejaké pluginy pre Olly, tak to večer vyskú?am, snáď sa pohnem zase o krok ďalej. No očakávam, ?e i keď prekonám tento trik, tak sa dostanem do ďal?ieho pekného záhulu.
Title: Re: Newbie crackME - 18
Post by: robocop on February 09, 2007, 12:08:01 PM
Code: [Select]
...U levelu 1 to bylo horsi.Nez sem si sepsal utilitku,ktera mi to prepocetla zpatky,tak to chvilku trvalo... Ja som to najskor robil rucne s kalkulackou, pri tretom znaku ma to preslo, tak som to prepisal do C s tym, ze som sa asi 10 minut babral s prepisom ROL do ANSI C.....

2 Master & Eraser: jeste se vratim k lvl1, proc tak slozite? (pravda, ja sem to taky zacal delat na papire...) pro vetsi efektivitu a usporu casu - staci pred ten ror a xor hodit bp, vyeditovat a upravit si hodnotu v esi (nebo edi... ted nevim pisu zpameti) tak aby se do cyklu dostali znaky, s kterejma se to ma na konci porovnavat, vyedituju ror a xor a otocim to na xor a rol, hodim bp za ten cyklus, spustim a pak si dumpnu to místo (asi v edi) kam se to "upravilo" a mam key
Title: Re: Newbie crackME - 18
Post by: Master on February 09, 2007, 02:46:25 PM
Jako jiste,ale je me to nevadilo.Aspon sem si zase trochu procvicil inline asm.

BTW:Ted sem se sekl na lvl5.A zatim nevim kudy kam.Vsiml sem si tam nejakeho tls,ale jeste nevim,jestli to je to co hledam nebo ne.Budu to muset jeste nejak nastudovat... :confused:
Title: Re: Newbie crackME - 18
Post by: eraser on February 09, 2007, 07:10:53 PM
Ja som si zase precvičil prepis základných in?trukcií do ANSI C... :)

Master: Hmm, to mi tie? nič iné neostáva, len ?tudovať. Av?ak chvíľku sa v tom e?te rád porýpem, lebo neni nad to, keď to človek doká?e odhaliť sám a pokiaľ sa mi to v tomto prípade nepodarí, nevadí, Hypnove CM splnilo účel, opäť som načerpal nové vedomosti.

Inak v?imol som si e?te ďal?ie základné prvky anti-crackingu - funkcie VirtualProtect(), ďalej GetModuleHandle(), GetProcAddress() na MessageBox().

Tá sekcia v PE hlavičke s názvom .tls trochu smrdí...  :eek:
Title: Re: Newbie crackME - 18
Post by: llAmElliK on February 09, 2007, 07:40:13 PM
V levelu 5 je pouzit trik ktery mimo jiny uziva ExeCryptor - pomoc pro trasovani je jednoducha - OllyAdvanced Plugin a zatrzeni Break On TLS Callback (viz obrazek) - restart Olly ,spravny BPX a vyhodi Vas to tady - a dal je to uz na Vas..

00401XXX  /.  55               PUSH EBP
00401XXX  |.  8BEC          MOV EBP,ESP
00401XXX  |.  83C4 F4    ADD ESP,-0C
00401XXX  |.  56            PUSH ESI
00401XXX  |.  57            PUSH EDI
00401XXX  |.  51            PUSH ECX
00401XXX  |.  52            PUSH EDX
Title: Re: Newbie crackME - 18
Post by: eraser on February 09, 2007, 08:21:06 PM
Díky za hint, do?iel som na to...  som tam. Teraz sa zase trápiť s algoritmom...

Inak tento plugin mi nejako u?iel pozornosti. Zjavne mô?em ostatné hidovačky vymazať a pou?ívať tento namakaný kus dynamickej kni?nice.

Mám to, sakra to bolo veľmi easy, ale len vďaka pár skúsenostiam pri lvl4.

Tak?e, teraz ten posledný, hmm, trasúce sa okno... mal by som sa zrejme zamerať na jednu známu API funkciu. Uvidíme... pre dne?ok si dám oddych, u? mám po celom tý?dni nafúknutú lebznu.   :p
Title: Re: Newbie crackME - 18
Post by: Master on February 09, 2007, 08:39:50 PM
A bez pouziti pluginu by to slo jak?Zkousel sem kdejake finty a neslo mi to.
Title: Re: Newbie crackME - 18
Post by: llAmElliK on February 09, 2007, 08:56:21 PM
Quote from: Master
A bez pouziti pluginu by to slo jak?Zkousel sem kdejake finty a neslo mi to.

:D - netrasovat v XP , jinde to myslim nefunguje...

Je to co jsem rikal - pred samostnym REversovanim dukladne prozkoumat target - TLS trik umi odhalit napr.LordPE - viz TLS Table...

BTW - jenom dodam co tady bylo jiz receno, cme jsme jen probehl (nemam vuubec cas, navic je tam moc pocitani na mne:p ) ale je pravda ze je velmi pekne - fakt povedeny - diky.
Title: Re: Newbie crackME - 18
Post by: eraser on February 09, 2007, 09:21:38 PM
Quote from: Master
A bez pouziti pluginu by to slo jak?Zkousel sem kdejake finty a neslo mi to.

To presne netu?ím, ale povedal by som, ?e práve ďal?ie vlákno sa stará o daný checkovací algoritmus, tak?e vlastne daný plugin spravil to, ?e dovolil krokovať kód onoho vlákna.

No a TLS slú?i k tomu, aby sem ulo?ené dáta boli prístupné práve k aktuálnemu vláknu a zabezpečí, aby neboli menené iným.

Inak som sa dočítal, ?e vraj pomáha nastaviť v Olly tzv. System breakpoints v Options - Events. Dačo to robí, no nejako to nie je ono... :(

//edit
Hmmm, som si hovoril, ?e TLS by sa dalo eliminovať vymazaním, no nevedel som presne ako. Tak?e, díky za ďal?í tool do zbierky - LordPE. Inak, teraz ma napadá, ?e ono by sa to dalo kľudne realizovať i ručne, stačí vedieť správny offset a prepísať si tie 2x2 bajty i sám.
Title: Re: Newbie crackME - 18
Post by: CZerezpiCZkin on February 09, 2007, 09:46:58 PM
Quote from: Master
A bez pouziti pluginu by to slo jak?Zkousel sem kdejake finty a neslo mi to.


Ja som na zdolanie urovne 5 nepotreboval ten plugin. Sustredil som sa na antiattach a po jeho vyradeni som to len attachol. Algo pre lvl5 je fakt jednoduche, tu islo hlavne o to dostat sa po to algo...
Title: Re: Newbie crackME - 18
Post by: Conflict on February 09, 2007, 11:08:21 PM
s TLS se vyporadavam jednodusse. otevru target v LordPE a proste ho smazu. Takhle sem dal Final test za 5 minut. Mazani TLS delam bezne v kazdym targetu.
Title: Re: Newbie crackME - 18
Post by: eraser on February 09, 2007, 11:37:04 PM
Quote from: Conflict
s TLS se vyporadavam jednodusse. otevru target v LordPE a proste ho smazu. Takhle sem dal Final test za 5 minut. Mazani TLS delam bezne v kazdym targetu.

No, skúsil som to s odstránením TLS sekcie, dostanem sa tam, ale aplikácie sa nechová korektne, no dá sa povedať, ?e podstatu to splnilo.

V tomto prípade je pou?itie Olly Advanced plugin-a čistej?ie a navy?e nemusím modifikovať target.

Inak hovorí? o lvl5, či skutočne o final test-e, či?e lvl6?



OK, tak som sa na chvíľku vrátil k tomu poslednému testu a zrejme budem potrebovať nejaký hint, resp. maličké nakopnutie, aby som sa pohol ďalej, no nedostal rie?enie zadarmo.

Predpokladám, ?e pri správnej kombinácii meno/serial sa okno zatrasie vo vertikalnej osi, tak?e trasenie podľa horizontály je neúspech. Preto som sa zameral na funkciu SetWindowPos() a taktie? musí aplikácie nejakým spôsobom získať oba reťazce, doteraz sa tak dialo pomocou GetDlgItemText(). Omrkol som i v?etky SendMessage() a SendDlgItemMessage().

Aktivoval som Olly Advanced plugin a pridal voľbu UnhandledExceptionFilter. Stále v?ak skapam na SEH. Presnej?ie ide o

004018BE   add al, 33
004018C0   shl byte ptr ds:[edi+ecx*4+5], 0      ;  Shift constant out of range 1..31
004018C5   add byte ptr ds:[eax], al
004018C7   add byte ptr ds:[ebx+5A5B04C4], al


Skúsil som i odstrániť TLS, toto je v?ak, dá sa povedať funkčné, tak pre lvl5.

Daný kus kódu som priamo v OllyDbg zaNOPoval a tým som sa dokázal dostať ďalej (0x00402010).  Pokračujem a vidím, ?e som skončil v user32.dll.   :confused:
Title: Re: Newbie crackME - 18
Post by: Master on February 10, 2007, 02:03:08 PM
Tak sem zdarne prosel final testem,ale ani za ho*no nereknu,jak pracuje :D
Jen sem vyuzil nedokonalosti kodu a ziskal tak SN.Kdyby to bylo jen trochu pozmenene,tak sem nahranej.Muze nekdo neco rict k pouzitemu anti triku?At se pohnu trochu dopredu tak jak by to melo byt.

Mam dojem,ze v SEHu se prepocitavaj adresy kousku kodu a na ty se presmerovava.Ale je to celkove nejaky zmateny.
Title: Re: Newbie crackME - 18
Post by: eraser on February 10, 2007, 04:23:37 PM
Ja som haluzne na?iel nejaký taliánsky tutoriál ohľadne reverzovania SEH a zisťujem, ?e dané "kon?tanty", ktoré tam spomínajú, k tým som sa dopracoval e?te včera večer, kedy som tak haluzil, ?e ani neviem, jak som sa tam mohol vôbec v Olly ocitnúť. Momentálne som na takýchto riadkoch, či?e pri trap-flag checku.

004010C9  mov edx, dword ptr ss:[esp+C]
004010CD  mov ecx, dword ptr ss:[esp+4]
004010D1  cmp dword ptr ds:[ecx], 80000004


Hmm, ale je to pekný humáč... a pritom try-except-finally som pou?íval v C# ka?dý den. Keď pozerám na prepis do ASM, tak sa mi zdvíha ?alúdok.
Title: Re: Newbie crackME - 18
Post by: CZerezpiCZkin on February 10, 2007, 06:59:30 PM
Quote from: eraser
Predpokladám, ?e pri správnej kombinácii meno/serial sa okno zatrasie vo vertikalnej osi, tak?e trasenie podža horizontály je neúspech.


Ee, nemas pravdu, na spravnom konci je hlasenie "Goood job."

Len pre nakopnutie som spravil nejaky ten postup, dufam, ze bude zrozumitelny. Keygen pre Level 3 mam hotovy, ale pre Final test este nemam - uz ho nestiham. Takze keygeny mozno poslem naraz neskor.


2 HypnotiX:
Chcel by som ta poprosit o zverejnenie zdrojakov po uzavreti tohoto CME, nech sa nieco priucim aj ja co sa tyka MASM... Dakujem.  :)

EDIT: Na podnet Erasera opraveny preklep v zneni finalneho hlasenia (chybalo tam jedno "o").  :rolleyes:
Title: Re: Newbie crackME - 18
Post by: eraser on February 10, 2007, 07:16:37 PM
Tak?e presnej?ie ide zrejme o "Goood job", túto hlá?ku som si v?imol po otvorenení .exe súbora v hex editore a nachádza sa presne pre textom "Final Test". No, nevenoval som tomu bli??iu pozornosť.

Díky za postup, mrknem si ho neskôr, momentálne e?te trochu ?tudujem SEH a e?te sa rýpem v OllyDbg.

Ohľadne prosby toho zdrojáku sa tie? pripájam...


Po masívnych konzultáciach a radách Robocop-a sme narazili na zaujímavý blok, ktorý začína na adrese 00401711. Celé som to skúsil preanalyzovať a vyzerá to veľmi pekne. Predpokladám, ?e sa MessageBox dynamicky loaduje cez známe funkcie GetModuleHandle a GetProcAddress a je mo?né si v danom bloku v?imnúť i strlen funkciu... no kľudne sa mô?e jednať o mätúci kus kódu, ktorý bol zle disassemblovaný. Hold funkcia VirtualProtect mení jeden byte na B8... sakra, sakra. Hmm, a preklad na adrese 004016D8 ;  ASCII "Final Test"...


Vrátil som sa k VirtualProtect funkcii, tro?ku som pre?mejdil, čo do nej vstupuje a pri tej príle?itosti som na?iel tento link.   :D

http://www.petesh.com/archives/2006/02/detecting_debuggers.html

Či?e ide o prepísanie vstupného bodu volania funkcie DbgUiRemoteBreakin(), ktorá je aktívna v prípade natiahnutia u? spustenej aplikácie debuggerom (napr. OllyDbg - File - Attach). Ak existuje teda tento proces, tak sa  pomocou VirtualProtect naloaduje do EAX (MOV EAX -- B8) funkcia ExitProcess(), ktorá sa následné zavolá (D0FF -- CALL EAX).

-- tak som si sosol CZpCZ ten tvoj texťák a vidím, ?e si toto odhalil a týkalo sa to lvl5.


OK, tak jeden serial mám - díky za tip, Master... ale funguje len pri nezadanom mene. V?imol som si, ?e sa prechádzalo niektorými časťami, ktoré som tu spomínal. Videl som v stacku funkcie GetVolumeInformation, či strlen.
Title: Re: Newbie crackME - 18
Post by: eraser on February 10, 2007, 10:27:16 PM
Hmm, tak na adresu 004010B9 som sa dostal ručným krokovaním, pričom som si myslel, ?e som sa zacyklil, ale to i?lo o hore spomínanú adresu 004010C9. Ďalej som v?ak nevedel, čo dalej.

Ja som na svojom kompe dostal bez zadaného mena tento serial: 343307813/--3CB25376. Pre meno eraser zase 343307813/-eraser-731CE810 (Volume in drive D is DATA, Volume Serial Number is CCA0-9D71, ale ani vo sne by ma nenapadlo, ?e s volaním Shift+F9 mám isť toľkokrát, pokiaľ sa mi nezobrazí v zásobníku - opäť skladám poklonu Master-ovi.  :)

V?imol som si, ?e si spomínal PointH, také niečo mi poobede hovoril Robocop.

Btw. trik s GetVolumeInformation bol i v tom CM, čo som tu prezentoval ja...  :p

CZpCZ: nedalo mi a za?ral som sa do tej tvojej eseje - výborné čítanie, kde sa na to hrabe môj chabý pracovný popis v notepade   :eek: , inak to s tým switch-om na odstránenie NAG... respecta. Ja som sa na to čísielko pozeral, pre?iel som si i lvl1, ale prevod ma teda nenapadol.  :)  Jedno mi v?ak vŕta v hlave, ak to spustím priamo z príkazovej riadky cmd, tak mi ten switch nezaberá. Z totalcmd neni problém, či Start - Run.
Title: Re: Newbie crackME - 18
Post by: CZerezpiCZkin on February 11, 2007, 04:52:44 PM
Quote from: eraser
Ja som na svojom kompe dostal bez zadaného mena tento serial: 343307813/--3CB25376. Pre meno eraser zase 343307813/-eraser-731CE810 (Volume in drive D is DATA, Volume Serial Number is CCA0-9D71, ale ani vo sne by ma nenapadlo, ?e s volaním Shift+F9 mám is? tožkokrát, pokiaž sa mi nezobrazí v zásobníku - opä? skladám poklonu Master-ovi.  :) .


Ano, pokial beriem to SN, ktore si napisal za spravne, tak cast "343307813/" dostanes z Serioveho cisla disku, cast "-eraser-" ti je jasna a posledu cast "731CE810" dostanes prepocitanim retazca zlozeneho z prvej a druhej casti v cykle, ktory som popisal v tom textaku. (pisem to teraz z pamati, neviem teda adresy spominanych operacii)

Quote from: eraser

CZpCZ: nedalo mi a za?ral som sa do tej tvojej eseje - výborné čítanie, kde sa na to hrabe môj chabý pracovný popis v notepade   :eek: , inak to s tým switch-om na odstránenie NAG... respecta.


Vdaka, taktiez som to robil v notepade.

Quote from: eraser

Jedno mi v?ak vŕta v hlave, ak to spustím priamo z príkazovej riadky cmd, tak mi ten switch nezaberá. Z totalcmd neni problém, či Start - Run.


Teraz vobec neviem ako to myslis, ak do prikazoveho riadku Total commandera zadas "Newbie_18.exe -T4C", tak to slape. Ak v Ollym do argumentov zadas "-T4C" tak to tiez pracuje spravne...

EDIT: Uz viem, co si mal na mysli, ked to skusim spustit z DOSovskeho okna (Command Prompt), tak to s argumentom nepracuje. Neviem z akeho dovodu, ci to nejako meni tvar toho argumentu, pripadne ci to vobec nejaky argument posiela...
Title: Re: Newbie crackME - 18
Post by: eraser on February 12, 2007, 08:19:26 AM
Pozrel som si e?te raz výpis z Kanal-a a predpokladám, ?e Hypno pou?il metódu CRC na detekciu debuggera.  :)

Tento tý?deň spravím men?í popis, resp. popí?em ten svoj pracovný zdrap a tro?ku to opäť poformátujem, aby to bolo čitateľnej?ie a nakódim pár posledných keygenov, ktoré mi chýbaju a chcel by som e?te zbúchať nové newbie CM, ktoré sa bude týkať simulácie CD-CHECKu. Tak?e, men?í oddych od rôznych S/N algos a ?ifrovačiek. ;)

Tak?e roboty po u?i...

Inak by ma stále zaujímalo, ako efektívne krokovať v dbg ten lvl6.
Title: Re: Newbie crackME - 18
Post by: Master on February 12, 2007, 12:05:39 PM
To crc tam je,ale ne na detekci debugeru.Teda ja si aspon niceho takoveho nevsiml :) Mozna tak na zmenu.

Jinak musim si jeste najit cas a dohledat ty vypocty v lvl 6 :/ a vubec prijit na to,jak to odtrasovat poradne,jestli se to da nejak obejit.
Title: Re: Newbie crackME - 18
Post by: eraser on February 12, 2007, 03:20:41 PM
Jo, má? pravdu. Pokecal som s Hypnom a hovoril, ?e CRC pou?il pri výpočte dvoch serialov.

No, ten lvl6 mi nespomínaj, mám ka?dý večer z toho nočné mory, jak ho nemô?em odkrokovať. :)  Prípadne by nebolo od veci odhaliť obfuscation.

Teraz v?ak spravím zopár keygenov a najmä popis, lebo z toho môjho notepadového textáka by nikto múdry nebol. Tak?e robota na večer je prichystaná. Ten CD-CHECK odlo?ím, no verím, ?e do konca tý?deňa ho zbúcham. U? vidím, jak ho niekto crackne skorej, ne? ja ho naprogramujem a odladím.
Title: Re: Newbie crackME - 18
Post by: Master on February 12, 2007, 04:20:30 PM
Tak hotovo,dokodim kg na lvl 5 a nahodim sem popisky i s tema kg.Pozdeji dopisu nejaky podrobnejsi tut.
Title: Re: Newbie crackME - 18
Post by: CZerezpiCZkin on February 12, 2007, 04:37:06 PM
Quote from: eraser
Jo, má? pravdu. Pokecal som s Hypnom a hovoril, ?e CRC pou?il pri výpočte dvoch serialov.

No, ten lvl6 mi nespomínaj, mám ka?dý večer z toho nočné mory, jak ho nemô?em odkrokova?. :)  Prípadne by nebolo od veci odhali? obfuscation.

 Co sa tyka Levelu 6, nejako velmi krokovat nejde, na tom jumpe, kde si postupne najskor zistuje adresy jednotlivych volani a potom prevadza samotne volania. Na tomto JMP ked si nastavis BP tak vidis, co a kde robi (poradim ti, najskor si spis na papier vsetky cinnosti, ktore sa prevadzaju cez tento JMP po stlaceni Test. A potom si len kontroluj co sa kam uklada a nasledne uvidis, co sa ako prekoduje ci prepocita... To uz budes mat dostatok info, aby si zistil co sa tam deje.  Ochrana proti krokovaniu tam je robena cez SEH, takze krokovanim cez F8 v Ollym dosiahnes len vyvolanie vynimky. Zasahy do kodu na odstranenie tejto ochrany som nerobil, lebo som nevedel (hlavne pri tych CRC checkoch pouzitych pri vypocte serialov) kedy spravim volovinu a este viac si to skomplikujem.

Este co sa tyka tych mojich keygenov. KG na level 6 uz robit nebudem, lebo mi vcera HypnotiX poslal zrojaky k CME (dakujem) a z mojej strany by to bolo iba "odpisovanie".
Povodne som chcel zlucit vsetky keygeny do jedneho a urobit to v MASM. Mam spraveny KG pre Level3, takze ak to bude niekto chciet, mozem sem hodit. No nie je to nic, s cim by som sa mohol chvalit (skor naopak), lebo to bola len "pracovna verzia" na overenie spravnosti mojho postupu splacana v Delphi.
Title: Re: Newbie crackME - 18
Post by: hybridfusion on February 12, 2007, 06:11:29 PM
Kdyz se tak po delsi dobe do toho vkladam ........ co mate fsichni proti PATCHINGU ?? :D
Title: Re: Newbie crackME - 18
Post by: Conflict on February 12, 2007, 08:04:15 PM
patching do tehle sekce nepatri, tady se chce SN nebo KG, zalezi co napise autor.
ja proti patchingu nic nemam, dokonce sem jeho zastancem. proc se totiz srat s vypoctem kdyz se tomu muzu vyhnout.
Title: Re: Newbie crackME - 18
Post by: Master on February 12, 2007, 08:35:41 PM
ja sem pro patching,kdyz uz opravdu neni jineho reseni.Protoze u lepsich ochran ti patch na algo nepomuze,jelikoz to muze byt propojene s x dalsima vecma a zbytecne by sis pridelal praci.

Co se tyce lvl6 jak pise CZpCZ.Cele se to da proskaka SHIFT+F9 a pouzit intuici a zjistovat,co se kde deje.Ale je to hodne slozity.Spise by me zajimalo,jak tam detekuje krokovani.Protoze jakmile jednou udela clovek krok,tak mu to spadne a muze restartovat program.
Title: Re: Newbie crackME - 18
Post by: eraser on February 13, 2007, 08:55:04 AM
Conflict, Master: S tým patchovaním mám podobný názor. Napr. pred pár mesiacmi mi poslal kámo? jednu logickú hru, Scrubbles a nadával, ?e sa do toho za?ral a po hodine ho to zru?ilo a ďalej u? ne?lo spustiť. Vyčistenie registrov by moc nepomohlo, preto?e by to človeka opäť odpalilo počas hry.

Tak som sa do toho pustil, haluzne som na?iel jeden call, o ktorom som si myslel, ?e ak ho zru?ím, tak hra vypí?e okam?ite, ?e mi vypr?al čas, no nestalo sa tak a náhodne sa mi unlockla, tak?e som pekne videl, ako ma víta full verzia.

Vrátil som sa k tomu pred tý?dňom, ?e skusím mrknúť na algo, ktoré vypočítava key, no keď som videl volania rôznych MS encrypt funkcií, tak ma pre?la chuť. Navy?e som, ani poriadne nena?iel, ako sa načitáva serial.

Tak?e, patch za 5 minút vs. keygen?

Quote from: Master
Spise by me zajimalo,jak tam detekuje krokovani.Protoze jakmile jednou udela clovek krok,tak mu to spadne a muze restartovat program.

A má? tam niekde vlo?ený breakpoint? Ak áno, mohla by to byť teoreticky odpoveď.

No, nic... včera som sa k tomu nedostal, bastlil som keygeny a nechutne soms a zasral s Miracl kni?nicou, preto?e som ju dával do kupy s LCC. Ale u? to mám, tak?e e?te to prepí?em do jednoduchej Win32 aplikácie, lebo tá konzolovka je o ničom. Potom idem späť na lvl6, ?mejďák jeden, stále mi le?í v ?alúdku.
Title: Re: Newbie crackME - 18
Post by: robocop on February 13, 2007, 04:14:34 PM
2Master:
tady se nastavuje SINGLE STEP FLAG, mozna jeste nekde jinde, ale nenasel sem kde...

004010BF   .  66:9C         PUSHFW
004010C1   .  834C24 01 01  OR DWORD PTR SS:[ESP+1],1                        
004010C6   .  66:9D         POPFW
Title: Re: Newbie crackME - 18
Post by: Master on February 13, 2007, 04:46:02 PM
jo tohodle sem si vsimlale jak to pozna,ze sem zrovna udelal jeden step a pak ho pustil dale.To mi vrta hlavou...
Title: Re: Newbie crackME - 18
Post by: llAmElliK on February 13, 2007, 04:52:55 PM
Quote from: robocop
2Master:
tady se nastavuje SINGLE STEP FLAG, mozna jeste nekde jinde, ale nenasel sem kde...

004010BF   .  66:9C         PUSHFW
004010C1   .  834C24 01 01  OR DWORD PTR SS:[ESP+1],1                        
004010C6   .  66:9D         POPFW

Kdyz jsem dneska cetl prispevky tag jsem si myslel ze je tam tenhle problem,protoze doma jsem to krokoval uplne normalne (pomoci pluginu) - ale nevedel jsem kde presne protoze v praci mam w2k tag sem to nemohl zkusit...
Pozna to podle naplneni registru.......nekde se tady ten postup uz probiral.

(cituji sam sebe)
..v ka?dým případě to je odchyt SINGLE STEP.Důle?itý je teda odsledovat registr gde v registru resp flagu-TRAP (T) nakočí 1 - pokud pou?ijte Sice a myslím ?e to tam fungovat nebude.........(mo?ná se pletu) - mo?ná se pletu úplně...
 
tady ukazka z jine apzz

 
Code: [Select]
EIP 00A04F78 SQLiteAn.00A04F78
C 0  ES 0023 32bit 0(FFFFFFFF)
P 1  CS 001B 32bit 0(FFFFFFFF)
A 0  SS 0023 32bit 0(FFFFFFFF)
Z 0  DS 0023 32bit 0(FFFFFFFF)
S 1  FS 003B 32bit 7FFDE000(FFF)
T 1 GS 0000 NULL <------------------------tady ta 1


....kod (-1) hodnota FFFFFFFFh znamená detekci nějakýho toolu v paměti (mů?e to bejt debugger ale právě i unpacker) - a je to postavený na volání SEHu před instrukcí - v případě ?e je program trasován tak SEH není volán a tím dojde ke spadnutí aplikce - pokud to je tak je třeba najít to místo.
Heh - zapomněl jsem co mně k tomu vede - instrukce POPFD/
POPFW!!!
Title: Re: Newbie crackME - 18
Post by: CZerezpiCZkin on February 13, 2007, 06:20:49 PM
Quote from: Master
jo tohodle sem si vsimlale jak to pozna,ze sem zrovna udelal jeden step a pak ho pustil dale.To mi vrta hlavou...


Tato ochrana cez SEH je zalozena na tom, ze sa kontroluje hodnota nastavena v TF (Trap Flag). Tento TF indikuje, ci je aktivovany krokovaci rezim (single-step). Cela sranda spociva v tom, ze nemozes "len tak" skontrolovat, aka je hodnota TF, takze najskor musis cez PUSHFW a POPFW vydolovat hodnoty vsetkych priznakov a az potom zistovat, aku hodnotu ma TF (prikazom OR).

Krokovaci rezim nemozes ovplyvnit, ten je nastavovany debuggerom, ak by si ho zrusil, debuger nebude krokovat. Jednou z moznosti je, krokovat a zistit, kam ti to skace. Tym padom vies, kam to ist NEMA. Potom uz len pozries v kode kam by to islo, keby si nekrokoval. A az na toto miesto das BP. Tym padom cast ktora zistuje, ci si krokoval na nic nepride, pretoze prave vtedy si nekrokoval. Potom spustis beh programu (F9) a zastavi sa to az v tej casti, ktora sa ma vykonavat, ked nie je CME krokovane...

SEH by som ja osobne nepatchoval (patchovat sa snazim co najmenej), nikdy nevies, co na co navazuje a potom by som sa musel este navyse srat aj s checksumami alebo manualne opravovat hodnoty pouzivane pri nejakom vypocte, ktore mojim zasahom boli pomenene.
Title: Re: Newbie crackME - 18
Post by: Master on February 13, 2007, 06:29:15 PM
Ja ho ani patchovat nechci,ale zarazilo me,ze kdyz sem se zastavoval na tech exceptionech v lvl6,tak sem treba udelal jenom jeden krok a dal to pustil F9 a stejne to bouchlo.S tema flagama si to jeste zkontrololuju co a jak.
Title: Re: Newbie crackME - 18
Post by: CZerezpiCZkin on February 13, 2007, 06:59:50 PM
Quote from: Master
Ja ho ani patchovat nechci,ale zarazilo me,ze kdyz sem se zastavoval na tech exceptionech v lvl6,tak sem treba udelal jenom jeden krok a dal to pustil F9 a stejne to bouchlo.S tema flagama si to jeste zkontrololuju co a jak.


jasne, mrkni si tie flagy este na nete, ten moj popis bol dost povrchny.

nastaveny BP sa da zistovat cez overovanie int3 (kontrola prveho byte instrukcie na 0CCh), je to tiez jeden z druhov antidebugg.
ale v tvojom pripade mozno islo o to, ze si krokoval PRAVE cez to miesto, kde sa zistovala hodnota TF a preto ta to zhodilo, aj ked si to potom dalej uz spustil. nekrokuj cast PUSHFW-POPFW.
Title: Re: Newbie crackME - 18
Post by: eraser on February 15, 2007, 08:33:30 AM
OK, tu je moje rie?enie v podobe keygenerátora - funguje i diakritika, zatiaľ absentuje final test a nechcelo sa mi ka?lať s výpočtom, resp. hľadaním P, Q a následne D pre lvl4. Neskor?ie ho snáď e?te updatujem, ale musím vyrie?iť poslednú úroveň.

V?etko je samozrejme prepísané do ANSI C, tak?e ?iadny vkladaný ASM sa opäť nekoná!   :p

Včera som tro?ku analyzoval lvl6 a mám odkrokované jednotlivé funkcie, ktoré sa dynamicky linkujú. Narazil som i na prvé algo, no ide to pomaly, obfuscation je nechutné a debugging takmer nulový.    :confused:

S Newbie CrackMe 18 to zrejme tento tý?deň nevyjde, lebo som si zabudol doma zopár materiálov, sakra.   :mad:


// edit: Pridaný kompletný  a upravený keygen! V prípade chýb, ma kontaktujte.
Title: Re: Newbie crackME - 18
Post by: eraser on February 16, 2007, 08:18:51 AM
OK, keygenerátor je kompletný a lvl6 pokorený. Včera večer som na to po chvíľke do?iel. Ak má niekto stále s ním problémy, čítajte dalej, ak na to chcete prísť, tak tento príspevok ignorujte a poskú?ajte sa ďalej.

V lvl6 je na prvý pohľad zjavné, ?e je pou?itý SEH, antidebugging a tie? antidisassembling. OllyDbg mi prezradil, ?e na 004010C9 je SE handler. Potom som sa haluzne dostal ďalej, sledoval som volania, ktoré sa mi vypísali v stack okne.

Nasleduje nejaká spleť DB definícií (blok 00401711 - 00401897), čo sú v?ak in?trukcie, tak?e po označení celého bloku a zvolení funkcie Analysis - During next... - Command (thx RoboCop) sú čitateľné niektoré volania CALLs, čo dosť napovedá. V?iminite si e?te skok na 0040170C, ten nás presúva na koniec tejto spleti DB. Po men?ej úvahe a spôsobe, resp. poradi volania funkcií GetProcAddress a GetModuleHandleA som si uvedomil, ?e tie in?trukcie sú vlastne otočené, tak?e stačí celý blok otočiť a máme korektný kód. A toto sa deje i na ďal?ích miestach, kde vidno podozrivé DB definície a pred nimi skok na ich koniec.

Následne som na?iel ďal?ie volania, v zásobníku výsledný key (thx Master) a postupne som sa dovtípil, ako sa key generuje.

Tu je výčet jednolivých volaných funkcií.

0040187D GetProcAddress - GetDlgItemTextA (pomocou dynamického linkovania)
00401854 GetVolumeInformationA
call 00402660 - Convert Serial Number to Deciamal String  (buggy convert ???)
lstrlenA (pomocou dynamického linkovania)
call 0040119B - CRC32


V?imol som si plno volaní call 00401046, čo je vlastne BP check a CC si vypočítava pomocou 48 xor 84.   ;)

Konvertovanie Volume Serial čísla na reťazec sa mi zdá, ?e je tro?ku divné, tak?e som musel tento prepis vyu?iť i v mojom keygene, rovnako je na tom jedna funkcia v lvl5.

00401724 call Newbie_1.00401605 je volanie good/bad boy, v prípade úspechu sa zobrazí hlá?ka Goood job a pokiaľ overenie zlyhá, tak sa zatrasie oknom, čo zabezpečujú rutinky Sleep, GetWindowRect a SetWindowPos.


E?te dodám, ?e v OllyDbg mám nastavené v Debuging Options - Exeptions ignorovanie výnimiek.

Podrobnej?í popis spracujem v eseji, teraz je to trochu neucelené, no niektoré časti musím e?te preskúmať. Jedno z nich je i dvojité volanie GetVolumeInformation, atď. Nájde sa tam dosť haluziek, no do kritického bloku sa v?dy podarí ten jeden BP nahodiť.

// added: RoboCop mi poslal tento text, ktorý daný beh ozrejmí viacej.

Výhody kódu be?iaceho pospiatky

Hlavnou výhodou takéhoto kódu je skutočne to, ?e jeho činnosť je relatívne ťa?ko odhaliteľná. Okrem nesprávneho smeru toku programu toti? dĺ?ky in?trukcií, ktoré vkladáme po ka?dom riadku v časti be?iacej pospiatky, spôsobujú, ?e kód nie je správne disassemblovaný.

Debugger (resp. disassembler) toti? nevie, ?e SEH upravuje EIP a v skutočnosti je prvý bajt po ka?dej in?trukcii preskočený. Preto sa sna?í disassemblovať ako in?trukciu aj na?u informáciu o dĺ?ke. Jeho snaha samozrejme spoľahlivo deformuje zvy?ok in?trukcií.

zdroj: http://www.zive.sk/h/TestCentrum/AR.asp?ARI=115163
Title: Re: Newbie crackME - 18->[SOLVED]
Post by: CZerezpiCZkin on February 16, 2007, 04:42:18 PM
To, co popisujes sa nazyva Running Line a vymyslel to tusim jeden Rusak, ale jeho meno si teraz nespomeniem...
Title: Re: Newbie crackME - 18->[SOLVED]
Post by: eraser on February 16, 2007, 06:48:59 PM
Jojo, v tom článku je to popísané a celkom dobre vysvetlené. Inak odporúčam jednak tú linkovanú časť 8, ale najskôr i časť 7. Potom skočiť na danú adresu 0x004010C9 a sledovať, jak je to povedomé... :)

Inak to označenie Running Line som na?iel len v tom článku na zive.sk, tak neviem, či je to korektné.  :confused:

Men?ia uká?ka sa dá nájsť i na tejto adrese...

http://www.wasm.ru/forum/viewtopic.php?pid=120154
Title: Re: Newbie crackME - 18->[SOLVED]
Post by: robocop on February 16, 2007, 07:40:15 PM
ten Rusak se jmenuje Serge Pachkovsky
Title: Re: Newbie crackME - 18->[SOLVED]
Post by: eraser on February 16, 2007, 08:51:59 PM
Ja u? som dávno tvrdil, ?e Rusáci sú jednoznačne lebkouni... paradoxom je, koľko z nich má brutálne znalosti, za ktoré by v USA mali iné pra?ule.

Inak, s Robocopom sme sa poustili do NOPovania size DBčiek a po preanalýze je to u? iné kafíčko... aby som citoval na?eho ruského priateľa, tak teper vsjo jasno.
Title: Re: Newbie crackME - 18->[SOLVED]
Post by: robocop on February 18, 2007, 10:15:50 AM
prikladam mensí ukazku zprehlednení kodu.... jeste me napadlo jestli nejak nevyuzit tech "size" mezi jednotlivyma instrukcema k uplnemu otoceni obraceneho kodu, to by bylo asi uplne nejlepsi
Title: Re: Newbie crackME - 18->[SOLVED]
Post by: eraser on February 18, 2007, 01:52:33 PM
Niektoré in?trukcie e?te nesedia (hlavne, ten záverečný jump - obfuscation ), tak?e dám sem i svoju verziu, ale mo?no som sa tie? niekde sekol.  :)