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