|
NeoTrace212 |
| |
|
27/01/00 |
by "Int19" |
|
|
|
Published by Quequero | |
Use the force, Luke |
Il target non è difficile ma il tute è ugualmente ottimo...bravo int |
Son Stanco, Son Stufo. |
| UIC's form |
|
UIC's form |
|
Difficoltà |
(X)NewBies ()Intermedio ( )Avanzato ( )Master |
Con questo semplice tute spero di aiutare alcuni di voi ad avvicinarsi a questo insteressante mondo
|
Introduzione |
|
Tools usati |
|
URL o FTP del programma |
|
Notizie sul programma |
|
Essay |
Found no known modifier or compiler.
Name
Virt size RVA Phys size  Phys
Ofs
.text 00026000h  00001000h  00026000h
 00000000h
.rdata  00003000h  00027000h
 00003000h  00000000h
.data 00009D34h
 0002A000h  00001000h  00001000h
.rsrc
000B4F28h  00034000h  00005000h
 00002000h
.neolit 000062BAh  000E9000h
 00001BCAh  00007000h
A quanto pare GetTyp dice
che il prog. non e' "packato" (si dice che un programma e' packato quando esso
e' compresso, ad ogni sua esecuzione verra' richiamata una particolare routine
interna del programma che si occupera' di decomprimere il programma in memoria
e poi eseguirlo. Per poterne modificare il codice contenuto nel file e'
necessario prima ottenere il file decompresso, per fortuna abbiamo i nostri
fidati tools che ci rendono semplice questo lavoro).CLEAN.EXE
 970.752
NEOTRACE.EXE 367.627
Adesso lanciamo
il file CLEAN.EXE e lavoriamo un po' per rimuovere il nag. Call
USER32!EndDialog <--- prima eravamo dentro a questa
call
POP EDI
<--- Arriviamo qui
XOR EAX,
EAX
POP ESI
ADD ESP, F0
RET
A
quanto pare il codice qui sopra si occupa di chiudere il nag.
414A00 CALL 4092A0
414AD5 ADD ESP, 04
414AD8
PUSH 00 <---| Parametri
per
414ADA PUSH 004161D0 |
richiamare
414ADF PUSH 00
| la funzione
414AE1 PUSH
00000226 | DialogBoxParamA
414AE6
PUSH ESI <---| (Identificati consultando
una Api-Reference)
414AE7 Call USER32!DialogBoxParamA
<--- Creazione del NAG
414AED
CMP EAX, 2 <--- (***)Arriviamo qui, EAX vale 1
414AF0 POP
ESI
414AF1 JNZ 414AF6 <---| salta se
non e' stato pigiato il pulsante "Quit"
414AF3 XOR
EAX,EAX | altrimenti
414AF5
RET <---| esce dalla
routine e dal programma
Come potete vedere ora, avremmo
anche potuto piazzare un semplice breakpoint sulla funzione DialogBoxParamA e
saremmo arrivati allo stesso punto, lo scopo del tute e' pero' quello di
mostrare un approccio che sia il piu' generale possibile per affrontare i
nag. ESP=72FD7C
414AD8 PUSH 00
--> ESP=72FD78
414ADA PUSH 004161D0
-->
ESP=72FD74
414ADF PUSH 00
-->
ESP=72FD70
414AE1 PUSH 00000226
-->
ESP=72FD6C
414AE6 PUSH ESI
-->
ESP=72FD68
414AE7 Call USER32!DialogBoxParamA --> ESP=72FD7C
ESP=72FD7C
Se noi ci limitassimo a nooppare
la call, il puntatore allo stack (ESP) avrebbe come valore 72FD68 e non quello
che dovrebbe avere se la call fosse stata eseguita (72FD7C) quindi punterebbe
a dati inconsistenti e probabilmente il prog. crashera' dopo qualche
operazione sullo stack. CALL 4092A0
ADD ESP,
04
mov eax, 1 <--- per far credere al prog.
che si e' pigiato il pulsante "Trial"
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
CMP
EAX,2
JNZ 414AF6
oppure, piu' semplicemente
cosi'... CALL 4092A0
ADD ESP, 04
mov
eax, 1
pop esi
jmp 414AF6
Le variazioni sono
molteplici, solitamente si sconsiglia di ricorrere ai nop poiche' il programma
potrebbe fare un auto-check per controllare ad esempio se compaiono sequenze
di 3 o piu' nop.
|
Un ringraziamento a tutti coloro che hanno condiviso le loro conoscenze
diffondendo tutes sull'argomento, sono davvero troppi per poterli nominare, in
ogni caso, se hai mai scritto un tute considerati pure in questa lista,
poiche' ognuno ha qualcosa da insegnare (ed io ho ancora molto da
imparare:-P).
Un saluto a tutti i compagni della UIC in particolare Ritz,
GR!SU', Syscalo, BlackDruid, AndreaGeddon, continuate cosi' gente !!!
Ed
ovviamente non manco di ringraziare tutti i papa' fondatori della UIC. Il
Socio passa e chiude, Ciau alla prossimaaaaaaaaaaa.
|
Disclaimer |
Home Anonimato
Assembly
CrackMe
ContactMe
Forum
Iscrizione
Lezioni
Links
NewBies
News
Playstation
Tools
Tutorial
Search UIC
Faq