k3dT Posted January 26, 2006 Report Share Posted January 26, 2006 Predstavuju si to tak, ze bych naprogramoval nejakou jednoduchou aplikaci kam by se zadavalo jmeno a heslo a nasim ukolem by bylo prijit na algoritmus vypoctu (bez zdrojaku samozrejme - jen z exe). Vsechno pekne krok za krokem pro uplny nooby. Pokud by zajem pretrval, mohli by jsme se pustit i do slozitejsich veci (packery, cryptory, komercni aplikace, jen krome RO klienta /heh )... Link to comment Share on other sites More sharing options...
Sir Loon Posted January 26, 2006 Report Share Posted January 26, 2006 jo, sem s crackme a jednoduchym navodem na assembler Link to comment Share on other sites More sharing options...
blizzard Posted January 26, 2006 Report Share Posted January 26, 2006 Trosku postradam smysl vyuziti takovych znalosti... Edit: budeme snad napomahat procentuelnimu mnozstvi piratskych kopii u nas? Link to comment Share on other sites More sharing options...
k3dT Posted January 26, 2006 Author Report Share Posted January 26, 2006 Ok tak se pokusim neco sepsat. Trosku teorie na zacatek...Nejdulezitejsi instrukce assambleru co jsou pro crackera potreba: Assembler pro Crackery 1.0 by [sK!dT, upravil k3dT]============================================== * REGISTRY *------------Registry jsou zakladni definici mist v kterych jsou uchovana data, nas budou zajimat pouze tyto:[E]AX,[E]BX,[E]CX,[E]DX [E] je jen oznaceni pro 32 bitove registry. (EAX, EBX...). Existuji takke pary registru: DS:SI ; Mohou byt pouzity jako zdroj pro retezcove operace ES:DI ; Mohou byt pouzity jako cil pro retezcove oprace * FLAGY *---------Flagy jsou skoro to same jako registry, ale s tim rozdilem, ze mohou byt jen "true", nebo "false" aobsahuji bud "1" (true), nebo "0" (false) jsou nastavovany instrukcemi jako CMP a jsou pouzivany priodskoku, nebo pri volani: CMP AX,BX ; Porovnava AX s BX, jsou-li stejne nastavi se flag 0 na 1 JZ 00124531 ; Kdyz je nastaven flag 0, tak se provede skok na 001254531 * CALL *--------Pouziti: CALL adresaPopis : Vyvola funkci na adresePriklad: CALL 10284312 Po ukonceni volane funkce (RET) se vraci na misto odkud bylo volano a program pokracuje dal * CMP *-------Pouziti: CMP umistneni,hodnotaPopis : Porovnava umistneni s hodnotou a podle vysledku nastavuje flag 0 (nevyhovyje), nebo 1 (OK)Priklad: CMP AX,03h Toto je nejdulezitejsi instrukce, pri niz se porovnava zadane cislo s generovanym cislem * JMP *-------Pouziti: JMP adresaPopis : Je shodna s prikazem GOTO, skoci na adresu s kodemPriklad: JMP 00402011 Dalsi varianty teto instrukce mohou vypadat takhle:JZ - Skok je li nastaven flag 0 (Stejne jako instrukce JE)JNZ - Skok neni-li nstaven flag 0 (Stejne jako instrukce JNE) Tato instrukce se pouziva velmi casto ve spojeni s instrukci CMP, napriklad:CMP seriove,zadane ; Porovnava seriove cislo, s cislem zadanymJNE pryc ; Pokud to nevyhovuje, nasleduje skok pryc * MOV *-------Pouziti: MOV umistneni,hodnotaPopis : Kopiruje byte nebo word hodnotu z hodnoty do umistneniPriklad: MOV AX,DX Pokud pri trasovani narazite na tuto instrukci, pripomente si ze je shodna s C+ (umisteni:=hodnota) * RET *-------Pouziti: RETPopis : Navrat z funkcePriklad: RET Tato instrukce slouzi pro navrat z funkce na adresu, odkud jsme volay tuto funkci * NOP *-------Pouziti: NOPPopis : Prazdny prikazPriklad: NOP Tato instrukce nedela nic. Pouze vyplnuje prazdne misto v pameti. Nam se vsak bude hodit nejvic ze vsech dal jsou potreba aritmeticky a logicky opetatory jako napr. ADD MUL, DIV, AND, OR, SHR, SHL, NOT... Instrukce se neucte, staci si je jen procist. Ted si stahnete OllyDBG - zrejme nejlepsi debugger (freeware) z http://ollydbg.de/odbg110.zip. Stahnete si target (http://server.reborn.cz/CLINE95.exe - shareware program, ale v originalnim archivu chybi licenci ujednani, tak si budeme se souborem delat co chceme). Rozbalte oba archivy a spustte OllyDBG. Spustte si program a omrknete system registrace programu. Klasicke tlacitko register, 2x editbox pro jmeno/reg. cislo. To nebude nic tezkyho. Stisknete F3 (otevrit soubor) a vyberte target (CLINE95.EXE). Vyvolejte kontext menu podle obrazku - http://server.reborn.cz/1.jpg a zvolte "All referenced text strings". To vam zobrazi seznam vsech retezcu co aplikace obsahuje... Prohlidnete si seznam, a urcite vas zaujme radek "Thank you for registering Command Line95!". Kliknete na nej 2x a jsme tu: http://server.reborn.cz/2.jpg Blok A ziskava z aplikace zadane registracni jmeno a ulozi ho na adresu 402461. Viz tento radek:00402461 |. 68 E0934000 PUSH CLINE95.004093E0 ; |Buffer = CLINE95.004093E0 Blok B ziskava z aplikace zadane seriove cislo avsak ne jako retezec ale jako ciselnou konstantu. Vysledek se ulozi do registru EAX ( viz popis API funkce GetDlgItemInt napriklad v MSDN). Blok C je samotny vypocet registracniho cisla. Blok D je porovnani zadaneho serioveho cisla se spravnym (to uz predbiham). Ted si nastavime Breakpoint (To je jakasi "zarazka". Az program k mistu kde je nastaven dojde, pozastavi se). Oznacte mysi radek 0040245B a stiknete F2. Adresa zcervena. Viz screenshot. Ted spustime program klavesou F9. JAk se program pusti, stiskneme tlacitko REGISTER a objevi se pole pro zadani jmena a registracniho kodu. Do poli napiseme napr "k3dt" a cislo "123456" a klikneme na OK. V tom momente se vykonavani programu pozastavi (= program se zastavil na beakpointu). Prepneme proto do okna OllyDBG. Ted budeme program krokovat (tzn vykonavat jednotlive instrukce poporade). To se dela klavesou F8. Krokujeme tedy az dojdeme k adrese 00402487. Vsimneme si cervene hodnoty u registru EAX (okno Registers FPU). Klikneme 2x na to cislo. V poli "signed" vidite seriove cislo co jsme zadali Stiskneme Cancel a krokujeme dal. Dalsi instrukceMOV DWORD PTR DS:[4092CC],EAX uklada zadane seriove cislo do pameti pro pozdejsi porovnani. Instrukce00402493 |. 2BC0 SUB EAX,EAX00402495 |. F2:AE REPNE SCAS BYTE PTR ES:[EDI]00402497 |. F7D1 NOT ECX00402499 |. 49 DEC ECX Pocitaji delku zadaneho jmena Vysledek je v ECX. Instrukce0040249A |. 0FBE05 E09340>MOVSX EAX,BYTE PTR DS:[4093E0] prenese ascii hodnotu prvniho znaku ve jmene do EAX. Instrukce004024A1 |. 0FAFC8 IMUL ECX,EAXVynasobi registry ECX (delka jmena) a EAX (ascii hodnota 1. znaku jmena) mezi sebou a vysledek se ulozi do ECX. Instrukce004024A4 |. C1E1 0A SHL ECX,0AProvede Shift Left (logicke posunuti doleva) o 0x0A a vysledek ulozi do ECX. Instrukce004024A7 |. 81C1 CCF80200 ADD ECX,2F8CCPricte k hodnote v ECX cislo 194764 (2F8CC v hex) a vysledek se opet ulozi do ECX. Krokujeme az k 004024B3 |. 3BCA CMP ECX,EDX coz je porovnani dvou cisel. V ECX mame vypocitane seriove cislo a v EDX nase zadane cislo (v hex samozrejme). Pokud se cisla rovnaji, tak instrukce 004024B5 |. /74 2F JE SHORT CLINE95.004024E6 (jump if equal = skoc kdyz se rovnaji) skoci na adresu 004024E6 coz je 004024E6 |> \6A 00 PUSH 0 ; /Style = MB_OK|MB_APPLMODAL004024E8 |. 68 7C824000 PUSH CLINE95.0040827C ; |Title = "REGISTRATION CODE ACCEPTED"004024ED |. 68 50824000 PUSH CLINE95.00408250 ; |Text = "Thank you for registering Command Line95!"004024F2 |. 56 PUSH ESI ; |hOwner = 002D04AE ('Command Line95 Registration',class='#32770',parent=00B90450)004024F3 |. FF15 C4B24000 CALL NEAR DWORD PTR DS:[; \MessageBoxA Co je prave to co potrebujeme zapamatujeme si proto cislo v ECX (pro jmeno k3dt je to 633036) a restartujeme program pomoci CTRL+F2. Opet stiskneme tlacitko REGISTER ale ted misto fake serialu zadame cislo co bylo v ECX. Stiskneme OK a opet se nam zastavi program na breakpointu. Ted ale nebudeme krokovat a proto pustime aplikaci dal pres F9. Objevi se okno "Thank you for registering Command Line95!" a mame zaregistrovano ) Jeste pro kontrolu stiskneme tlacitko INFO, a opravdu vidime ze je program registrovany. Hotovo. Pokud to pochopi alespon jedna chytra hlava, budu rad dotazy sem. Link to comment Share on other sites More sharing options...
k3dT Posted January 26, 2006 Author Report Share Posted January 26, 2006 Trosku postradam smysl vyuziti takovych znalosti... Edit: budeme snad napomahat procentuelnimu mnozstvi piratskych kopii u nas?17373[/snapback] Vyuziti? Beta tester u firmy co vyviji software. Musim priznat ze mi to vynasi celkem dost. Nejde o to delat cracky / keygeny ale o pochopeni jak aplikace pracujou a neco se priucit. Link to comment Share on other sites More sharing options...
blizzard Posted January 26, 2006 Report Share Posted January 26, 2006 Vyuziti? Beta tester u firmy co vyviji software. Musim priznat ze mi to vynasi celkem dost. Nejde o to delat cracky / keygeny ale o pochopeni jak aplikace pracujou a neco se priucit.17379[/snapback] No jasne, ale co to ma spolecneho s Rebornem? Link to comment Share on other sites More sharing options...
k3dT Posted January 26, 2006 Author Report Share Posted January 26, 2006 Ses v offtopicu o.O Link to comment Share on other sites More sharing options...
blizzard Posted January 26, 2006 Report Share Posted January 26, 2006 Ses v offtopicu o.O17382[/snapback] IMHO, az budu moct zakladat topicy tak si udelam to samy na PHPko /heh . Ne nic ve zlym. Jen jsem zvedav jake to bude mit ohlasy... Link to comment Share on other sites More sharing options...
k3dT Posted January 26, 2006 Author Report Share Posted January 26, 2006 Pochybuju ze to normalniho cloveka co nikdy neprogramoval zaujme, ale hraje tu nekolik programatoru z povolani kteri se treba neco priuci. Link to comment Share on other sites More sharing options...
Sir Loon Posted January 26, 2006 Report Share Posted January 26, 2006 Trosku postradam smysl vyuziti takovych znalosti... Edit: budeme snad napomahat procentuelnimu mnozstvi piratskych kopii u nas?17373[/snapback]nevim jak ses starej a jak do ty problematiky vidis, ale crackovani a piratstvi bylo, je a bude uplne neco odlisneho. pirati jen chudacci, kteri bud nemaji prachy, nebo je (a to spis) mit nechteji. crackovani je stary uz dlouho a cracky se delaly jen pro lidi z grup kteri se drzeli hesla ze warez neni na obzivu a kopie sirili jen mezi sebou a bez zisku Link to comment Share on other sites More sharing options...
blizzard Posted January 26, 2006 Report Share Posted January 26, 2006 ad. assembler - kdysi jsem mel (mozna je jeste funkcni) Didaktika Gamu. V te dobe urcite naslaply to stroj (2Mhz, 2x 40kB RAM). Mel jsem to stesti, ze jsem k nemu mel i dve 5.25'' mechaniky (ale taky jsem si uzil nahravani z magnetofonu). Nicmene, kdyz me omrzely hry tak jsem zkousel programovat v Basicu. Kdyz me to omrzeli Basic nekde jsem si schrastil tutorial na Assembler. Hrozne me v te dobe fascinovali 'soundtracky' od Frantiska Fuky, tak jsem zacal delat podobne blbosti. Takze registru a zasobniku jsem si uzil dost a dost. Nejlepsi bylo, kdyz clovek zjistil ze diky assembleru je schopny generovat ruzne tony a pul tony a ne jako Basic ktery znal jen CDEFGAHI ve trech oktavach nahoru a dvou dolu. Takze Assembler rulezzz. Link to comment Share on other sites More sharing options...
Ladik Posted January 26, 2006 Report Share Posted January 26, 2006 Ne nic ve zlym. Jen jsem zvedav jake to bude mit ohlasy...17383[/snapback] Ja osobne se rad neco priucim, oproti nekterym 14-ti letym detem jsem sto roku za opicema o:). Tedy az se na to vyspim, abych vubec pochopil o co jde Link to comment Share on other sites More sharing options...
blizzard Posted January 26, 2006 Report Share Posted January 26, 2006 nevim jak ses starej a jak do ty problematiky vidis, ale crackovani a piratstvi bylo, je a bude uplne neco odlisneho. pirati jen chudacci, kteri bud nemaji prachy, nebo je (a to spis) mit nechteji. crackovani je stary uz dlouho a cracky se delaly jen pro lidi z grup kteri se drzeli hesla ze warez neni na obzivu a kopie sirili jen mezi sebou a bez zisku17385[/snapback] No... stredni skolu uz mam par let za sebou. A co programovani se tyce tak mam za sebou par programovacich jazyku od Basicu pres Delphi a ted uz par let tvrdnu nad PHP a MySQL. Vish ono resit tady problematiku ne/legalniho softu by bylo na dlouho. Kazdy na to mame svuj nazor, ale od te doby co jsem si zridil firmu si nedovolim na komp nainstalovat cokoli cerneho. A diky tomu je muj nazor na tuto problematiku trosku tvrdsi. Takze as tak... Edit: zazil jsem to u kopirovani mag. kazet na Didaktika, tehda se v novinach normalne otiskovaly inzeraty typu 'nahraji kazety pro Didaktika, 300 kazet, velky vyber od her az po programy....' Link to comment Share on other sites More sharing options...
KatarTwister Posted January 26, 2006 Report Share Posted January 26, 2006 Edit: zazil jsem to u kopirovani mag. kazet na Didaktika, tehda se v novinach normalne otiskovaly inzeraty typu 'nahraji kazety pro Didaktika, 300 kazet, velky vyber od her az po programy....'17388[/snapback] To si asi dlho necital noviny kde su inzeraty priamo na kopie DVD alebo CD verzie od filmov cez hudbu a programy az po hry. Ja osobne si kupim len hru ktora za to stoji. Link to comment Share on other sites More sharing options...
Retro Posted January 27, 2006 Report Share Posted January 27, 2006 Moc pekny kenny, pochopil jsem to i ja Jen jestli se muzu zeptat co dela REPNE SCAS BYTE PTR ES:[EDI] Edit:Jeste jsem si vsiml radku 004024B7 CMP EDX, 361DECAJE SHORT CLINE95.004024E6 Pokud EDX je nase zadane cislo a porovnavame ho s danym cislem pricemz skok je na blok uspesne registrace tak se asi jedna o univerzalni klic, nebo se pletu? (v assembleru moc zkusenosti nemam) Link to comment Share on other sites More sharing options...
k3dT Posted January 27, 2006 Author Report Share Posted January 27, 2006 Tady je napoveda k instrukcim: http://server.reborn.cz/Asm.hlp Instrukce00402495 |. F2:AE REPNE SCAS BYTE PTR ES:[EDI]00402497 |. F7D1 NOT ECX00402499 |. 49 DEC ECXPocitaji pocet znaku v retezci na ktery ukazuje pointer z EDI. Pred tim nez se vykona, tak mame v EDI ukazatel na zadane jmeno (viz screenshot). Z napovedy instruci vis, ze REPNE znamena opakuj dokud se nerovna. SCAS ES- Scan String = prohledej retezec. Dal v popisu REPNE mas, ze CX [ECX] se snizuje pokazdy uspesny operaci. Pred provedenim instrukce mame v ECX -1 (0xFFFFFFFF) minus (delka jmena + ukoncovaci 0x00). Proto po vykonani intrukce bude v ECX -6 (0xFFFFFFFA) coz se zneguje (v ECX mame 5) a odecte se jednicka pomoci DEC ECX. Takhle "jednoduse" prekladace prekladaj funkci strlen Staci si zapamatovat posloupnost techto instrukci a vzdycky kdyz je uvidis budes vedet ze to pocita velikost retezce. CMP EDX, 361DECAJE SHORT CLINE95.004024E6 Sikovnej Presne jak rikas /no1 Cislo 0x361DECA (to je 56745674 desitkove) je univerzalni seriovy cislo fungujici s jakymkoliv jmenem. Jinak registrace se uklada do /Windows do souboru CLine95.ini tak pokud chcete program odregistrovat, staci tenhle soubor smazat. Link to comment Share on other sites More sharing options...
Retro Posted January 27, 2006 Report Share Posted January 27, 2006 Pocitaji pocet znaku v retezci na ktery ukazuje pointer z EDI. Pred tim nez se vykona, tak mame v EDI ukazatel na zadane jmeno (viz screenshot). Z napovedy instruci vis, ze REPNE znamena opakuj dokud se nerovna. SCAS ES- Scan String = prohledej retezec. Dal v popisu REPNE mas, ze CX [ECX] se snizuje pokazdy uspesny operaci. Pred provedenim instrukce mame v ECX -1 (0xFFFFFFFF) minus (delka jmena + ukoncovaci 0x00). Proto po vykonani intrukce bude v ECX -6 (0xFFFFFFFA) coz se zneguje (v ECX mame 5) a odecte se jednicka pomoci DEC ECX. Takhle "jednoduse" prekladace prekladaj funkci strlen Staci si zapamatovat posloupnost techto instrukci a vzdycky kdyz je uvidis budes vedet ze to pocita velikost retezce.17470[/snapback] Hmm, to je chytry, dik za vysvetlneni /thx Link to comment Share on other sites More sharing options...
Ertai Posted January 31, 2006 Report Share Posted January 31, 2006 Super thread, dufam ze budu aj dalsie lekcie, pracoval som v assembleri pod DOSom zopar rokov na celkom slusnej urovni trufam si povedat, a rad sa naucim triky vo win asm od profika, clovek nikdy nevie kedy sa mu to moze hodit Link to comment Share on other sites More sharing options...
k3dT Posted January 31, 2006 Author Report Share Posted January 31, 2006 Zkusim preskocit par lekci a sepsat neco na SMC nebo SEH + trocha matematiky/bruteforcu :] . To teprve o necem bude Link to comment Share on other sites More sharing options...
Sir Loon Posted January 31, 2006 Report Share Posted January 31, 2006 Zkusim preskocit par lekci a sepsat neco na SMC nebo SEH + trocha matematiky/bruteforcu :] . To teprve o necem bude 17803[/snapback]radeji nic nepreskakovat, nebo ztroskotame i na blbym push a pop Link to comment Share on other sites More sharing options...
Ertai Posted April 23, 2006 Report Share Posted April 23, 2006 Ehm ... kedy bude pokracovanie? Link to comment Share on other sites More sharing options...
k3dT Posted April 24, 2006 Author Report Share Posted April 24, 2006 Psat me nebavi / neni cas, to by nekdo musel neco nakousnout a nevedet si rady. Link to comment Share on other sites More sharing options...
Yenifer Posted April 25, 2006 Report Share Posted April 25, 2006 tak to vam zavidim, ja sem assembler nikdy nepochopil a to ho do me rvali i postupne 2 roky ve skole... tak sem to chtel zkusit a nejni tam ten http://server.reborn.cz/CLINE95.exe Link to comment Share on other sites More sharing options...
Ertai Posted April 26, 2006 Report Share Posted April 26, 2006 tak to vam zavidim, ja sem assembler nikdy nepochopil a to ho do me rvali i postupne 2 roky ve skole... tak sem to chtel zkusit a nejni tam ten http://server.reborn.cz/CLINE95.exe 27731[/snapback]Ten tam nebol ani ked som to skusal ja, ale predsa mame vsemocne google Link to comment Share on other sites More sharing options...
k3dT Posted April 26, 2006 Author Report Share Posted April 26, 2006 Ach.. to exe ma byt velkymi pismeny http://server.reborn.cz/CLINE95.EXE Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.