Información clara y científica sobre la sexualidad. Obra de Arthur Koestler publicada bajo el seudónimo de Drs. A. Costler, A. Willy y otros, en los años 30. Esta edición no tiene fecha, per…Descripción completa
Descripción completa
Información clara y científica sobre la sexualidad. Obra de Arthur Koestler publicada bajo el seudónimo de Drs. A. Costler, A. Willy y otros, en los años 30. Esta edición no tiene fecha, pero debe ...
Full description
Descripción completa
Descripción: Información clara y científica sobre la sexualidad. Obra de Arthur Koestler publicada bajo el seudónimo de Drs. A. Costler, A. Willy y otros, en los años 30. Esta edición no tiene fecha, pero debe ...
Descripción: Enciclopedia
Lenguaje de programación C++ estándar. Programación básica. Programación orientada a objetos. Clases. Operadores sobrecargados. Clases derivadas. Plantillas. Excepciones. Flujos de E/S. Estr…Full description
Descripción completa
Lenguaje de programación C++ estándar. Programación básica. Programación orientada a objetos. Clases. Operadores sobrecargados. Clases derivadas. Plantillas. Excepciones. Flujos de E/S. Estr…Descripción completa
Description complète
Lenguaje de programación C++ estándar. Programación básica. Programación orientada a objetos. Clases. Operadores sobrecargados. Clases derivadas. Plantillas. Excepciones. Flujos de E/S. Estr…Descrição completa
INDICE Il Reversing §Piccola introduzione sulla CPU e come funziona............................................ .............................................................6 .................6 §Sistemi §Sistemi di enumerazione !ecimale"#inario e esadecimale$...............................7 §Gli strumenti del reverser............................................ ................................................................... .............................................. ................................9 .........9
INDICE Il Reversing §Piccola introduzione sulla CPU e come funziona............................................ .............................................................6 .................6 §Sistemi §Sistemi di enumerazione !ecimale"#inario e esadecimale$...............................7 §Gli strumenti del reverser............................................ ................................................................... .............................................. ................................9 .........9
l reversing. Parola ricca $i misteroe se utiliata nella sua variante ?volgare@cracking$iventa un sogno agognato $a tutti. "isogna perA innanitutto $istinguere letica $ei reverser $a Buella $ei pirati. piratiruano vi$eogame o so;tCare e li $istriuiscono craccati per internet. reverser sono invece coloro che craccano i su$$etti so;tCare ma sena ;ine $i lucro. 8el mon$o $el reversing in;atti mai e poi mai imparerete a ?crakkare@ un vi$eogioco pren$en$o $a internet la ?crack@ e piaan$ola nella cartella $i gioco. uesto *1* reversing lamering. %uttora sono circon$ato $i gente che a;;erma $i essere cracker. Fantastico. Parliamo un po$immi che ne pensi $elle nuove proteioni che stanno pian piano intro$ucen$o le case $i so;tCareG ke!gen sono sempre pi inutilimeglio sra$icare la proteione se possiile piuttosto che carpirne lalgoritmo. Di;;icile runnare leseguiile protetto $a har$Care ;ingerprint su tutti i P& $opo averlo craccato. +a reaione ?tipo@ $i uno $i Buesti in$ivi$ui : “Di che cazzo parli?Cioè,ma hai visto che cavolata craccare san andreas? Cioè potevano anche sforzarsi di più...”
EggiIper ;ortuna che mettono i rea$me altrimenti non saresti neppure capace $i copiare leseguiile.K Essen$o Buesto il livello me$io $i un utente che si limita a scaricare eseguiili craccati $a altriho $eciso $i sten$ere Buesta gui$a. %uttora le autoritI non $istinguono il piratache si limita a scaricare le crack usate $a altrie il S8&E(O ;ine $i stu$io $el reverser. 5, me non ;rega un cao avere programmi a pagamento craccatitanto ci sono spessissimo i corrispon$enti open source. l reversing una ;orma $arte e se praticata con perseverana e sena ossessione puA $iventare un ottimo calmante per la mente. &omattiamo per Buesto i$eale. Purtroppo $evo avvertirvi che per inoltrarvi in Buesto mon$o necessario avere almeno $ei ru$imentali ;on$amenti anche su aspetti meno pratici $el reversing 5Buin$i mettete via Buegli schi;osi $eugger che state scal$an$osperan$o che si inii suito con un el crack commerciale. n;atti i ;on$amenti a cui mi ri;erisco sono Buelli $ella programmaione e $el ;unionamento $el vostro P&. 8onon limitatevi allapparena. 8on un har$ $isk $a cui si leggono i $atiuno schermo con cui leggere i $ocumenti e via $icen$o. Http://crevt.altervista.org http://ctrlaltcanccorp.altervista.org
Guida al Reversing
C.REV.T
Ctrl_alt_canc Corp.
+e noioni che seguiranno sono aastana complicate 5ma $a me esplicate nel mo$o pi semplice possiile. 3i premetto che Bueste in;ormaioni sono necessarie al reversersono laria che respiraaltrimentiin mancana $i Buesti ;on$amenti sarI soltanto un povero user che tenta $i seguire malamente un tutorial. n;atti la gui$a segue un or$inato meto$o $i appren$imentosu$$iviso in seioni logichecorre$ato $a almeno un esempio pratico per seione. 8on scoraggiatevi e stu$iateJ NB.: Se sei un lamer che legge questa guida per crakkare un videogame o un programma perchè sei furbo e non hai voglia di pagarlo,fa pure. Tanto non ci capirai un cazzo !
NBB.: "a guida è stata corretta e revisionata con attenzione da #redator $http:%%ne&enteam.net%' che con pazienza ha dato il supporto tecnico necessario ad una stesura semplice ed efficace del documento che vi accingete a leggere.
l vostro computer ha un centro ove vengono svolte tutte le operaioni. uesto la &P2 5&entral Process 2nit. &i sono molti tipi $i processori. n particolare noi ci occuperemo $i Buelli ntel. uesta ;aricuccia $i processori $ivenne incre$iilmente ;amosa negli anni 7* Buan$o incominciA a pro$urre microprocessori sempre pi veloci e sempre compatiili. &osa vuol $ire compatiiliG 3uol $ire che un programma che girava sul vecchissimo #*#6 gira pure su un pentium. uesto perch linterprete $ei coman$i inari rimasto lo stesso. l linguaggio con cui si programmava su Buelle macchine 5e sto parlan$o $el linguaggio alto cio il linguaggio ase su cui tutto poggia rimasto costante. ,l contrario varie altre case pro$uttive creavano processori ma che non comunicavano luno con laltro. ,nche se puA semrare il contrariola &P2 ;a eseguire solo una operaione alla volta. PerA ci sono $a $ire ) cose: 1 +a velocitI $i ;unionamento semra che le ;accia partire in contemporanea ) +a &P2 ha la possiilitI $i mettere in Stan$! unaione. uesto crea le;;etto $i simultaneitI. n pratica come un giocatore $i ping pong che corre intorno al tavolo per pren$ere la pallina sena ;arla ca$ere$ove il giocatore la &P2 e la pallina sono i processi. +a reale simultaneitI c Buan$o si usano $elle peri;eriche esterne. ui il $iscorso $iverso perch la &P2 $i occupa soltanto $i impostare la lettura $ella peri;erica in Buestione. Poi tutta la prelevaione $i in;ormaioni ;atta $alla D',. ui c la simultaneitI reale perch una volta impostata la lettura $ella peri;erica la &P2 si preoccupa $i altro.
o parto $al presupposto che voi sappiate giI contare in ase 1*J &osa vuol $ire contare in ase 1*G 3uol $ire Buello che avete sempre ;atto ogni volta che contavate. 1K1L) 6*M*L)* KL# 8aturalmentesi puA contare in molte altre asi )0 ecc. uelle che ci interessano a noi sono la ) e la 16. ueste vengono rispettivamente $ette inaria esace$imale. 8on sappiamo che i numeri nella ase $ecimale vanno $allo * al 9 per poi ripetersi con un 1 $avanti che poi $iventa un ) e cosN via. &io *1)067#91*111)101.... Si va $allo ero al nove per poi ripetersi nel 1* ;ino al 19. Poi il )* ;ino al )9 ecc. Supponiamo che ora io ;ermi i numeri non al 9 ma all#. Si avree una con$iione $el genere: *1)067#1*111)101116171#)*... Se Buin$i ora $evo sommare )K) ottengo sempre . 'a se sommassi K ottengo non 9 5perch non cJ ma ottengo 1*. Perch se sommo K $evo ottenere il numero $opo lotto che nel nostro caso il 1*. Se poi il al posto $i levare solo il nove e limino anche altri numeri potrei arrivare a$ averne solo pi ): lo * e l1. Se in;atti tolgo 9#760) mi rimangono solo i primi ). &osa vuol $ire BuestoG &he contan$o non posso superare l1. Se ;accio Buin$i 1K1 non ottengo ) ma ottengo 1*. PerchG Perch la seBuena saree: *11*111**1*111*1111***1**11*1*1*1111**11*l111*1111... &he in $ecimale vuol $ire: *1) 0 6 7 # 9 1* 11 1) 10 1 1... uin$i ora sappiamo che 1K1 uguale a 1*.
J
uesto meto$o $i numeraione molto utile se non esseniale per inoltrarsi nel reversing. 'a un altro meto$o ;orse ancora pi esseniale la ase esa$ecimale. uesta ase come $ice la parola stessa in 16. uin$i 1K1L) KL9 ma 1)KL))J Http://crevt.altervista.org http://ctrlaltcanccorp.altervista.org
Guida al Reversing
C.REV.T
Ctrl_alt_canc Corp.
&ome ;unionaG Semplice al posto che togliere numeri 5come per le asi prece$enti Bui si inseriscono nuovi numeri. uesti sono: 1)067#9,"&DEF1*111)101116171#191,1"1&1D1E1F)*... Ecco una como$a taella riassuntiva: Desimale
uesta piccola taellina vi mostra i valori numeri nelle tre asi che a noi interessano. Poi ci sono in;inite altre asi che perA non sono utiliate $al computer. 'a perch il computer usa le asi ) e 16G l computer come voi sapete lavora il linguaggio macchina. &iA vuol $ire che tutto ciA che voi ve$ete in veritI non cosN com ma uninsieme $i 1 e $i *. Per Buesta ragione Buan$o si vuole comunicare col computer in mo$o terra terra isogna livellarci al suo linguaggio. +ui in;atti non capisce assolutamente nullaegli 1 e gli ero Http://crevt.altervista.org http://ctrlaltcanccorp.altervista.org
Guida al Reversing
C.REV.T
Ctrl_alt_canc Corp.
corrispon$o al ;lusso $i corrente sui suoi transistor 51 e nessun ;lusso 5*. Per Buanto riguar$a la ase 16 Buesta perch allinterno $el computer i ;ile ;unionano e vengono trasmessi a piccoli pacchetti $i # unitI ciascuno 5# it Se noi moltiplichiamo # per ) otteniamo 16. Perch non usiamo # lo capiremo pi avanti. Per ;inire: M h signi;ica un numero esa$ecimale 16h M signi;ica un numero inario 1*1 M per i numeri $ecimali non si usa niente
Eccoci. 2n uon reverser sicuramente $eve essere $otato $i un minimo $i intelligena e perspicaciama una suite $i tool come Buelli che seguono puA sicuramente ;are como$o e areviare il lavoro $i tutti. 8": tool presenti sono solo un punto $i partena suggerito $al sottoscritto. 8O8 $etto che siano in assoluto i miglioricon lesperiena ognuno $i noi troverI il meto$o e il programma che pi si a$$ice al nostro mo$o $i proce$ere. %alvolta si $ovrI imparare anche a scriversi i programmi perch non sempre sono $isponiili nella rete. 5o pure ho creato una piccola serie $i utilit! che alla ;ine $ella gui$a vi presenterA. Se la vostra $oman$a : “ma cavolo! Farsi un programma? o non so programmare!”. Spiacente amicoma necessario sapere ene almeno un linguaggio $i programmaione. motivi sono ): a Per creare $ei ke!gen necessario saper programmare J Per capire la logica $i un programma $a reversareisogna entrare nella mente $el programmatore per capire cosa avrI pensato e come ci vuole ingannare. &ome minimo isogna saper programmare appunto. 8on importa Buale linguaggiotanto come $ico iosono tutti ;ratelli.
Primo $i tutti in assolutoil $eugger. !E&UGGER
&osa un $euggerGE un tool molto complessoche permette $i $isassemlare il co$ice $elleseguiile preso in analisi;ino a risalire al linguaggio asseml! che lo compone.5Per la trattaione completa $ellasseml! recarsi nellapposita seione. 8on solo BuestoensN permette $i seguire il ?movimento@ $i un eseguiile passoMpasso $euggan$olo appunto. Permette $i settare $ei punti $i stop 5reackpoint$i mo$i;icare le istruioni asseml! con Http://crevt.altervista.org http://ctrlaltcanccorp.altervista.org
Guida al Reversing
C.REV.T
Ctrl_alt_canc Corp.
altreimposte $a noimagari proprio per crakkarlo e ;ar ;unionare sena registraione il programma preso in esame. Permette $i visualiare la memoriai registri lo stack e un sacco $i altre cose interessanti 58on preoccuparsi se per ora molti $ei termini citati sono a voi sconosciutiavrete mo$o $i impararne il signi;icato proseguen$o nella lettura. 2n $eugger interessante;unionale e open source sicuramente Oll!Dg. +unica pecca che lavora a ring 0cio al livello $i permessi $i un normale programmae Buesto in alcuni casi puA $are prolemi. &omunBueecco oll!$g in tutto il suo splen$ore:
+a parte principale $ella ;inestra presenta il $isassemlato $el programma. 8ella arra in alto ci sono i coman$i per runnare il programma sotto $eug 5F9e steppare 5an$an$o passo passo per analiare il comportamento poco per volta 5F#. +a colonna $i $estra contiene i registri in tempo realela seione assa e lunga il $ump $ella memoriamentre lultima cella in asso a $estra lo stack. Oll! $avvero ;acile $a usare. Per settare un reackpoint su;;icente un $oppio click sulla istruionela Buale $iventerI rossa. Per mo$i;icare listruione su;;icente un $oppio click sulla parte centrale. Http://crevt.altervista.org http://ctrlaltcanccorp.altervista.org
Guida al Reversing
C.REV.T
Ctrl_alt_canc Corp.
Esseniale per luso $i oll! anche la comman$ lineper settare reackpoint al volo sena $overli ricercare allinterno $el co$ice $isassemlato. Pac'er detector
Davvero importante Buesto toolspecie Buan$o si ha a che ;are con il co$ice protetto $a un packer. n;atti un programma $i Buesto tipo permette in genere $i ottenere il nome $el packeril linguaggio con cui il stato programmato leseguiile e varie in;o generali sul ;ormato PE. 2no $ei pi interessanti packer $etector il mitico (Dpacker $etector.
PE %nal(zer
2n PE anal!er serve in generale per ottenere tutte le in;o sul PE $elleseguiile preso in esame. E utilissimo per ricostruire un eseguiile ;unionante per esempio $opo un $ump. 2no $ei migliori sicuramente +or$PEla cui ;unione ?(euil$ PE@ in assoluto unica al mon$o per ;unionalitI e capacitI.
Sinceramente lo trovo aastana inutile $ato che lhe> e$itor $i norma integrato nei $eugger e $ecompilatorituttavia talvolta como$o avere a $isposiione un tool a parte. Serve per analiare gli e>e a livello inario per cui en poco possiamo mo$i;icare sena aver prima analiato il programma $a craccare $entro un $eugger. 2no molto como$o e Opensource Frhe$:
,ltro esseniale strumento$isassemla in co$ice macchina un eseguiile.l migliore in assoluto;orse un po $i;;icoltoso $a usare per chi alle prime armi sicuramente D, Pro. &he permette $i ;are una miria$e $i cose. %ra le pi importanti ricor$iamo: struioni logiche sotto ;orma $i schema He> e$itor integrato relaionaile col $isassemlato 5e viceversa mport E>port Funioni (icerca stringhe $i testo Funiona anche $a $eugger e permette lalteraione $ei registri ?on the ;l!@ l programma monitora continuamente il ;lusso $elleseguiile 5$a notare la arra colorata in alto e permette $i esplorare call e ;unioni in maniera semplice e veloce. Eccolo:
(icostruisce le mport $opo un $ump. Permette anche il como$o uso $i plug in per areviare il lavoro $i ricostruione.
-b!ecompiler
8on molto utili i $ecompilatori$ato che non ;unionano realmente. %uttavia Buello per v6 $avvero molto utile specie per risalire alle ,P usate oppure al co$ice $iretto $i un tasto.
2n tool veramente in$ispensaile per risalire allOEP $el programma preso in esame.
8aturalmente Buesti sono solo consigliin realtI i tool li cercherete $a soli Buan$o ne avrete isogno.&iA non esclu$e che spesso vi troverete a scriverne $i personaliun po per s;iio un po per reale necessitI.
l ;ormato PE un ;ormato stan$ar$ utiliato $ai sistemi Cin$oCs per ?capire@ un ;ile $i tipo .e>e 5eseguiile .$ll 5lireria o .s!s 5$river.+a sigla ?portale@ soltanto un i$enti;icativo per ; ar capire che tutti i PE possono ;unionare su ogni piatta;orma Cin$oCs a 0) o 6 it. Dentro un PE sono $islocate molteplici in;ormaione per la sua corretta interpretaionetra cui le mport e E>port %alche sono lelenco $elle ,P utiliate nel programma e le relative ;unionile risorse 5liconalinter;accia gra;icama anche le stringhe $i testo e le %+S %ale. /EP-1EP
+EP 5Entr! Pointpunto $i ingresso $i un programmanon altro che il punto $i iniio $a cui partono tutte le routine $el programma$a cui Cin$oCs parte per ;ar ;unionare un eseguiile. Spesso un EP puA essere camu;;ato 5per esempio con un e>e packer o a$$irittura virtualiato 5come nel caso $i e>ecr!ptor. +OEP invece sta per Original Entr! Pointche un altra $enominaione per chiamare lEP nascosto...e$ il sogno $i tutti gli unpakker...: /P%C4ER - PR1TECT1R
E un so;tCare capace $i comprimere un eseguiile e proteggerlo 5si> mo$o $i $ire $agli okki $el reverser. ,lcuni packer sono molto semplici come 2PQ o ,SP pack i Buali comprimono leseguiile e al momento $ellunpack lo scomprimono in memoriae $a lN lo eseguonosena che il reverser 5se non con un $eug possa ve$erne il contenuto. ,ltri invece$enominati protectorperch proteggono il co$ice come %he'i$a utiliano un har$Care ;ingerprintun i$enti;icativo univoco $el P& a cui viene associata una sola ke! vali$a. ,rma$illo invece virtualia anche $elle parti $i co$ice per ren$ere ancora pi $i;;icile raggiungere lOEP. ,lcuni anche usano $elle avanate o asilari tecniche anti$eug. ,rma$illo apre $ei threa$ che rivelano la presena $i un $eugma esistono anche altre soluioni...la piu utiliata 5;orse neppure piu pero l,P sDeuggerPresent la Buale restituisce al prog un valore 1 se il processo sotto$eug e un valore * se non lo ...;acile capire come viene implementata Buest aproteionema altrettanto ;acile superarla e i$enti;icarla 53e$i il mio prog e i vari plugin $i oll!
l $ump$a non inten$ere come $ump esa$ecimale una operaione che si esegue spesso in amito $i reversingper esempio per lierare un so;tCare $a un packer.&onsiste nellestrarre una parte $el co$ice inario 5generalmente appena scompresso in memoria nel caso $ei packer e ren$erlo eseguiile $irettamente $a Buel puntocome un e>e a se stante.Spesso i $ump non ;unionano al primo colpopoich o la imagesie $elle>e corrottao le mport sono state ?$istrutte@o per altri motivi.Per Buesto i $ump vanno sempre ricostruitia;;inch lOS possa compren$erli. /Su#s(stem
n$ica il tipo $i applicaione con la Buale si ha a che ;are 5tutti i packer $etector e PE anal!er ne portano traccia.Per esempiio un applicaione puA essere una +irar! 5un Dll una applicaione 2 5con inter;accia gra;ica o Rin0) console 5in cui non presente la 2la riga $i coman$o per inten$erci. /&reac'Point
E un punto $i interruione che viene settato $entro un $eugger per analiare una $eterminata routine o chiamata alle ,P 5ve$i seione ,P. n genere per settare reackpoint su;;icente ;are un $oppio click nella linea laterale a sinistra $el $isassemlatooppure 5$entro oll!$g su;;iciente $otarsi $ella comman$line $i Oll!Dg e ;ar prece$ere al nome $ell,P la sigla p> 5ve$i seione ,P. /2andle
E un valore univoco che viene attriuito a$ ognina $elle ;inestre che aiamo aperte nel P&.Spesso viene usato $ai programmi anti reverser per in$ivi$uare un $eugger o simili. /Tr+ead
2n %rhea$ un processo ;iglio $i un processo pi gran$e.l trehea$ ha un i$enti;icativo univoco e una creation ;lagche corrispon$e al tipo $i trhea$. Per esempiopuA esserci un trehea$ con creation ;lag &(E,%ES2SPE8DED che crea trhea$ a$$ormentatie possono essere chiusi solo $a appositi coman$i. ,nche i trhea$ sono $ei $iversivi che possono essere utiliati per proteggere un eseguiileper esempio E>ecr!ptoro lo stesso Pirupiru crack me $i pre$ator che trovate nella seione crack'E.
/Crac'5e
2n crack'E la palestra $ei reverser. Si esercitano su Buesti programmiMprova per evitare i Http://crevt.altervista.org http://ctrlaltcanccorp.altervista.org
Guida al Reversing
C.REV.T
Ctrl_alt_canc Corp.
compiere illegalitI su programmi commerciali. Esistono vari tipi $i crack me: Patch &onsiste nel mo$i;icare una parte $i asseml! utile per ren$ere utiliaile un programma sena proteioni $i sorta. Te!gen Preve$ono in genere proteioni tramite passCor$e richie$ono la scoperta $ellalgoritmo che genera la chiave e la eventuale scrittura $i un Te!en 2npack Preve$ono luso $i un packer 5noto o scritto $al creatore $el crackme per proteggere leseguiile $a un reverse. +o scopo Buello $i ottenere un Dump ;unionante Enale eneralmente hanno alcuni pulsanti o controlli $isailitati $a ren$ere attivi $e;initivamente. 2na trattaione completa $elle varie proteioni la troverete $urante la lettura $i Buesta gui$a.
/)o Stac'
+o stack e unarea $i memoria $ove possono essere salvati momentaneamente 5perch memoria temporanea i registri $ella &P2. uesta operaione $i salvataggio puA essere ;atta o attraverso listruione P2SH o attraverso listruione &,++. l primo meto$o voluto $irettamente laltro in$irettamente. li stessi $ati vengono ripresi sia $irettamente attraverso istruioni POP che in$irettamente 5relativamente al registro P o alla coppia &S:P attraverso istruioni (E%8 o (E%F 5(E%urn 8ear o (E%urn Far. +o Stack puo trovarsi sia nello stesso segmento $el programma 5come nel caso $ei ;iles .&O' che in un altro segmento 5;iles .EQEU in ogni caso i $ati nello stack vengono puntati $alla coppia $i registri SS:SP e i $ati vengono inseriti $all,+%O verso il ",SSO cioe con valori $i SP sempre $ecrescenti via via che si inseriscono nuovi $ati nello stack. Spessissimo nel reversing lo stack viene utiliato per prelevare in;ormaioni utili circa serialirisultati $i routine e altro. (icor$iamo che possiamo esplorare lo stack $irettamente $a Oll!Dg 5ve$i seione: %ool $el reverser.
/ (egistri
er "uanto riguarda la #ase $%, "uesta è perchè all&interno del computer, i
file funzionano e vengono trasmessi a piccoli pacchetti di ' unit( ciascuno )' #it* +e noi moltiplichiamo ' per otteniamo $%. erchè non usiamo ' lo capiremo più avanti. 5(icor$ateG Ecco la spiegaione
uesti it vanno in ase # e sono Buelle cose che contengono concretamente tutto ciA che il computer ha e visualia. uesti it ;unionano graie a $ei registri che sono i contenutori $ei numeri inari. uesti sono tanti e sono continuamente mo$i;icati $all8%E+ ma sta $i ;atto che sono compatiili lun laltro tra i vari computer. registri possono contenere un numero inario che va $a ******** a 11111111 che in parole povere vuol $ire $a * a ). ,iamo Buin$i $etto: i it trasportano le in;ormaioni. +e in;ormaioni sono in inario e Buesti numeri sono contenuti nei registri $ei vari it. 8on $evete perA pensare che in ogni it ci siano $ei registriJ E il contrarioJ n ogni registro ci sono # it. 'a $ato che non possiamo slegarli lun laltro non preoccupativi $i sapere essattamente la struttura architettonica $i un microprocesM sore. Ogni registro ha una struttura simile. Ecco uno schema:
Registri a 8 bit Registri a 16 bit Registri a 32 bit
,H ,+ ,Q E,Q
"H "+ "Q E"Q
&H &+ &Q E&Q
Dovete allincirca impararvelo a memoriaJ &osa sono i registri a 16 itG 8ulla sono $ue registri presi assieme. Dato che si usa spesso e volentieri pren$erli a coppie e consi$erarli uno solo si conta anche a 16. uesti comunBue sono i registri ase. Poi esistono altri tipi $i registri nati successivamente allo #*## e per Buesta ragione sono $etti speciali: M(egistri speciali a 16 it: P "P S D SP
5struction Pointer ovvero puntatore alle istruioni. 5"ase Pointer ovvero puntatore alla ase $i $ati. 5Source n$e> ovvero n$ice Sorgente $i $ati. 5Destination n$e> ovvero n$ice Destinaione $i $ati. 5Stack Pointer ovvero puntatore allo stack.
Punta al segmento $ove si trovano le istruioni Punta al segmento $ei $ati Punta al segmento $ati 5e>tra Punta al segmento $i stack
2n meto$o pratico per visualiare il contenuto $ei registri $i aprire il prompt $ei coman$i e $igitare $eugpoi premere r e invio
/ "0 )1)(0
Ogni singolo ;ile ogni singola esecuione $i programma tutto Buanto richie$e memoria nel vostro computer. %utto memoria. 8oi sappiamo per a$esso che la memoria ;ormata $a it. Se noi raccogliamo a gruppi $i # i it otteniamo un !te. !te sono $ei pacchetti $i memoria che non contengono altro che * e 1 in seBuena. ,nche i !te ovviamente sono $ei registri. uesti in particolare sono:
n$iria la 'emoria $ove risie$ono i programmi n$iria la 'emoria $ove risie$e lo stack n$iria la 'emoria $ove risie$ono i $ati n$iria la 'emoria $ove risie$ono i $ati
, partire $al 0#6 esistono altri $ue registri $i segmento FS e S che possono essere utiliati per in$iriare la memoria Dati. n ultima analisi Buin$i sia un programma che BualunBue tipo $i $ato memoriato sotto ;orma $i singoli it 5stato * o 1 e in$iriaili a gruppi $i # 5un "!te per volta o a gruppi $i pi "!tes secon$o il seguente stan$ar$: 1 "!te 1 Ror$ 5pari a ) "!tes 1 DouleRor$ 5pari a "!tes 1 ua$Ror$ 5pari a # "!tes 1 %en"!te 5pari a 1* "!tes ueste sono ragguppaioni stantar$.
/ (0) * ()
l vostro computer ha $ella memoria. uesta su$$ivisa in ) parti per $istinte la (,' e la (O'. +a (,' 5(an$om ,ccess 'emor! o meglio memoria $i accesso casuale Buella memoria che viene utiliata $al computer per ricor$are ;ile momentanei o per ;ar partire $ei programmi. uesta memoria temporanea nel senso che se spegnete il computer Buella memoria si cancella automaticamente e per$ete tutto. Poi c la memoria (O' 5(ea$ Onl! 'emor! o 'emoria $i sola lettura. uesta Buella permanente. uella ove stanno i vostri ;ile salvati come i vostri programmi come tutto Buello che avete ogni volta che ravviate il computer. Http://crevt.altervista.org http://ctrlaltcanccorp.altervista.org
Guida al Reversing
C.REV.T
Ctrl_alt_canc Corp.
8ella (O' c il "OS. l "OS 5"asic nputMOutput S!stem un ?programma@ che ha il compito $ellaccensione $el computer. 3eri;ica i $ispositivi presenti esegui il POS% 5PoCer on Sel; %est e in;ine carica il sistema operativo $an$o liero s;on;o alla '(". +a '(" una parte $ella memoria ove sono inseriti i ;ile 5Buasi inaccessiile che permettono laccensione $el vostro sistema operativo. Dopo aver tatto tutto ciA il "OS lascia tutto il controllo $ella macchina al vostro sistema operativo. 'a il "OS continuerI sempre a$ essere presente e o;;re una serie $i servii a cui ;anno spesso ri;erimento gli stessi sistemi operativi. %ra i tanti Buelli che ci interessano a noi ci sono gli nterrupt. &ome tutta la memoria la (,' e la (O' sono nientaltro che insieme $i !tes. uesti saranno ;ormati come tutti $a * e $a 1. ui c tutto il ;unionamento $ella macchina. Ogni singolo "!te $ella (,' 5e $ella (O' ha un 8D(VVO 28&O e a Buesto in$irio si ;a ri;erimento per prelevare o memoriare i $ati o i programmi. li in$irii $ella (,' 5e $ella (O' sono puntati $a registri speci;ici $el 'icroprocessore. Per Buanto riguar$a gli in$irii $ei programmi si usa normalmente la coppia $i registri &S:P. Per Buanto riguar$a luso $ei ;ile $i $ati si usano i registri $i segmento 5DS M ES M FS e S in accoppiata con i registri5"Q M "P M S M D in $iverse cominaioni. uin$i per lesecuione o lapertura $i un programma ci sono i &S:P mentre per gli altri cio i ;ile che contengono $ati 5cio tutti Buelli che non sono programmi ci sono i registri $i segnmento 5DS M ES M FS e S $a utiliarsi con i registri 5"Q M "P M S M D in $iverse cominaioni. Poi c lo S%,&T 5ve$i paragra;o stac- &on gli ultimi microprocessori si cercato $i separare e $i proteggere accuratamente larea $estinata ai $ati e Buella $estinata ai programmi. E perA possiile mo$i;icare attraverso un programma in assemler la $estinaione ;isica $el programma. uesto ciA che realmente ;anno molti virus creati in assemler. Si collocano nella ona $ati ren$en$osi Buasi $el tutto invisiili agli antivirus. Per Buanto concerne la memoria (,' Buesta gestita $al sistema operativo che la ce$e a$ un programma piuttosto che a$ un altro.
/Signature
+a $iretta tra$uione $allinglese $ella parola ?signature@ ?Firma@. %utti i so;tCare $i proteione $egli eseguiilima anche i virus e Bualsiasi programma in;ormatico $istriuito su larga scalacontiene al suo interno un ?pattern@ $i !te che lo ren$e $istinguiile. packer soprattutto sono ;amosi per Buesta caratteristicaeuna volta riconosciuti poi ;acile Http://crevt.altervista.org http://ctrlaltcanccorp.altervista.org
Guida al Reversing
C.REV.T
Ctrl_alt_canc Corp.
a$$ottare le contromisure. mo$erni packer $etector 5pure il mio attuano $elle scansioni $ei !te $elleseguiile $a analiare con;rontan$o simultaneamente alcuni pattern ;amosi presenti in un $ataase. Ecco un esempio $i $ataase $i ?;irme@ $ei vari packer. 5tratto $al mio packer $etector <1= Packer8ame L ,Patch 2 1.> Signature L )01&*E#FFFFFFFF&7E#0EE*F*,*******9E9*1******&*F&)9D1#D0&*6*1#*F)1 ***,9GGGGGG07*F#D6******0DGGGGGGGG771#0GGGGGGGG*F#6)*1****00*77""**)*****#0 E9*7D6F,1,7)****#"1"))****,0"))*****1D**0*"9)****#91"9)****E#1) ******F7F1#91,7)****E9*1 <)= Packer8ame L 2PQ 1.90 M W up>.source;orge.net Signature L 6*"EGGG*G**#D"EGGGGFGFF <0= Packer8ame L ,(' Protector *.1 MW S'oTE Signature L E#*******#06*E"*&DE"*E"*"#E"F9**&0E#********DE"*1**#1EDE1F*** E"*)#0*9#D"EF1F***E"*)#0*9",,011****E"*1**#D#D9)01***#"*9E#1******#0E "*1**#"FEE#********##0&**7*&0**E"*#**&0#,*66E"*1**D*E#1******#0E "*1**),&)E#********"#0&0*70&0**
/"2importanza del linguaggio
Spesso 5ma non sempre il linguaggio usato il &KK 5per i programmi commerciali. +e $i;;erene tra i linguaggiin amito $i reversing sono importantissime. Sapere con Buale linguaggio stato pro$otto un eseguiile necessario per sapere come operare. Per esempio$oiamo sapere che il &KKlasm e il $elphi utiliano le chiamate alle Cin0) ,P. 5ve$i paragra;o ?Concetti di #ase sulle e i /reac-point @ ueste sono piuttosto comunie ;acili $a trovaresapen$o che un 'sg"o>, sempre una messageo> e via $icen$o. Http://crevt.altervista.org http://ctrlaltcanccorp.altervista.org
Guida al Reversing
C.REV.T
Ctrl_alt_canc Corp.
&aso a parte il 3isual "asic che essen$o un linguaggio interpretato e non compilato non ;a $irettamente uso $elle api se non su esplicita richiesta 53e$i paragra;o 3isual "asic. Ecco Buin$i che un reackpoint su un 'sg"o>, saree inutilee ci ;aree cre$ere che non si siano messageo>. O a$$irittura in amito $i unpackingconoscere il linguaggio $i programmaione necessario er ricostruire un EP 5ve$i seione “concetti #ase sul reversing” corrotto n genere i packer $etector risalgono anche al linguaggio $i programaionema io ho creato uno strumento apposito che compie eccellentemente il suo $overe 5,nche i linguaggi $i programmaione hanno $elle signatureJ. Per maggiori in;o ve$ere la seione ;inale $ella gui$a sui miei tools. E necessario conoscere almeno a occhio un EP $a un co$ice normaleBuesto perch tutti gli EP hanno caratteristiche simili. Ecco una taella riassuntiva $a studiare:
Linguaggio
Entry Point
Descrizione
3"/6
+EP prece$uto $a tutte le ;unioni $el programma 5es: 'S3"3'6*.E3E8%S8 T,$$(e; e$ seguito $a una call alla %hun(%'ain.
&KK
niia SE'P(E con un Push E"P e prosegue pressoch uguale alla ;igura Bui a sinistra.
Delphi
+eggermente simile al &KKma non prece$uto $a tutti Buei XmpensN $a co$ice inutile.
%ipicamente non prece$uto $a nullae iniia con un Qor.
Ecco a voi un elenco $i ,P utili. Per prima cosacosa un ,P e a cosa ci serve saperlo...Dice Cikipe$ia: %PI lacronimo $i A pplication P rogram)ming* I nterface 5 nterfaccia di rogrammazione di un&pplicazione in$ica ogni insieme $i proce$ure $isponiili al programmatore $i solito raggruppate a ;ormare un set $i strumenti speci;ici per un $eterminato compito. Y un meto$o per ottenere un astraione $i solito tra lhar$Care e il programmatore o tra so;tCare a asso e$ alto livello. +e ,P permettono $i evitare ai programmatori $i scrivere tutte le ;unioni $al nulla. +e ,P stesse sono unastraione: il soft0are che ;ornisce una certa ,P $etto implementazione dell& . Ottimooratutti i programmi che an$remo a$ analiare 5tranne Buelli in 3"6 e .8E% ma poi ve$remo anche per Buelli utiliano le ,P per ;are Bualcosauesto Bualcosa per essere utile a noi reverserviene inteso come Prelevo il seriale inserito e lo leggo oppure scrivo nel registro le in;ormaioni $i registraione. Per cercare le ,P Bui sotto elencate 5&he non sono tutte JJ 'a solo Buelle pi ricorrenti su;;iciente $otarsi $ella comman$line $i Oll!Dg e ;ar prece$ere al nome $ell,P la sigla p>..circa cosN: #p1 2essage/o1
Da ricor$are che i nomi $elle ,P sono case sensitiveJJ 5maiuscolo e minuscolo contano ntercettarle e settare su $i loro un reackpoint utile per trovare parti esseniali $el $isassemlato sena impaire a stu$iarlo tutto. Messaggi
'essage"o>, Semplicemente invia una messageo> allutente 5tipicamente in$ica linserimento $i un seriale erratoo corretto Sen$'essage, uesto meto$o non ;a altro che inviare un messaggio opportunamente co$i;icato a$ una ;inestra Http://crevt.altervista.org http://ctrlaltcanccorp.altervista.org
Guida al Reversing
C.REV.T
Ctrl_alt_canc Corp.
speci;ica. 5R'&+OSE et similia Finestre
etRin$oC%e>t, - etDlgtem%e>t, Entrame utiliate Buan$o si ha a che ;are con una $ialogo> che richie$e serial e namein $ue aree $i testo. &reateRin$oCE>, - ShoCRin$oC ,prono una nuova ;inestra $i $ialogo i $ialogo File
(ea$File %ipicamente utiliato per leggere $a un ;ilespecie se il ;ile ocntiene in;o sulla registraione $el programma.Prestare attenione che ci sono moltissimi casi in cui un prog acce$e a $ei ;ilee non ;arsi trarre in inganno. RriteFile &ome sopraserve per scrivere su un ;ile &reateFile, Serve per generare un ;ile etPrivatePro;ileString, Serve per leggere una riga $a un ;ile .ini 5Buelli $i con;iguraione Registro
(eguer!3alueE>, &erca un valore nel registro (egOpenTe!, +o carica nel programma per usarlo 5nel sensolegge il contenuto e lo tras;orma in variaile o stringa Orari
et+ocal%imer Esseniale in$ivi$uarla nei trial a tempo 5tipo0* giorni serve per restituire al programma lorario $i sistema. Drie
etDrive%!pe, n$ispensaile Buan$o si ha a che ;are con giochi che chie$ono il &D originaleserve in;atti a $eterminare Buale $elle unitI sia a$ esempio un lettore &D. !i"er
Set%imer %ipicamente usato per iniialiare levento timerspecie per Buei $emo in limitaione a minuti. et%ick&ount Serve per pren$ere appunto un tickun passaggio $i un minuto o $i un secon$o $i un timersempre utile $a in$ivi$uare nei prog con limitaione a minuti.
+assemler stato concepito come linguaggio a asso livello per ;acilitare leggermente il compito ai programmatori$ato che il co$ice macchina non umanamente comprensiile. +asseml! aastana complicato come linguaggiononostante non aia numerose parole chiave. +a $i;;icoltI $el linguaggio risie$e tutta nelluso oligatorio $ei registri $ello stack e $i tutte le memorie $el computer. 8aturalmente un uso improprio $i istruioni rischioso e puA portare al crash $i sistema compilan$o erroneamente un programma. %uttaviaper proce$ere sulla nostra stra$a $el reversing avere Bualche piccola conoscena $i istruioni asseml! non puA ;are che ene$ato che $a Bui in avanti ci troveremo $avanti soltanto a Buesto. &onclu$o Buesta piccola intro$uione ;acen$ovi notare che un compilatore asm lo avete sempre avuto nel vostro P&. Si chiama Deug.e>e e si puA richiamare $irettamente $al prompt $ei coman$i. MO#
E unistruione le cui ;unioni sono ;on$amentali nel cracking. Di;atti molte volte vi ritroverete a $over magari muovere un valore giusto in una locaione semplicemente camian$o un &'P in un 'O3 5poi vi spiego....non temete. +a sua sintassi : 'O3 <$estination=
Http://crevt.altervista.org http://ctrlaltcanccorp.altervista.org
Guida al Reversing
C.REV.T
Ctrl_alt_canc Corp.
$MP
Semplicemente con;ronta $ue valori in memoria siano essi registri oppure !tes camian$o $i conseguena il ;lag relativo. +a sintassi secon$o i casi puA essere: &'P E,Q*1 con;ronta ,Q con *1 &'P E,QE"Q con;ronta ,Q con "Q &'P E,Q<**= con;ronta ,Q con i ) !tes a DS:** uesta ;unione ;uniona come una sottraione sourceM$estinationcio:ponen$o ,QL)* e "QL)1 il risultato $el &'P E,QE"Q sarI )*M)1LM1. l risultato $i Buesta sottraione attiverI il ;lag &,((Z 5& attivato Buan$o si sottrae un valore pi gran$e $a uno pi piccoloU se invece la sottraione non $I risultato negativo il ;lag rimane * 5$isattivato.Dal punto $i vista $el reversing le istruioni &'P sono usate SE'P(E per veri;icare il vostro input oppure per ;ar sapere al programma se registrato o meno.
%MP
+o troverete SE'P(E $opo il &'P nelle varie ;orme.+a pi semplice e ovvia la ;orma 4'P [in$irio W che naturalmente provoca un salto allin$irio $esi$erato Buali che siano i valori $ei ;lags $ati $al &'P. Per Buanto riguar$a lin$irio Buesto puA essere nello stesso &S 54'P *,F oppure in unaltro 54'P
(ichiama una suroutine e $opo lesecuione $i Buesta torna allin$irio successivo alla &,++ stessa 5tramite un (E%/(E%F.Esempio: Programma... Programma... C%)) 6%&
RET
esegue la suroutine a &S:6#," &o$ice suroutine... &o$ice suroutine...
torna allistruione successiva a &,++ 6#,"
Programma... Programma... 2na call puA essere anche nel ;ormato &,++ F,( 5come anche il 4'Pcio viene eseguita una suroutine a$ unin$irio in un altro &S. 8ei vostri primi approcci $i cracking se avete la ;ortuna $i trovare la &,++ che salta $irettamente alla proteione potete enissimo togliere Buella. Pi in lI sarI meglio che impariate a $istricarvi con i Xump e i$enti;ican$o e mo$i;ican$o Buelli relativi al solo controllo $ella proteione. Di;atti se per caso Buella &,++ chiamasse una suroutine che contiene la proteione ma anche istruioni necessarie al uon ;unionamento $el programma eliminan$ola avrete prolemi.
Per esempio D, Pro. uan$o trova una &all permette con un $oppio click $i giungere allin$irio chiamatomentre scorren$o col mouse sopra la call esplorarne il contenuto:
I&!
&hiama un interrupt 5tipo una &,++ ma non relativa al programma con una speci;ica ;unione assegnata $a un valore $i solito mosso in ,Q. E utile a$ esempio monitorare linterrupt 10 con il $eugger 5nel caso sivoglia sproteggere un programma che acce$e al &D oppure linterrupt 16 con ;unione 1* 5,QL1* nel caso il programma atten$a la pressione $i un tasto.
&OP
8opeBuivalente a *>9*. 8op signi;ica ?8o Operation@nessuna operaione. +a &pu salta Buellistruione ;inch non ne trova una operativa +o useremo spessissimo in amito $i reversing$ato che talvolta alcune istruioni sono intutili 5le routine $i controllo per esempio e non poten$o cancellare le parti $i assemlerlunica altra maniera lutilio $ella su$$etta istruione.
Sempre pi spesso le so;tCare house hanno $eciso $i implementare nei loro programmi $ei meccanismi $i proteione sempre pi evolutial ;ine $i scoraggiare eventuali reverser. uesto un elenco con relativi esempi pratici e spiegaione $ei principali meccanismi che ci troveremo a$ a;;rontare. *&7 Essendo 8uesta la sezione pratica della guida 9 #ene c+e sappiate almeno come si salva un programma patc+ato dentro 1ll( "cosa per nulla intuitiva. Una volta fatte tutte le modific+e necessarie"premere col tasto destro su una riga di disassem#lato"e premere7
*ella nuova finestra c+e appare"premere di nuovo tasto destro
e selezionare save file. !alla finestra di salvataggio dare un nome e ricordarsi di immettere manualmente l:estensione .e3e se no salva in formato testo$
/ serial
2na $elle pi comuni proteioni $i programmispecie se a tempo limitatocomo$i perch vengono calcolati 5in generema non sempre $al programma stessosulla ase $i un nome utente. n;atti i serial vengono generati $a un algoritmo interno 5$a stu$iare e compren$ere per reversarlo che solo la so;tCare house conoscee $opo una registraione con pagamentorilascia un serial vali$o per lusername ;ornito. Esempio pratico n. ;7
Crac-2e utilizzato3 2n crack me creato $a melo trovate nello ip allegato a Buesta gui$a.
<&'1M
Serial= 4ools necessari3 Oll!Dg con il plug in $ella comman$ ar.
2n locco note. ,priamo il crackme e analiiamolo. Solo ) te>to> $i inputuna richie$e un D numericolaltra il seriale corrispon$ente. Http://crevt.altervista.org http://ctrlaltcanccorp.altervista.org
Guida al Reversing
C.REV.T
Ctrl_alt_canc Corp.
Se sagliamo serialeun messageo> $i errore ci ammonisce. ,priamo oll!$g e carichiamo il programma $a crakkare. Suito settiamo $ei reackpoint sulle messageo>per arrivare a $el co$ice utile ,priamo la comman$ line 5plug in MW comman$ line e $igitiamo 5P(E&S,'E8%E p> rtc'sg"o> Premiamo nvio. Ecco che appariranno tutti i reackpoint evi$eniati in rosso. 8ello speci;ico ): la messageo> $i errore e Buella $i successo:
Se clicchiamo sul primo e risaliamo leggermente il co$iceecco che ci troviamo a$ un punto interessante:
uesto co$ice aggiunge al primo argomento 5lDricor$iamoG tre eri. Premiamo F) e $iventerI una riga rossa. Premiamo F9 e avremo il programma in run. Portatelo in primo piano5 ri$otto a icona e inserite come D: 1)0 e come serial 1)0.
Premete il tasto &ontrolla e$ ecco che Oll! si ;erma proprio sulla riga con i tre eri. Premen$o F# steppiamo un passo per volta...,rrivati allistruione va3ar&at 5) righe sotto se osserviamo lo stack 5ricor$iamo con oll! $ove si trovaGn asso a $estra in Buel momentoecco che appaiono 0 argomenti 5che sono 0 variaili +D inseritoil serialee la stringa che la routine sta costruen$o:
Ottimo.Suito sotto a Buel co$ice troviamo:
n$ovinate a cosa serveG Esatto Div sta per ?Divi$ere@. 5notiamo che nello stack ci sono ancora i 0 argomenti. Per che numeroGEheh . Sta scritto nella prima riga. 5/3 il 6 è in esadecimale,ma ricordiamo che 6 in he1 e in dec è identico. +e fosse stato per esempio avremmo trovato la dicitura $%. )ripassate la sezione dei sistemi di numerazione*.
EheBuesti invece servono per sottrarre e moltiplicare. (ispettivamente per sottrarre alla $ivisione avuta in prece$ena e moltiplicare per 0. "ene...con Bueste in;o possiamo creare un ke!genJ Proce$iamo per passi.ntanto veri;ichiamo che ;unioni. nseriamo come D: 1)0 e come seriale: 51)0*** M 5 1)0*** / \ 0 L <=;>>
Sono gli eri aggiunti $alla routinericor$ateG Se proviamoavremo un messaggio $i con;erma
J
Ora proviamo a portare Buesta piccola espressione in un linguaggio $i scripting ;acile e ;unionante: Http://crevt.altervista.org http://ctrlaltcanccorp.altervista.org
Guida al Reversing
C.REV.T
Ctrl_alt_canc Corp.
visual asic script 5vs ,prite il locco note e metteteci Buesto: chie$e il nome utente per generare il seriale a L inputo>58umero utente aggiunge i tre ?*@ alla ;ine $ellD c L a - *** crea lespressionee la mette nella variaile $ $ove c la variaile vista prima 5a - *** $ L 5c M 5c / \ 0 mostra il risultato 5ossia la variaile $ riempita col numero seriale uso una imputo> perch il risultato pi ;acile $a copiare che in una messageo> inputo>seriale@(isultato@$ Salvate il ;ile con estensione .vs e ;ate un $oppio click sopra. Ecco che genererI seriali per ogni D inseritoJ
+e proteioni $ei programmi commerciali sono spesso in Buesta otticaanche se magari le routine sono leggermente pi complicate.
/ Nag
&osa sono i nagG Semplicesono $elle ;inestre che $anno ;asti$io. Per esempio Buelle che limitano alcune ;unioni $el programma )vedi Crac-ing programmi commerciali, paragrafo Dama delu1* o che avvertono che il programma $a registrare e hanno un conto alla rovescia $i un minutoe via $icen$o. Esempio pratico n. <7
Crac-2e utilizzato3 2n crack me creato $a melo trovate nello ip allegato a Buesta gui$a.
8ag= uesto crackme riunisce in s] le peggiori caratteristiche $ei nag. M,ppaiono a sproposito M8on si possono chiu$ere se non $opo un certo tempo. MSono en ) nag: un messageo> e una ;inestra. Http://crevt.altervista.org http://ctrlaltcanccorp.altervista.org
<&')M
Guida al Reversing
C.REV.T
Ctrl_alt_canc Corp.
8oi avremo ) oiettivi: Eliminare il nag a messageo> e ailitare il ottone $el conto alla rovescia ;erman$olo. 5Buesto perch a volte la ;inestra in cui appare il nag contiene anche impostaioni o cose utili che non sempre va ene eliminare. 4ools3
Oll!$g con comman$line.
Per prima cosa analiiamo il programma. ,pren$olo appare un messageo>e $opo pochi secon$i si apre una ;inestra $i con;iguraione non chiu$iile con un conto alla rovesciaal termine $el Buale si possono salvare le impostaioni 5%ipica limitaione. &ome proce$iamoG M8oppiamo il messageo> MFermiamo il conto alla rovescia $el tasto M,ilitiamo il tasto a essere clikkato ,priamo il programa $entro oll!$ge come nellesempio prece$entesettiamo un reackpoint sulle messageo>. 8e apparirI solo una$oppio click e ve$iamo cosa appare:
Ottimo. (icor$ate Buel $iscorso iniiale sulle istruioni $ella &P2 eccG Ecco che arriva la nostra prima istruione pratica: 8opeBuivalente a *>9*. 8op signi;ica ?8o Operation@nessuna operaione. +a &pu salta Buellistruione ;inch non ne trova una operativa. Ecco come proce$ere $unBue. Se sostituiamo alla messageo> un 8OP la &P2 cre$e che non ci sia nullae$ ecco che aiamo eliminato il nag J Doppio click sulla istruione e si apre una ;inestra $i mo$i;ica. Da licancellare tutta listruione 5&,++ DRO(D P%( DS:<*1*)= e sostituirla con ?8OP@:
uin$i premere su assemle. Premiamo F9e il programma 5prima rekka sul vecchio reackpoint msgo>saltiamolo premen$o ancora F9 partirI sena mostrare nag J
Ora la parte pi ?$i;;icile@. Proce$iamo ;erman$o il timer $i Buel pulsante.5Buello $el ;orm che si apre con le impostaioni. %uttaviaper non $isper$erci con inutili tentativive$iamo cosa succe$e Buan$o il conto alla rovescia sca$e...8ulla il tasto $iventa ailitato e assume come testo ?salva@. Ottimo punto $i partena. ,n$iamo in oll! e premiamo tasto $estro Search ;or ,ll re;erence te>t strings Fatto ciAcerchiamo la $icitura ?salva@ e ;acciamo $oppio click. Ecco $ove ci troveremo:
Particolarmente interessante la riga scritta in grigio chiaro 4E Short...(icor$ateG )sezione istruzioni assem#l7 utili* E un salto con$iionale. Proailmente Buello che $etermina che se il timer arriva a * allora il tasto si puA premere. &amiamolo nel suo opposto come aiamo ;atto primaossia $oppio click sulla istruione e sostituiamo
Premiamo assemlee$ ecco che il programma ;uniona semra pi nagJ
/Trial e scadenze
Ecco una $elle proteioni pi usate in assoluto. +a sca$ena 5tipicamente $i 0* giorni o la limitaione a minuti. Esempio pratico n. ?7
Crac-2e utilizzato3 2n crack me creato $a melo trovate nello ip allegato a Buesta gui$a.
<&'0M
%rial= l crack preve$e solo una limitaione $i ) minuti 5invece $ei 0* giornisca$uti i Buali appare un nag che ci avverte $ella chiusura $el programma. %ralasciamo $irettamente la superata proteione $i con;rontare la $ata con una preimpostataperch troppo semplice $a elu$ere e totalmente inattuale. 4ool3 Oll!Dg con plug in $ella comman$ line
"eneper prima cosa apriamo il nostro eseguiile $entro Oll!Dge cerchiamo suito un controllo %imer settan$o un el reackpoint. 8ulla $i pi ;acilecomman$ line e $igitiamo p Set%imer. Fatto ciA runniamo il programma e guar$iamo lo stack Buan$o oll! rekka:
Ottimo. Ora pensiamose annulliamo le;;etto $el timerproailmente il programma non e;;ettuerI nessun controllo sulla registraioneJ Http://crevt.altervista.org http://ctrlaltcanccorp.altervista.org
Guida al Reversing
C.REV.T
Ctrl_alt_canc Corp.
,n$iamo alla riga corrispon$entee sostituiamola con un 8OP 5ricor$ateG. Ecco che nessun nag verrI poi mostratoJ 5per un meto$o $iversoma interessante consultare il capitolo crac- commerciali,reversing serio,acific ssault Sempre in Buesto amitoper ren$erci conto $i come puA essere un crack $i Buesto tipo 5$ato che Buello appena preso in esame $avvero ;acilericorrerA anche a un crack commercialecon un tutorial realiato $a Pre$ator 5ve$i ringraiamenti.
?! 5atri3 ScreenSaver Lin'( http://CCC.ne>enteam.net/pre$ator/$oCnloa$/0$matri>.rar !ettagli7 2no $ei tanti screen saver asati sul tema 'atri>. 'olto carino $a un
punto $i vista estetico si sviluppa in un mon$o 0D calcolato in tempo reale... ma gli screen saver una volta non miravano a$ usare il minimo $i &P2 possiileG Perch non mettiamo su $irettamente Doom0 come screen saverG :MD Tool Usati: Oll!Dg11* pistacchi 1#iettivi: (ichie$e 8ome e Seriale altrimenti mostra un ;asti$ioso 8, screen $urante lesecuione. &arissimi eccoci al primo tutorial asato su un programma commerciale un el screen saver stile 'atri> ma an$o alle ciancie e iniamo suito suito... per prima cosa pren$iamo $ei pistacchi e mangiamoliJ Potrei mangiare pistacchi allin;inito a$oro i pistacchi :MD Prima $i reversarlo $iamo unocchiata come ;uniona sceen saver an$iamo su proprietI $ello schermo ta screen saver scegliamo 0D 'atri> ScreenSaver $all elenco $ei screen saverU per ve$erne le impostaioni premiamo su mposta mentre per ve$erlo in aione premiamo Prova... come ve$ete sulle impostaioni ci $ice che una versione 28(ES%E(ED e lopione 3olume $isailitata mentre su prova appare un contatore e allo sca$ere appare un ;astio$ioso nag screen in sovraimpressione. ,lloperaJ 5non $ove cantano hehe &arichiamo lo screen saver in Oll! 5si trova in R8DORS^s!stem0)^0D 'atri> ScreenSaver.scr premiamo pla! per prima cosa ci appare un messaggio. Premiamo Oke osserviamo linter;accia $i con;iguraione. Premiamo register e inseriamo nome e seriale a caso. o metto Pre$ator 111)))000. Premiamo ok e$ ecco il male;ico messaggio:
Registration name or registration code is incorrect... 5% !%%IIII@ C+e cattivi +e+e+e
ene so;;ermiamoci a pensare e ;acciamo le nostre consi$eraioni: aiamo tranBuillamente almeno 0 punti $i partena en evi$enti: M il messaggio iniiale M la maschera $i richiesta nick e seriale M il messaggio $i errore registraione sono tre punti $i ;acile appiglio non concor$ateG :M E giusto $ire che per arrivare a$ un risultato ci sono varie vie.. tutte le stra$e portano a (oma noG :M chissI Buanta gente c a (oma :D Se volete seguitemi anche se sicuramente siete in gra$o $i trovarne altre. niiamo a ;are sul serio: ricarichiamo il programma premen$o il tasto reloa$ in Oll! <[[= apriamo la &omman$ +ine e piaiamoci un reack point con p> 'essage"o>, premiamo Pla! Oll! sena esitare rekka nella user0): AA!?E60" >
proseguiamo premiamo per otto volte F# e ci appare il 'essage"o> Premiamo 14" e siamo 8ui AA!?E6B6 RET* ;>
premiamo ancora una volta F# per uscire $alla 2SE(0) e tornare alle>e 5che poi un .scr. Osserviamo cosa aiamo $avanti
noi siamo su **1#6D0 ma guar$iamoci attorno... Buante cosucce interessanti che ci sonoJ 3e$iamo appena sopra la preparaione $el 'essage"o> che $ice 28(ES%E(ED nel Buale entriamo $opo aver passato il controllo appena sopra: >>B;6%6 TEST EC" EC F ntdll.AAB=>?A >>B;6%% H* S21RT ?!_5atri.>>B;6!,
in pratica semra che il 48V $eci$a se man$arci su 28(ES%E(ED oppure saltare a (egitere$ to: >>B;6!, PUS2 ?!_5atri.>>B<&=>6 F %SCII JRegistered to7 J
troppo ;orte la tentaione $i ;are una prova su Buel salto piaiamo un reack point su >>B;6%% ricarichiamo lo screen saver e$ eseguiamolo Oll! rekka come previsto su >>B;6%% H* S21RT ?!_5atri.>>B;6!,
sotto leggiamo 4ump is 8O% taken an$iamo a $estra nella ;inestra $ei (egisters ;acciamo $oppio click su V 1 il valore $iventa V * leggiamo nella ;inestra 4ump is taken. e appaiono le ;erccine rosse :M
premiamo Pla! per lasciare proseguire il programma e... il primo message o> che $ice 28(ES%E(ED 3E(SO8 non appare pi sotto c scritto (egistration: (egistere$ to: e poi il vuoto...nessun nome 5ovviamente inoltre il volume ancora $isailitato mmm non va ene semrava troppo semplice. per curiositI premiamo <(egistere$= spariamo $ati a caso oppure premiamo $irettamente &ancel e Http://crevt.altervista.org http://ctrlaltcanccorp.altervista.org
Guida al Reversing
C.REV.T
Ctrl_alt_canc Corp.
ve$iamo che ritorna la $icitura 28(ES%E(ED 3E(SO8. Decisamente non asta :MP Passiamo al contrattacco sena ricaricare il programma nella &omman$ +ine $igitiamo p> 'essage"o>, e premiamo nuovamente <(egister= inseriamo Pre$ator e 111)))000 premiamo OT e V,,,,TTT Oll! rekka proseguiamo con F# ;ino allappariione $el messaggio premiamo OT premiamo ancora una volta F# per uscire $a 2SE(0) e analiiamo la situaione :
, Buanto pare ci sono 0 possiilitI $i errore e una che $ice %hank !ou ;or purchase ghghgh guar$iamo appena sopra Buel co$ice e osserviamo ene Buesta riga **17,7, 4'P DRO(D P%( DS:
U 0D'atri.**17,,*
in pratica cosa ;aG Esegue un salto a$ un in$irio $ato $a un calcolo e se noi camiassimo Buesto salto in un salto ;issoG il co$ice entreree sempre su %hank !ou ;or purchase giustoG :M proviamo... Piaiamo un reack point su **17,7, an$iamo nella lista $ei reack point e cancelliamo Buello piaato prima sull2SE(0). Premiamo il tasto <&= per tornare al co$ice in Oll! premiamo Pla! per ;ar proseguire lesecuione ripremiamo ancora OT e cosa ;aG Ovvio rekka su **17,7,. "ene ora ve$iamo che il salto attivo noi lo ipassiamo comeG %rattan$osi $i un salto 8O8 &O8DVO8,%O non asta camiare il Flag V $a * a 1 $oiamo 8opparlo oppure con il tasto $estro $el mouse nella riga **17,#1 scegliere 8eC Origin Here... io scelgo $i 8OPP,(+O e $unBue piao un el 8OP Premiamo ancora Pla! per ;ar proseguire... Buesta volta il programma ca$e $entro la nostra trappola: possiamo notare la correttea $ellattivaione: (egistere$ %o : Pre$ator Http://crevt.altervista.org http://ctrlaltcanccorp.altervista.org
Guida al Reversing
C.REV.T
Ctrl_alt_canc Corp.
il volume attivo insomma tutto semra aver avuto successo... ma non cosi (icarichiamo il programma premen$o <[[= se vi appare un messaggio $i errore non preoccupatevi vi sta $icen$o che avete piaato $ei reack point che sono corrotti... ma $ovuto ai camiamenti che aiamo ;atto prima non c nulla che non va premiamo ok e non pensiamoci piu : Premiamo Pla!... aim lo screen saver risulta essere ancora 28(ES%E(ED evi$ente che il programma ;a ulteriori controlli... sicuramente sicuramente va a leggere leggere $elle chiavi chiavi nel registro o Bualcosa Bualcosa $i simile : Per veri;icare che Buanto $etto vero proviamo a: M elu$ere il messaggio $i unregistere$ M ;orare la registraione M eseguirlo non in mo$alita con;iguraiione ma in mo$alitI screen saver attivo vi $imostrerA per en ) volte che anche se ;acciamo Buesto lo screen saver risulterI con le limitaioni e il nag screen. richiarichiamolo an$iamo nella lista $ei reak point e cancelliamoli tutti piaiamo p> 'essage"o>, 'essage"o>, premiamo pla! Oll! rekka $entro la 2SE(0) premiamo F# ;ino a Buan$o non appare il message o> premiamo OT nel message message o> che che $ice 28(ES%E(ED e torniamo a$ Oll! premiamo F# ;ino a Buan$o Buan$o usciamo $alla 2SE(0) 5cre$o asti asti premerlo una sola sola volta siamo Bui
facciamo un po di #ac' tracing fino a >>B;6%% cio9 8ui H* S21RT ?!_5atri3.>>B;6!,
camiamo Buesto coman$o in mo$o che salti sempre su (egistere$ camiamolo cosi H5P >>B;6!,
Proviamo a ;are P+,Z che ello niente 8, screen ma purtroppo li volume ancora $isailitato. Per veri;icare che proprio non asta lanciamo lo screen saver anche in mo$alitI start invece che con;iguraione vi spiego come. Su Oll! $al menu DeugMW,rguments Http://crevt.altervista.org http://ctrlaltcanccorp.altervista.org
Guida al Reversing
C.REV.T
Ctrl_alt_canc Corp.
come argomento scriviamo /s 5in pratica come avviassimo il programma scriven$o nome programma /s nel nostro caso come ;osse 0D 'atri> ScreenSaver.scr /s /s negli screen saver sta per start mentre /c sta per con;iguraione. premiamo ok e Oll! ci $ice $ice che Buesta Buesta mo$i;ica sara $isponiile $isponiile solo ricarican$o... ricarican$o... premiamo <[[= per ricaricare ricaricare lo screen saver saver con i nuovi argomenti argomenti $i avvio premiamo il tasto = e attiviamo la mo$i;ica che ancora ancora li memoriata
una volta attivata premiamo P)%K per vedere cosa succede
lo screen saver parte... ma aiamo il contatore il nag screen allo sca$ere $el contatore e lassena $i musica. leaaaaa camiare camiare Buel coman$o coman$o solo una lamerataJ lamerataJ 1' dai c+e siamo frementi di portare a segno il nostro o#iettivo@
partiamo a$ ero cancelliamo cancelliamo tutti i reack point point 5tasto <"= e tutte le mo$i;iche 5tasto = su argument canelliamo /s e lasciamo vuoto premiamo ok e ricarichiamo il programma <[[= Premiamo Pla! premiamo <(egister= inseriamo Pre$ator e 111)))000 su Oll! impostiamo p> 'essage"o> torniamo sul programma e premiamo OT oll! rekka come prima premiamo F# ;ino a Buan$o non appare il message o> premiamo OT nel message o> e torniamo su Oll! Premiamo F# una volta per uscire $a 2SE(0) e tornare nel sorgente $ello screen saver osserviamo ene la nostra situaione:
vedete cosa c:9 un po piL sotto di JT+an' (ou for purc+ase@J M c:9 8uesto >>B;A%=A 51V &KTE &KTE PTR PTR !S7/B%A&<>0" ;
interessantissimo... come impostasse un valore a 1 che in$ica che lo screen saver registrato mentre se a * 28registere$. Facciamo una panoramica su Buesto coman$o. spostiamo su e ;acciamo un click sulla prima riga $el co$ice praticamente su ***1*** premiamo &%(+KF per per eseguire la ricerca 5in Buesto mo$o partiamo partiamo $alla prima riga al suo interno iinseriamo 51V &KTE PTR !S7/B%A&<>0" ; premiamo , mi so;;ermo a in$icarvi la riga r iga Bui sopra in pratica le prime # righe preparano la lettura $el registro $i sistema e la riga a **16F71 legge 5(eguer!3alueE>, 5(eguer!3alueE>, il contenuto $el registro $i sistema in Buesto caso legge ciA che leggiamo su **16F6# ovvero lo 2ser 8ame. **16F77 &,++ 0D'atri.**1666 **16F7& %ES% E,Q E,Q testa E,Q **16F7E 48V SHO(% se E,Q $iverso $a * esegui il salto **16F#* 'O3 "Z%E P%( DS:<,7")*= * **16F#7 'O3 E&Q <+O&,+.6= **16F#, P2SH E&Q U /hTe! L **1)FF"* **16F#" &,++ DRO(D P%( DS:<[-,D3,P0).(eg&loseTe!W= DS:<[-,D3,P0).(eg&loseTe!W= U ^(eg&loseTe! **16F91 &,++ 0D'atri.**1666 Http://crevt.altervista.org http://ctrlaltcanccorp.altervista.org
Guida al Reversing
C.REV.T
Ctrl_alt_canc Corp.
**16F96 %ES% E,Q E,Q testa E,Q **16F9# 4E SHO(% se E,Q L * esegue il salto **16F9, 'O3 "Z%E P%( DS:<,7")*= 1 E&&O +, 8OS%(, (&E(&, D P(',J **16F,1 'O3 ESP E"P **16F,0 POP E"P U kernel0).77E611, **16F, (E%8 Da Buello che ve$iamo si capisce che il programma legge il registro poi ;a $ei con;ronti se il seriale esatto allora 'O3 "Z%E P%( DS:<,7")*= 1 invece se il seriale sagliato 'O3 "Z%E P%( DS:<,7")*= * ene ;acciamo la nosrta mossaJ ricarichiamo il programma e an$iamo allin$irio **16F9# 5premete &%(+K e inserite **16F9# siamo Bui **16F9# 4E SHO(% ora mo$i;ichiamo il 4E in 48V cosi $a invertire la sua aione. Facciamo Pla! eheheheh l programma non mostra nessun nag screen registato e con li volume attivoJ ce laiamo ;attaJ 8OOOO non veroJ :D ce laiamo ;atta per metIJ il programma cracckato per metI tutte le opioni sono attive ma se lo carichiamo con il largomento /s poi attiviamo la mo$i;ica 5premere il tasto = e attivare la patch ;acen$o pla! c ancora il contatore e il nag screen ma tranBuilli asta ricercare le restanti stringhe $i coman$o e mo$i;icarle come prima : ricarichiamo il programma portiamoci in cima al sorgente &%(+KF e inseriamo 'O3 "Z%E P%( DS:<,7")*= 1 premiamo F8D mo$i;ichiamo **16F9# 4E SHO(% **16F,1 in **16F9# 48V SHO(% **16F,1 ora continuiamo la ricerca premiamo &%(+K+ che sta per cerca sucessivo e siamo su **17,97 'O3 "Z%E P%( DS:<,7")*= 1 Bui non ci interessa intervenire perch Buello $i prima che viene eseguito solo se inseriamo il seriale giusto a mano possiamo premere ancora &%(+K+ **17&,F %ES% E,Q E,Q **17&"1 4E SHO(% **17&", **17&"0 'O3 "Z%E P%( DS:<,7")*= 1 camiamo **17&"1 4E SHO(% **17&", in **17&"1 48V SHO(% **17&",
ok ragai ;atta tutto crakkato potete provare lo screen saver completo in tutte le sue parti : riassumo le patch Patches ,$$ress Sie State Ol$ 8eC &omment **16F9# ). ,ctive 4E SHO(% 0D'atri.**16F,1 48V SHO(% 0D'atri.**16F,1 **17&"1 ). ,ctive 4E SHO(% 0D'atri.**17&", 48V SHO(% 0D'atri.**17&", &onsi$eraioni: per trovare Buei punti era possiile anche eseguire $ei reack point sulla lettura $el registro $i sistema cio su (eguer!3alueE>, ma avremo altre occasioni $i provare anche Buesto tipo $i approccio :M ,hJ non $imenticate $i chiu$ere ene i pistacchi rimasti :D
/#acking * 3npacking
Eccoci alla proteione pi importante che spesso anche associata a Buelle appena analiate. Si tratta $ei packer $i eseguiili 5ve$i paragra;o Concetti #ase sul reversing,81eac-er . &i sono tantissimi packer al mon$otutti con un mo$o particolare $i proce$ere. %ra i pi intelligenti 5e costosi ricor$iamo E>ecr!ptor e ,rma$illo per le cui proteioni isogna lavorare parecchio 5e$ essen$o reversing avanatovi riman$o alle ottime gui$e $i Evolution. n Buesto capitolo analieremo in particolare un unpacking classico $i 2PQ nel meto$o automatico e manuale ;ino allunpacking $i un crackme apposito realiato $a pre$ator 5con un sistema intelligente $i proteione. /Normal unpacking Esempio pratico n. ,7
Crac-2e utilizzato3 2n crack me creato $a melo trovate nello ip allegato a Buesta gui$a.
2PQ1= uesto un semplice eseguiile che solo packato con 2PQ. %ool: 2p>Shell 5o up> stesso (DPacker Detector 5o il mio :D e Oll!Dg "enepren$iamo (D e apriamo leseguiile $a analiareecco Buello che appare: Http://crevt.altervista.org http://ctrlaltcanccorp.altervista.org
<&'M
Guida al Reversing
C.REV.T
Ctrl_alt_canc Corp.
,priamolo $entro Oll! e ve$iamo cosa succe$e. ntanto lEP 5 capitolo /asi del reversing,8 * semra strano...
'a va ene. Ora tentiamo $i intercettare la messageo> che appare premen$o il tasto al centro $el crackme. &omman$lline p> rtc'sg"o> ecco il risultato
8o re;erence. 8essun ri;erimento. E cosN in;attinessun reackpoint appare. Ecco che un Http://crevt.altervista.org http://ctrlaltcanccorp.altervista.org
Guida al Reversing
C.REV.T
Ctrl_alt_canc Corp.
eseguiile packato presenta Buesto grave prolema. Per risolverecerchiamo $i scomprimerlo. Pren$iamo 2p>Shell 5o 2PQ stesso e ve$iamo come proce$ere: " semplicissimolo apriamo $entro 2PQ e premiamo ?Decompress@ :D
Semplice veroG Era solo per ;arvi entrare nellotticama $ovete sapere che tutti gli altri programmi $i compressione non permettono anche lunpack. n;atti spesso troverete molti unpakker giI pronti ma non sempre ;unioneranno. , Buel punto isogna arrangiarsi a mano. +o stesso oll! mette a $isposiione un como$o ssistema $i script 5previa installaione $i Oll!Script che spesso sono volti allin$ivi$uaione $ellEP l prossimo crackme in;atti ha una $i;;icoltI in pi.
/)anual unpacking
Esempio pratico n. 7
Crac-2e utilizzato3 2n crack me creato $a melo trovate nello ip allegato a Buesta gui$a.
<&'6M
2PQ)= uesto crackme stato si compresso con 2PQma anche trattato con un programmino $i mia invenione2p> ,ntiunpack:
Ecco che se proviamo a$ unpakkare il nostro crackme con 2PQ acca$e Buesto:
&ome proce$iamo alloraG ,priamolo $entro Oll! e ve$iamo. &ome si ;a a$ unpakkare manualmenteG Facileisogna risalire allOEP. 5ve$i seione Concetti #ase sul reversing,98 . &ome ottenerloG "un ottimo reverser ha realiato un programmino che la maggio parte $elle volte ;uniona 5seione %ool $el reverser ma poco orto$osso. Facciamo invece manualmente. (echiamoci alla ;ine $el co$ice asseml! utile e settiamo un reackpoint:
Premiamo F9 e man$iamo in (un. Suito Oll! loccherI proprio a Buellin$irio 5;in lN in;atti solo co$ice $el packerche sta scompattan$o il crackme in memoria. ,l reackpremiamo F7. EccociBuello +OEP.
+o riconosciamo per ) motivi. Essen$o Buesto un crackme in visual asic 5ricor$iamo limportana $el inguaggioG &apitolo Fon$amenti $i reversing sappiamo che suito prima $ellEP ci sono i ri;erimenti alle varie ,P e suito $opo una chiamata alla %hun(%main. &he ;are oraG Esportiamo un Dump ;unionanteJ Fate tasto $estro MW Dump $eugge$ process 5$ovete avere il pluging ?Oll!Dump@ Ecco cosa appare 5non toccate nullatogliete perA lo spunto su reuil$ importJ
E premen$o su ?$ump@ verrI esportato le>e unpakkatoJ 'a non completo$ivete ricostruire la ,%. Per sapere come ;arerecatevi nella seione trucchi reversing che segue Bualche capitolo pi avantiJ Provare per cre$ere.
/0dvance unpacking
Esempio pratico n. A7
Crac-2e utilizzato3 2n crack me creato $a Pre$atorlo trovate nello ip allegato a Buesta gui$a.
<&'7M2npack=
uesto unpack me leggermente pi complicato $egli altriperch usa un meto$o tutto suo $i proteggere. 4ools3 Oll!DgPE%ools(DPaker Detector3"DecompilerPE,nal!er 5! &trlaltcanc :P
Per prima cosaapriamo il nostro e>e $entro (DPacker Detector. l nostro packer $etector non segnala nulla...ma le>e ineBuivocailmente pakkato su;;icente Http://crevt.altervista.org http://ctrlaltcanccorp.altervista.org
Guida al Reversing
C.REV.T
Ctrl_alt_canc Corp.
tentare $i camiare una captiono apportare Bualche altra mo$i;ica... ,priamolo allora $entro il 3"Decompilere rechiamoci alla seione ,P...
,lcune ,P sono $avvero interessantitra cui &reateProcess,(esume%hrea$ e RriteProcess'emor!....$iremo noicosa se ne ;aGSemplicese guar$iamo nella $ocumentaione $elle ,Pscopriamo che serve proprio a$ aprire un nuovo processo in memoriaJ Per prima cosacarichiamo in oll! il programmae settiamo un el reakpoint sulla su$$etta ,P:
Ottimoavviamo il processo $a oll!e Buan$o rekka guar$iamo lo stack:
Ecco la chiamata all,P.,naliiamo $i cosa composta...interessante la &reation;lag &(E,%ES2SPE8DEDla Buale in;atti preve$e la chiusura solo $opo un invio $i un coman$o (esume%hrea$ ....ma guar$a guar$aJ 8elle ,P $el programma troneggia pure Buella chiamataJ
'a passiamo oltre...aiamo ora un piccolo prolemail processo in realtI semra che sia riaperto solo Buello principalema con il coman$o 5sempre presente tra le ,P trovate RriteProcess'emor!si puA scrivere un programma $irettamente nella memoria $el processo...oraproviamo a rekkare proprio lN: 5sempre nello stack
&osa notiamoG"u;;er **17D"# 5camia $a P& a P&Buin$i a$attatevi al vostro...proviamo a ve$ere cosa va a scrivereG
notiamo nulla $i stranoGG 'V alliniio...%his program cannot e run in DOS mo$e...ma..ma.. un eseguiileJ Se continuiamo a steppare con F9 per ancora 0 o voltele>e viene interamente scritto in memoria. Oraapriamo il mitico programma PEanal!er 5ehehil mio e usiamo la ;uniona ,ttach per analiare il processo $el &rack'E e rechiamoci negli optional Hea$er :
,nnotiamo il Sie O; &o$ee proseguiamoJ Ora$oiamo $umpare$a Buellini$irio prima in$ivi$uato 5il primo reckpoint su RriteProcess'emor! che nel mio caso **17D"#. ,priamo Buin$i PE%oolse
Orainseriamo i $ati appena scopertiossia lin$irio $a cui partire a $umparee la $imensione $elle>e 5in mo$o tale che capisca Buan$o ;ermare il $ump
Ecco ;attoJ ,$esso ricostruiamo un e>e $al $umpcome meglio cre$eteusan$o Buello che volete 5lor$Pe... e avete le>e unpackato. uesta una proteione giI pi avanata $i un semplice 2PQ o ,SP pack.
8aturalmentei meto$i $i packing con relative proteioni sono molteplici. %ra i pi $i;;usi e importanti ricor$iamo tuttavia: 81ecr7ptor il Buale ha come punto $i ;ora la
virtualiaione $ellentr! point e $i alcune parti $i co$icesostituite con garage co$e. Per cui alcuni pei $el programma sono veramente con;usi $a stu$iare e $a ricostruire. Distrugge una uona parte $elle importe utilia una interessante tecnica $i $eug asata su alcuni trhea$ aperti che monitorano costantemente la presena $i un $eugger.
rmadillo 2tilia il meto$o $ellhar$Care ;ingerprintossia un co$ice univoco per ogni P&
cui associato un serialeal primo avvio $el programma viene richiesto. Se inserito correttamente i $ati vengono messi nel registroe il programma ;unionerI per sempre. 2tilia anche $elle ;alse mportper con;on$ere il reverser e ne sostituisce alcune con altrecreate in proprio $ai suoi programmatori. Ottimi tutorial su Buesti $ue packer li trovate sul sito $i Evolution 5ve$i ringraiamenti
/0441SS 0 +"1
%alvolta invece i programmi asano la loro avvenuta registraione trammite chiavi $i registroo $ei ;ile esterni al programma 5spesso co$i;icati o en nascosti. Ecco un como$o tutorial per pren$erci la mano. Esempio pratico n. 67
Crac-2e utilizzato3 2n crack me creato $a melo trovate nello ip allegato a Buesta gui$a.
<&'#M
File= 4ool3 Oll!Dg Filemon.
(icarichiamo il ;ile $entro oll!e $iamo una occhiata. Dopo una prima analisi notiamo che non possiile ;are molto per crakkarlo 5o ;orse sNma a noi interessa un altro meto$o. Pren$iamo il nostro ;e$ele File'one impostiamo come ;iltro il nome $el nostro crakme.5?&'#M File@ Http://crevt.altervista.org http://ctrlaltcanccorp.altervista.org
Guida al Reversing
C.REV.T
Ctrl_alt_canc Corp.
Premiamo oke avviamo il nostro programma. %ra le moltissime righe notiamo una cosa molto interessante :
EhehBuel &:^tmp.tmp ci ;a intuire la presena $i un ;ile esterno $i ri;erimento. Doppio clicke apriamolo. l contenuto aastana anale: 28(ES%E(3E(SO8M Sostituiamo lintera stringa con il nostro nick 5&trlaltcanc e riavviamo il programma...
Primo ostacolo superatoJ 5in;atti anche se premiamo checknon mostrerI alcuna messageo> Ora manca il secon$o oiettivo;are in mo$o che se si preme il tasto registernon appaia il ;ormma una messageo> 5non meglio speci;icata
P%SS1 < "ene eneora an$iamo nel men plug in e seleioniamo il plug $ella comman$ linee impostiamo un reckpoint sulle messageo>
Ottimoaiamo 0 ri;erimentiJ 2no Buello che si apre Buan$o premiamo il ?G@laltra Buan$o premiamo il check e non siamo registratie lultima $eve essere la msgo> $a ;are apparireJ ,n$an$o per esclusionearriviamo a capire che Buesta Buella a cui mi ri;erisco:
"enissimoora $oiamo intercettare la chiamata al ;orm che generalmente appare alla pressione $el tasto register 5 Http://crevt.altervista.org http://ctrlaltcanccorp.altervista.org
Guida al Reversing
C.REV.T
Ctrl_alt_canc Corp.
e ;are Xumpare il programma sullin$irio $ella msgo>... ***0#F . &7 9& D*)9*W'O3 DRO(D P%( SS:
per ;are ciA necessaria sempre la comman$ linesta volta con la stringa: #p1 ::v#a5e0
(aggiunto il ;orm voluto 5allin$irio ***0*0mo$i;ichiamolo col Xmp:
Ecco una raccolta $i Buei trucchi e consigli utili che si a;;inano e si scoprono $opo Bualche esperiena in amito $i reversing. /0B"T0(1 3N BTTN1
"un meto$o poco orto$osso $otarsi $i so;tCare appositocome %8% 5creato $a me
J :
'a noisiamo pro;essionisti 5 e anche perch il programma ;a solo mo$i;iche temporanee;ino a che il prog rimane apertoe asta n;atti$oiamo sapere che i comman$ utton $el visual asicpossono essere ;acilemte ailitati anche $allhe> e$itor. 2siamo la ;unione cerca per recarci alla riga $el comman$ utton 5cerchiamo il valore captionche in Buesto caso :login Oravicino a tutte le vari ci;recompare un *#e suito $opo un **
'o$i;ichiamolo in *1e salviamo le>e.,pren$olo avremo il comman$ utton ailitatoJ Http://crevt.altervista.org http://ctrlaltcanccorp.altervista.org
Guida al Reversing
C.REV.T
Ctrl_alt_canc Corp.
8aturalmente tutto il proce$imento puA essere compiuto anche $entro lo stesso $eugger$ato che in genere ;ornisce sempre anche una ;unione $i he> e$itor.
,lcuni crackme 5pi che i programmi hanno nel nome $el ;ile alcuni caratteri strani. n particolare mi ri;erisco a$ esempio a : rogramma;s;sDaCraccare.e1e
Se non lo sapete `s una stringa molto utiliata in & e &KK per pescare il valore $i una variaile...proailmente Oll! cre$en$o sia una variaile va a leggere nel nome ;ile5$ato che $eve impostarlo come nome $ella ;inestra corrente e chissI cosaltro e genera un errore critico. vrete capito che per sistemare il pro#lema è sufficiente rinominare il file.
/(4ST(3(1 "1 )#(T
+e import tale. Di cosa si trattaG Praticamente sono uno $ei componenti che appartengono al ;ormato PE e contengono tutte le chiamate alle ,P utiliate $al programma. +a tecnica $ella ricostruione $elle import utiliata specialmente 5se non unicamente $opo aver ottenuto un $ump $a un programma packato con un packer importante. Ecco un esempio. ,prire mp(E& 5seione tool $el reverser e seleionare il processo che si sta $euggan$o impostare Buin$i l OEP a Buello $esis$erato 5aiamo ;atto un $ump noG Se non ricor$ate cosa cercate nel capitolo Fondamenti del reversing,se non sapete ;arne unoconsultare il paragra;i successivi e premere il pulsante ?,% ,uto Search@ $ovree comparire una messageo> contenente la % che regolarmente stata trovata.
Premere Buin$i getmports e$ appariranno 5se in v6 come in Buesto casosolo uno tutti i thunk relativi alle imports. %alvolta il programma riesce a ricostruirle pienamentee il $ump a posto. 8el caso che segue perAci sono stati $ei porlemi:
Se an$iamo allin$irio in$icato 5in Buesto caso **0",66* con Oll! apparirI un co$ice simile a Buesto:
Fare $oppio click Buin$i sulla ;unione non risolta $a imp(ec e $allelenco che compare seleionare ?vaEn$@ 5in Buesto caso e premere ?OT@. Ora le import sono a postoe se premiamo su Fi>Dump avremo il $ump ;unionante.
<arte di guida creata da redator,vedi ringraziamenti=
3isual "asic 6 un linguaggio interpretato e anche per eseguire semplici operaioni genera molta con;usione nel co$ice. 'olti ritengono noioso o $i;;icile riversare programmi ;atti in visual asic proprio per la con;usione generata $al co$ice 3". n Buesto $ocumento illustrerA alcune tecniche che sicuramente vi aiuteranno a$ avere vita pi ;acile nel reversare 3isual "asic. / Scopo a#ilitare un tasto disa#ilitato
l sorgente in Buestione preve$e che ci sia una ;unione che esegue &omman$1.Enle$LFalse nel +oa$ Form che si occupa $i $isailitare il tasto pertanto $i suo saree ailitato. Proce$ura: caricate le>e 1Enale'e.e>e in Oll! ci sono vari mo$i per arrivare al punto esatto $ove il co$ice $isailita il tasto io pren$o il pi imme$iato 5ottimio hehe cmB ve$iamo tutto con calma e nei $ettagli. ,ppena caricato le>e in Oll! premiamo il tasto $estro Search ;orMW ,ll intermo$ular calls
+a ;unione che si occupa $i ailitare/$isailitare i coman$i vaOXSet Facciamo $oppio click su Buella call per an$are $irettamente al co$ice che ci interessa:
+a cosa interessante la notiamo allo;;set 5in$irio ***1"1F: C%)) *E%R !D1R! PTR !S7/ECN6C0
Doiamo portare la nostra attenione sulla costante /ECN60 in pratica Buella che $ice alla &,++ $i impostare Enale$ L False. Pertanto per raggiungere Buesto punto cruciale possiamo anche premere &%(+KF 5oppure tasto $estro Search ;orMW comman$ e come testo $a ricercare inseriamo C%)) *E%R !D1R! PTR !S7/ECN6C0 Vi troverete esattamente allOindirizzo >>B>;&;.
+a soluione per ;ar si che il tasto non venga $isailitato puo essere Buella $i noppare la &,++ :M Provate al posto $i C%)) *E%R !D1R! PTR !S7/ECN6C0 mettete un *1P avviate il programma 5F9 e il tasto sarI ailitatA. Riassumendo: __v#a1#Set imposta lo stato enale$ $ei controlli C%)) *E%R !D1R! PTR !S7/ECN6C0 esegue loperaione $ella __v#a1#Set allin$irio speci;icato :M Esempio<7
in Buesto secon$o esempio ci occupiamo $i analiare sempre lailitaione $i un tasto ma Buesta volta nel caso che non ci sia nessun co$ice $i attivaione/$isattivaione ovvero un tasto $isailitato $alle proprietI $el compilatore. &aricate in Oll! il secon$o esempio: )Enale'e.e>e &ome $etto prima Bui siamo in una con$iione $iversa il tasto $isailitato nelle proprietI $el compilatore e non c nessun co$ice che ne mo$i;ichi lo stato pertanto $ovremo intervenire nella struttura stessa $el controllo. Proce$ura: %asto $estro Search ;orMW ,ll re;erence$ te>t strings 3e$ete la riga evi$eniata in grigettoG l nostro &omman$1 ;ate $oppioclick.
3e$ete la riga evi$eniata in grigettoG l nostro &omman$1 ;ate $oppioclick. &ome ve$ete nellimmagine vi trovate nella struttura $el tasto ve$iamo $i spiegarla: non necessario ma utile per ren$ere maggiormente comprensiile le in;ormaioni ;acciamo tasto $estroMW;olloC in $umpMWselection come $a immagine
8ella ;inestra sotto veniamo veniamo posiionati esattamente esattamente nel $ump $el $el tasto:
n pratica leggiamo le stesse in;ormaioni che aiamo sopra $isposte in verticale :MD ma Bui sono piu ;acili $a compren$ere. E chiaro e ;acile capire Buanto segue: il nome del comando ?&omman$1@ ***1))1 0 6F 6D 6D 61 6E 6 01 ** &omman$1. Poib.
***1))1 bbbbbbbbbbb... 6E 61 Ena ***1)01 6) 6& 6 )* D 6 le 'e uello che segue ;ino a prima $i ** * la caption del controllo ?Enale 'e@ Poib uesta la proprietQ )eft solo che 5come sapete nello stack le in;ormaioni si leggono con il criterio +FO 5se non avete chiaro lo stack leggete lopportuna $ocumentaione $ocumentaione che ho scritto pertanto lo rovesciamo ,** $iventa *,* che tra$otto in $ecimale 1* in;atti se an$ate a ve$ere il sorgente ve$rete che &omman$1.+e;t L 1* Poib
Stesso criterio $i prima Buesta la proprietQ Top 6#*1MW*16#MW06* pertanto &omman$1.%op &omman$1.%op L 06* heheh proprio vero ehG :P Poib
&io *#** la proprietQ Ena#led >> sta per alse" cam#iate >> in facendo tasto destro su >>
"inar! MW E$it 5oppure &%(+KE E nel ;alore esa$ecimale camiate ** in FF come $a immagine
Date lOT premete F9 per runnare il processo e ;elici ve$iamo il tasto che ora ailitato :D ueste in;ormaioni utile conoscerle ma la struttura si puA mo$i;icare ;acilmente con programmi a$atti allo scopo scopo pertanto ricor$iamoci ricor$iamoci soprattutto il co$ice spiegato spiegato nellesempio 1. Esempio?7
,lterare il testo inserito in una %e>t"o> e +ael. &arichiamo in Oll! lesempio 0Set%e>t.e>e. 'olto similente allesempio 1 __v#a1#Set si occupa anche $i impostare il testo nelle %e>t"o> e +ael. Http://crevt.altervista.org http://ctrlaltcanccorp.altervista.org
Guida al Reversing
C.REV.T
Ctrl_alt_canc Corp.
uesta volta la &,++ che ;a la $i;;erena >>B>;CEA C%)) *E%R !D1R! PTR !S7/ECN%B0 Simile al primo esempio Buesta volta la costante /ECN%B0 che $ice $i impostare il
testo poppan$olo no verra messo alcun carattere:
Stessa cosa per la lael solo che Buesta volta la costante /ECN%B0 &ome prima poppan$o la call >>B>;!<% C%)) *E%R !D1R! PTR !S7/ECN,B0
non apparira nessun testo. &osi si possono togliere scritte non volute o $iciture $ai programmi : Per mo$i;icarne il contenuto seguite Buesti passi: tasto $estro allo;;set >>B>;CEA MW FolloC in $ump MW imme$iate constant Per mo$i;icare il testo evi$eniatelo e premete &%(+KE 5oppure tasto $estro "!nar!MW"inar! E$it Da Bui potete mo$i;icare il testo como$amente $a unico$e. ,ilitare una voce $i menu che $isailitata. 8ellesempio 'enuEnale'e 'enuEnale'e c un co$ice nel +oa$ Form che $isailita la voce $i menu noi $oiamo trovarla e$ iniirla. %asto $estro MW search ;or MW all intermo$ulars call Facciamo $oppioclick su __v#a1#Set
E$ ecco ancora una importante &,++ e importante &OS%,8%E: >>B>;!= C%)) *E%R !D1R! PRT !S7/ECNAB0 +a costante /ECNAB0 molto importante perch Buella che $ice se ailitare o
$isailitare un menu pertanto potete raggiungere Buesto punto ricercan$o il coman$o: C%)) *E%R !D1R! PRT !S7/ECNAB0
e nopparlo per impe$irne lesecuione. l menu risulterI ailitato Pertanto se incontrerete $elle voci $isailitate a causa $i un $emo ora sapete come raggiungere velocemente velocemente il punto e$ ailitarla : : Esempio,7
n Buesto esempio c un timer che lentamente 5impostato a ** ms reimposta una %e>t"o> Enale$ L False 'eto$i per iniire la $isailitaione $ella %e>t"o> ce ne sono altri ma Buello che interessa a noi ora $isailitare il timer. Http://crevt.altervista.org http://ctrlaltcanccorp.altervista.org
Guida al Reversing
C.REV.T
Ctrl_alt_canc Corp.
&arichiamo in Oll! leseguiile %imer.e>e tasto $estro MW Search ;or MW ,ll re;erence$ te>t string ;acciamo $oppio click su ?%imer1@*
Poi ancora tasto $estro MW FolloC in $ump MW Selection
3e$ete il valore esa$ecimale evi$eniato $al rettangolo rossoG F*1 MW *1F MW ** Y il valore $ellintervallo $el timer 5%imer1.interval L ** E$itate F *1 in ** ** e$ il timer verrI $isailitato :
Eccoci arrivati al capitolo pi atteso. ,ttenione che Buesta seione non serve a$ incitare voi lettori a craccare programmi commerciali perch lo scopo $el reversingensN per poter stu$iare $a vicino le proteioni che realmente compongono i programmi mo$erni. 2n po come i crack me che sono la palestra $ei reverseril crack commerciale il saggiola partitala veri;ica $i ciA che avete imparato. 3i ;accio ancora notare che craccan$o Buesti 0 programmi che seguirannonon $ovrete an$are in giro a san$ierarvi reverserJ ,vete solo letto e seguito un tutorial. &ercate $i essere oiettivie capite che con la pratica e lo stu$io riuscirete a raggiungere gran$i traguar$i.
Ottimonon neppure compresso.Oraapriamo il gioco e analiiamoloper ve$ere che tipo $i proteione stata implementata...
,hiche tristeaJ 2na proteione a tempoJ Solo 6* minuti $i gioco e poi il $emo non si puA pi usare...8o prolemaJ ,priamo il gioco $entro oll! e cerchiamo la prima cosa logica...una ;unione Set%imer che $ovree appunto ;ar partire il conto alla rovescia...purtroppo non esiste nulla $i simileper cui prviamo con Bualcosa $i pi mirato...per esempio l,P et%ick&ount che $ovree appunto occuprsi $i segnalare lavanamento $el tempo...in Buesto caso in negativoin;atti a$ ogni tickil nostro counter $iminuisce ;ino a raggiungere lo ero...la stra$a pi veloce in Buesto senso proprio Buella $i 8oppare le chiamate all,P et%ick&ount per risolvere ogni prolema. ,priamo $unBue il programmae an$iamo nel men plugMin seleionan$o la comman$line...$igitiamo Http://crevt.altervista.org http://ctrlaltcanccorp.altervista.org
Guida al Reversing
C.REV.T
Ctrl_alt_canc Corp.
e ve$iamo ciA che appare...5scorrete un po la lista
Bueste chiamate rosse sono i reackpoint...clikkiamo su ogniuno $i essie verremo portati al co$ice corrispon$ente...per esempio...
Ottimo$oiamo noppare noGE ;accimoloJ Doppio click e scriviamo 8oP
Ecco un crack $i un prog commercialeanche utile :D Tools I!% Pro &inder %nal(zer #( 5e $ Calcolatrice di Dindos
,lloraper prima cosa analiiamo super;icialmente il nostro target...
che non presenta alcun segno $i proteione...enissimo. ,priamo le>e $entro D, Proe mettiamoci a$ analiarlo: Http://crevt.altervista.org http://ctrlaltcanccorp.altervista.org
Guida al Reversing
C.REV.T
Ctrl_alt_canc Corp.
cerchiamo la GetWindowTextA proprio Buella che legge preleva il serial numer. Poco pi sotto presente anche la riga call?GetWindowTextA@CWnd@@QBEXAAVCString@@@Z
OttimoBueste righe sono interessanti...in;atti ve$iamo una chiamata alla su 1F""*e una successiva comparaione 5cmp $i ea> e e>in ultimo luogo un salto con$iionato...rechiamoci col mouse sopra la su 1F""*
eheh....guar$iamo ene Buella stringa...prima viene messo in esi il valore inserito nella ;inestra $i registraione e ora viene paragonato con il valore )7)hche pren$en$o la calcolatrice $i Cin$oCs... seleioniamo la scienti;icae settiamo come unitI ?he>@.&opiamo )7)
/!0)0 !1"3 7.9 "ink: http://www.temporale.net/DAMA31S.ZIP Tool: OllyDbg 1.10 IDA Pro 5.1 (o inferiori) •
•
Premessa
Se aprite le>e noterete le ?proteioni@ che i programmatori hanno inserito.Ecco Buin$i i nostri oietivi: M(imuovere il nag iniiale con Buel ;asti$ioso count$oCn $i )* secon$i M(imuovere la limitaione $elle mosse 5Provate a ;inire una partitaa$ un certo punto appare un messageo> che $ice che la mossa la ;arI lui M.M Passo uno – Eliminare il nag
DunBue evi$ente 5;i$atevi che non essen$o stato ;atto uso $i una ;unione ShoCRin$oC nel programma per mostrare il nagproailmente si lavora sulla Form,ctivate. Oraapren$o il nostro Dama $entro un he> e$itor Bualsiasi e cercan$o il ri;erimento a Buella stringasi viene portati allin$irio 004020A8 . ,priamo D, e $iamo una occhiata...
Se settiamo un rekpoint e poi premiamo F9ecco che D, rekka prima $i mostarre il $ialog. "enissimolasciamo pure aperto D, e apriamo Oll!$entro il Buale caricheremo sempre Dama $elu>. &trlK e ci rechiamo al su$$etto in$irio.,naliiamo ciA che si ve$e $entro D,che con la sua ;unione $i gra;ico ci ;a capire per;ettamente il co$ice...ripeschiamo D, e premiamo la arra spaiatricee$ ecco Buello che appare:
"ene ene...Buel Xn controlla la mancana $i ;ile necessarie in caso a;;ermativo lo segnala al programma. ,ltrimenti proseguema Bueta routine non ci interessa...piuttostoproviamo 5sta volta $entro oll! a settare un reckpoint sul Push Ep 5***)*,# e runniamo il prog con F9. Oll! rekkama noi steppiamo con ;#e in corrispon$ena $ella call ***)*ED FF9) D#****** &,++ DRO(D P%( DS:
,iamo $etto prima che appare un message o> noG Ottimo$entro oll! settiamo come $i consueto un p:
Proprio Bui$opo un tot $i mosse oll! rekka... **7F9, _. E# F16D*** &,++ [4'P.-2SE(0).'essage"o>,W U ^'essage"o>, analiiamo la situaione $a oll!: Http://crevt.altervista.org http://ctrlaltcanccorp.altervista.org
Guida al Reversing
C.REV.T
Ctrl_alt_canc Corp.
Ehehsia nello stack che nei registri appare il testo $ella messageo>.Se ora steppiamoarriviamo Bui:
Ottimonotiamo nullaG Se guar$iamo nei registriproprio agli in$irii pushati Bui: 00406C5C lea ecx, [ebp-008C] 00406C62 lea edx, [ebp-74]
ci sono le righe +imitaione shareCare e 3ersione SH,(ER,(E: Buesta mossa la scelgo ioJ .
ntuiamo suito che allin$irio **",9&& aiamo una ;unione ponte per l,P 'essage"o>, 5c la call noG. Oraritorniamo al ;e$ele D, e risaliamo ;ino al co$ice che controlla Buella routine:
2hm...tutti gli in$irii puntano lontano $alla messageo>...settiamo un p su Xg loc*6&," Ecco che alla prima mossa rekka...
Occhio eh...EQ& a valore ******1)...,spettiamo una mossae$ ecco che rekka ancora...
******1*... $iminuito $i $ue...e se notateBuesto continua a$ ogni mossa;ino allo eroBuan$o poi arriva la call alla messageo>... &he ;are Buin$iG SemplicissimoJ&amiamo il con$iionale Xg in un Xmp e tutto sarI appostoJ Http://crevt.altervista.org http://ctrlaltcanccorp.altervista.org
Guida al Reversing
C.REV.T
Ctrl_alt_canc Corp.
FineJ
I T11) !I CTR) %)T C%*C Per evitare perdite di tempo"e spreco di spazio vi rimando al mio sito sezione tool"precisamente 8ui7 +ttp7--crevt.altervista.org-CT.p+p
&on Buesta gui$a ho cercato in $ue settimane $i lavoro $i traman$arvi una parte $ella mia esperiena nel campo $i Buesta a;;ascinante arte che amo chiamare (eversing. E un po il amino che c in noiche vuole giocare con il suo giocattolo e lo rompe per ve$ere se puA ?;are $i pi@. Soltanto noi possiamo appreare limmane lavoro che il nostro computer compie ogni giorno per noiBuan$o scriviamo un testo o Buan$o giochiamo a 2nreal %ournament. 8on mi $ilungo su altri $iscorsetti ;iloso;icie passo ai ringraniamenti. Persone come Pre$ator 5http://pre$ator.;orumup.it e Evolution 5http://ogm$eveloper.org non possono mancare nella lista. Sono $egli ottimi reversersena i Buali non avrei imparato nullae graie ai loro ;orum ho appro;on$ito Buestarte aracciato $a una communit! molto ospitale. 3olevo ringraiare in particolare Pre$ator che mi ha intro$ottoseppur involontariamente in Buesto ;antastico mon$ostimolan$omi e aiutan$omioltre a$ aver gentilmente concesso il suo preioso tempo per una revisione tecnica generale $i Buesto $ocumento. (icor$o che il tutorial $el capitolo sulle proteioniseione %rial creato $a lui e hostato sul suo ellissimo sito. noltre la parte $i gui$a $e$icata al reversing $i visual asic e 6 $a lui realiata. (ingraio inoltre Dr. %o$$el Buale tempo a$$ietro ho stu$iato le gui$e e $a cui ho appreso le interessanti noioni sulla &P2 e sui sistemi $i enumeraione. E ringraio telettore che con la tua paiena sei arrivato al termine $i Buesta ennesima gui$a al reversingche lautore ha tentato $i ren$ere comprensiile a tuttie ;acile $a leggere. Spero $i esserci riuscito. n ultimissimo,vi rammento che la guida è totalmente gratuita e distri#ui#ile,l*unico s+orzo c,e i c,ie-o ,è di recarvi nel mio sito http3>>ctrlaltcanccorp.altervista.org e di cli''are nei google a-sense che stanno in #asso nella colonna di destra. 5on è per interesse personale,ma i soldi che guadagner li utilizzer per comprarmi un dominio 3@D
3i lascio con la mia ?;rase@: Http://crevt.altervista.org http://ctrlaltcanccorp.altervista.org