View
previous topic :: View
next topic |
Author |
Message |
Angelo1983 Newbie
Joined: 03
Sep 2005 Posts: 8
|
Posted: Sun Sep 04, 2005
9:54 am Post subject:
NEOLITE 2.0 |
|
|
|
Salve a tutti,
vorrei conoscere i codici per registrare un programma
ed ho scoperto con Peid che questo software è stato compresso
con Neolite 2.0
Come posso capire il linguaggio di
programmazione che utilizza questo programma ?
Saluti
Angelo
Last edited
by Angelo1983 on Sun Sep 04, 2005 11:48 am; edited 2 times in
total | |
Back to
top |
|
|
Ox87k Guru
Joined: 29 Feb
2004 Posts: 358
|
Posted: Sun Sep 04, 2005
10:49 am Post
subject: |
|
|
|
che programma è? (censura
il link!) | |
Back to
top |
|
|
bender0 Guru
Joined: 18 Jan
2004 Posts: 469 Location: ~/
|
Posted: Sun Sep 04, 2005
10:51 am Post
subject: |
|
|
|
certo che ti possiamo
aiutare, a patto che scrivi in minuscolo come tutti quanti..
ricordati che un messaggio scritto in caps ha la tendenza a
essere letto da meno persone perche' infastidite. ah,
quando hai corretto, non scrivere "bene, ho corretto, ora mi
aiutate?' perche' e' ridicolo
TYCLO!!
_________________ b0 | |
Back to
top |
|
|
Death_Reaver Newbie
Joined: 24
Feb 2005 Posts: 24
|
Posted: Sun Sep 04, 2005
11:22 am Post
subject: |
|
|
|
Prima di tutto se è
protetto con Neolite2 lo devi unpackare Puoi trovarti
l'unpacker o fare a "mano". Io sceglierei la seconda.
Neolite è facile, se ti serve una mano (se decidi per il
manual unpacking) avvertimi. Per quanto riguarda il
linguaggio con cui è scritto, questo puoi vederlo con RDG
Packer Detector o dopo unpackato lo vedi con PeiD.
Comunque non ti puoi studiare il linguaggio tramite il
disassembler!! Casomai in questo modo ti studi un pò di
assembler poichè è quasi 'impossibile' ricondurre il codice
già linkato al codice scritto in linguaggi di alto livello
Saluti §-Death_Reaver-§
| |
Back to
top |
|
|
Angelo1983 Newbie
Joined: 03
Sep 2005 Posts: 8
|
Posted: Sun Sep 04, 2005
11:31 am Post
subject: |
|
|
|
Ok Bender0
grazie
per il tuo suggerimento al carattere maiuscolo.
Comunque il programma in questione si chiama Pacterm
3.0 hxxp://www.cssincorp.com/pacterm/ [EDIT by
Quake2: faccio io ]
Ho
provato con il Neolite ad estrapolare il file exe in questione
ma mi dice che il file è compresso e non lo può estrarre (del
Neolite ho la versione DEMO). Se riesco mando uno screenshot
dell'errore
Saluti | |
Back to
top |
|
|
bender0 Guru
Joined: 18 Jan
2004 Posts: 469 Location: ~/
|
Posted: Sun Sep 04, 2005
12:27 pm Post
subject: |
|
|
|
come Ox87k ti ha detto,
devi censurare il link, ovvero modificare qualcosa nelle parti
piu' ovvie... tipo "www"->"wxx" o "http"->"hxxp",
altrimenti gli utenti, clickando direttamente sul link
lasciano il referrer della uic nei log del sito del programma,
che non e' una buona
cosa. _________________ b0 | |
Back to
top |
|
|
Angelo1983 Newbie
Joined: 03
Sep 2005 Posts: 8
|
Posted: Sun Sep 04, 2005
3:34 pm Post subject:
|
|
|
|
ok Death_Reaver,
non riesco proprio a fare l'unpacking quindi dimmi tu
dove posso trovare un buon unpacker oppure spiegami la
procedura per farlo a mano. Su internet ci sono molti siti ma
la maggior parte sono scritti in inglese
Saluti | |
Back to
top |
|
|
Zero_G Moderator
Joined: 20 May
2004 Posts: 997 Location: The Dark Side of the
Moon
|
Posted: Mon Sep 05, 2005
9:43 am Post subject:
|
|
|
|
Angelo, che versione stai
cercando di unpackare, la 1.7 o la 3.0?
-=[Zero_G]=- _________________ "To see a World in a grain of Sand,
Hold Infinity in palm of your Hand." | |
Back to
top |
|
|
Ox87k Guru
Joined: 29 Feb
2004 Posts: 358
|
Posted: Mon Sep 05, 2005
11:40 am Post
subject: |
|
|
|
(xo quasi 20mb
-.-'!) | |
Back to
top |
|
|
Death_Reaver Newbie
Joined: 24
Feb 2005 Posts: 24
|
Posted: Mon Sep 05, 2005
12:08 pm Post
subject: |
|
|
|
OK: 1) carica il
programma su ollyDBg 2)Appena ha finito,premi F8 e si vede
entro le prime 10 righe un JMP EAX, mettici un breakpoint
3)premi F9 e appena si ferma sul JMP EAX, leva il
Breakpoint e premi F8 4)ora con OllyDump(o qualsiase
PeEditor) fai un bel dump del processo ma NON CHIUDERE OLLY
5)Apri ImportRec, seleziona il processo vittima, Premi
"IAT AUTOSEARCH" e successivamente "GetImport". A questo punto
dovrebbero essere risolti tutti gli indirizzi e quindi puoi
premere "Fix Dump" e selezionare il file creato prima con
Olly. 6) è tutto fatto, ora il file dumpato da olly è
completamente funzionante. Se non capisci qualcosa,
dimmelo Saluti §-Death_Reaver-§
| |
Back to
top |
|
|
Angelo1983 Newbie
Joined: 03
Sep 2005 Posts: 8
|
Posted: Mon Sep 05, 2005
9:23 pm Post subject:
|
|
|
|
Allora andiamo con
ordine....
1) la versione è la 3.0 (è una versione
ancora in beta testing) ma sicuramente migliore della vecchia
1.7
2) per Death reaver : adesso seguo attentamente le
tue istruzioni vediamo se ci riesco...se ho qualche problema a
reperire i programmi necessari ti faccio sapere ok ?
Saluti
Angelo | |
Back to
top |
|
|
Angelo1983 Newbie
Joined: 03
Sep 2005 Posts: 8
|
Posted: Mon Sep 05, 2005
10:45 pm Post
subject: |
|
|
|
1) ho caricato Ollydbg
2) ho aperto il file .exe 3) ho premuto il tasto F8 e
ho trovato "MOV EAX" e non "JMP EAX" 4) ho inserito un
breakpoint con il tasto F2 ed il primo campo si è colorato di
rosso 5) ho premuto F9 ed si è avviato il programma e per
andare avanti ho cliccato su "DEMO MODE" e come al solito mi
dice che il programma è già scaduto dei 30 giorni
sono
adesso su una stringa 7C91EB94 RETN e mi sono bloccato visto
che invece dovrei vedere una stringa JMP EAX
Forse c'è
qualcosa che sbaglio io oppure ho capito male ?
Saluti
Angelo | |
Back to
top |
|
|
Death_Reaver Newbie
Joined: 24
Feb 2005 Posts: 24
|
Posted: Tue Sep 06, 2005
8:18 pm Post subject:
|
|
|
|
Almeno da quanto ho visto
dalla cavia dataci da Quequero packata con Neolite 2, la prima
istruzione dovrebbe essere un JMP. Dopo averlo eseguito (con
F8 ) ci dovrebbe essere tra le prime righe visibili un JMP
EAX. Adesso mi faccio uno screenshot e lo posto.
§-Death_Reaver-§ | |
Back to
top |
|
|
Angelo1983 Newbie
Joined: 03
Sep 2005 Posts: 8
|
Posted: Tue Sep 06, 2005
8:44 pm Post subject:
|
|
|
|
Ma forse il problema nasce
dal fatto che anche se vado in modalità DEMO il programma si
chiude automaticamente perchè sono passati i 30 gionri di
prova e al posto di vedere il JUMP vedo un'altra stringa.
In ogni caso quando faccio il Dump con OllyDump ed
avvio ImportREC seguendo le istruzioni non succede nulla e mi
da un messaggio di errore "could not find anithing good at
this OEP"
Di conseguenza mi blocco e non riesco ad
andare avanti con la procedura
Saluti
Angelo | |
Back to
top |
|
|
Death_Reaver Newbie
Joined: 24
Feb 2005 Posts: 24
|
Posted: Wed Sep 07, 2005
9:41 am Post subject:
|
|
|
|
Ho deciso: Visto che a Que
gli sevono i tutorial del UIC unpacker project (poichè fino a
adesso l'unico a fare un tutorial è stato pnluck su aspack)
ora faccio un bel tutorial su neolite 2 e lo mando a Que, così
quando uppa il sito lo puoi leggere!!
§-Death_Reaver-§ | |
Back to
top |
|
|
Zero_G Moderator
Joined: 20 May
2004 Posts: 997 Location: The Dark Side of the
Moon
|
Posted: Wed Sep 07, 2005
12:48 pm Post
subject: |
|
|
|
bravo Death_Reaver, ottima idea!
se contribuiamo un po' tutti al packer project avremo
parecchio materiale molto interessante da far invidia agli
siti di Reversing...
-=[Zero_G]=- _________________ "To see a World in a grain of Sand,
Hold Infinity in palm of your Hand." | |
Back to
top |
|
|
Angelo1983 Newbie
Joined: 03
Sep 2005 Posts: 8
|
Posted: Wed Sep 07, 2005
1:47 pm Post subject:
|
|
|
|
ecco il risultato dal parte
mia :
1) carica il programma su ollyDBg (FATTO)
2)Appena ha
finito,premi F8 e si vede entro le prime 10 righe un JMP EAX,
mettici un breakpoint IO
TROVATO UN JUMP EAX ED HO MESSO IL BREAKPOINT CON F2
3)premi F9 e appena si ferma sul JMP EAX, leva il
Breakpoint e premi F8 (CON
F9 SI AVVIA IL PACTERM E MI CHIEDE LA REGISTRAZIONE...CLICCO
SU DEMO ED IL PACTERM SI CHIUDE E OLLYDBG SI FERMA SULLA
STRINGA 7C91EB94 RETN) TOLTO POI IL BREAKPOINT DEL JUMP EAX E
PREMENDO F8 NON SUCCEDE NULLA
4)ora con
OllyDump(o qualsiase PeEditor) fai un bel dump del processo ma
NON CHIUDERE OLLY (FATTO)
5)Apri
ImportRec, seleziona il processo vittima, Premi "IAT
AUTOSEARCH" e successivamente "GetImport". A questo punto
dovrebbero essere risolti tutti gli indirizzi e quindi puoi
premere "Fix Dump" e selezionare il file creato prima con
Olly. (APRENDO IMPORTREC
BISOGNA SELEZIONARE PRIMA IL FILE .EXE IN QUESTIONE E
CLICCANDO SU "ITAT AUTOSERARCH" LEGGO QUESTO ERRORE ""could
not find anithing good at this OEP"
A QUESTO
PUNTO MI SONO FERMATO E PENSO CHE CI SIA QUALCOSA CHE NON VA
SU COME ESEGUO LA PROCEDURA OPPURE SU COME E' STATA DESCRITTA.
Saluti
Angelo | |
Back to
top |
|
|
Zero_G Moderator
Joined: 20 May
2004 Posts: 997 Location: The Dark Side of the
Moon
|
Posted: Thu Sep 08, 2005
4:43 pm Post subject:
|
|
|
|
bene, tramite pm ho saputo
che hai unpackato l'exe e questo è già qualcosa, anche perché
la procedura di Death_Reaver funziona alla perfezione con
questo packer.
adesso passiamo alla registrazione:
1) allora, innanzitutto le informazioni sui cosidetti
set di registrazione sono memorizzati nel file kterm.ini,
quindi se vuoi resettare i valori per seguire la verifica del
seriale devi cancellare i dati presenti sotto la voce
CURRENTSET1 o 2 o 3 ... a seconda del set che hai scelto la
prima volta.
2) apri il file con OllyDbg e clicca
sulla E in alto; dalla lista scegli USER32.DLL, premi il
destro, fai "View Names..." e da quella lista metti un
breakpoint con F2 su MessageBox.
3) inserisci dei dati
a caso, premi OK e ti ritroverai dentro USER32; premi F8 fino
a che non compare il messaggio d'errore, poi altre due volte e
dovresti essere rientrato in PacTerm.exe. premi CTRL+F9 per
eseguire fino al RETN poi premi F8 un'altra volta e sarai al
livello della procedura che controlla effettivamente il
seriale [indirizzo 0046DB6C] (te ne accorgi dalle stringhe
referenziate che contengono palesemente i pezzi del seriale)
4) scorri in alto fino a che non trovi l'inizio di
questa funzione (la vedi per via della classica sequenza PUSH
EBP -> MOV EBP,ESP ... e dagli int3 di riempimento) e
mettici un breakpoint [indirizzo 0046D670]; riavvia il tutto
con CTRL+F2, cancella ancora i dati da kterm.ini e lancia il
programma con F9 che breakkerà proprio nella funzione di
controllo.
5) se presente in kterm.ini il seriale
viene prima caricato da lì, altrimenti esce la maschera di
inserimento ed è questo il nostro caso, dato che abbiamo
cancellato i dati dal file, tanto se lavoriamo sul post-check
funzionerò anche quando li legge da lì; siamo a 0046D6670,
scorri in giù con F8 fino alla call che mostra la finestra e
recupera i dati inseriti [indirizzo 0046D74F], inserisci
nuovamente dati a caso e premi OK.
6) scorrendo ancora
con F8 dopo poco c'è un JMP (0046D7A7) che ti porta alla
routine in cui siamo atterrati prima agganciandoci al
MessageBox che comincia da 0046D849; fino a 0046D960 vai giù
tranquillo perché sta solo prendendo i dati dalla finestra per
metterli nel solito file, mentre a 0046D962 c'è un jnz che
porta parecchio lontano, quindi per adesso non consideriamolo,
ma ricordiamoci che c'è, magari mettendo una label CHECK2
all'indirizzo puntato (0046DC2B). poi fino a 0046DB42 ancora
giù tranquillo tanto lo lasciamo bollire nel suo brodo di
controlli che sta facendo...
7)
vicino a 0046DB44 c'è questa cosa:
Code: |
0046DB3A CALL
005B8A20 0046DB3F ADD
ESP,0C 0046DB42 TEST
EAX,EAX 0046DB44 JNZ
SHORT 0046DB58 0046DB46 MOV
ECX,SS:[EBP-33C] 0046DB4C
CMP ECX,SS:[EBP-338]
0046DB52 JE
<SECONDCHECK> 0046DB58 CMP
DWORD PTR SS:[EBP+C],0 0046DB5C
JNZ SHORT 0046DB6E
0046DB5E PUSH 0
0046DB60 PUSH 0
0046DB62 PUSH
0063C308
; ASCII "Callsign, Serial
Number\nUser Level or Key Incorrect,\nPress OK and the
registration\nwindow will open" 0046DB67
CALL 005E0B6A 0046DB6C
JMP SHORT 0046DB7C
0046DB6E PUSH 0
0046DB70 PUSH 0
0046DB72 PUSH
0063C370
; ASCII "Callsign, Serial
Number\nUser Level or Key Incorrect for second TNCs
call,\nPress OK and the registration\nwindow will
open" |
e
messo così mi sembra abbastanza chiaro che se si prende il JNZ
a 0046DB44 si casca comunque male perché ci sono i messaggi
d'errore, mentre se non lo prendiamo finiamo proprio a quella
locazione che avevamo etichettato prima. bene, noppiamo
momentaneamente il JNZ e trasformiamo il JE in JMP così
vediamo come va a finire questa storia!
8 )
arrivati sani a salvi a 0046DC2F vedi che sotto il JLE ci sono
tre call uguali ognuna avente come argomento un dato di
registrazione (call/serial/key), quindi è facile supporre che
dato che ora sono considerate buone vengano scritte da qualche
parte, perciò quel JLE io proverei a nopparlo...
9) premendo F8 fino al RETN e poi un altro
paio di volte risaliamo di due livelli fino a trovarci davanti
due simpatiche stringhe "The serial works only for..." e "The
program will now close..." che continuando a steppare con F8
ci accorgiamo che vengono cmq saltate... hey il nostro
intervento ha sortito buon effetto, allora!
10)
fiduciosi(?) premiamo F9 e... bastardo! è partito ma in versione demo per 30 giorni!
ma noi non ci scoraggiamo ed usiamo la stessa strategia
del MessageBox, quindi prima salviamo i nostri progressi
salvando le modifiche con "Copy to Executable" --> "All
modifications" --> "Copy all", poi il tasto destro e "Save
file" con un nome diverso dall'originale.
11) con lo
stesso procedimento di prima, risettiamo un breakpoint su
MessageBox, risaliamo di due livelli e stavolta rientriamo a
004360E4; da lì scorrendo un po' in alto e dando un'occhiata
veloce ai salti condizionati si vede facilmente (è pieno di
stringhe!) che l'unico modo per forzarlo a considerare il
nostro seriale non come demo è evitare come la peste il blocco
che va da 00435D04 a 0043611B e dopo varie menate per
controllare una blacklist di seriali, il salto condizionato
che fa la differenza è proprio quello a 00435D04 che porta
all'inizializzazione vera e propria del programma che va a
testare le porte di comunicazione. perciò, mettiamo un bel JMP
al posto del JNZ, risalviamo le modifiche in un altro file e
lanciamolo senza debugger (eheh ve lo dico perché l'ho già
provato... )
12)
funziona! ngguul'!
via giù, torno a studiare... buona
serata a tutti!
-=[Zero_G]=- _________________ "To see a World in a grain of Sand,
Hold Infinity in palm of your Hand." | |
Back to
top |
|
|
Angelo1983 Newbie
Joined: 03
Sep 2005 Posts: 8
|
Posted: Fri Sep 09, 2005
8:18 pm Post subject:
come si salva ? |
|
|
|
Penso di aver fatto
correttamente la procedura ma quando avvio il risultato per
andare avanti devo sempre cliccare su DEMO visto che non mi
accetta i codici della registrazione.
Ecco quello che
ho fatto :
01 cancellare i dati del kterm.ini 02
aprire il file con OllyDbg 03 aprire la user32.dll e
mettere il breakpont su Messagebox 04 avviare il file
pacterm.exe ed inserire 3 codici caso 05 premere F8 ed
andare nella stringa 0046D670 06 sostituire il contenuto
della stringa 0046D670 & 71 con INT3 07 mettere un
breakpoint sulla stringa 0046D670 08 riavvire OllyDbg con
CTRL+F2 09 cancellare i dati del kterm.ini 10 avviato
il file pacterm.exe ed inserIire 3 codici a caso 11
premere F8 ed andare nella stringa 0046DB44 e sostituire il
contenuto con "NOP" 12 andare nella stringa 0046DB52 e
sositituire JE con JMP 13 andare nella stringa 0046DC2F e
sostituire il contenuto con "NOP" 14 premere SHIFT+F9 (2
VOLTE) 15 salvare il tutto 16 riaprire il file con
Ollydbg 17 rifare la procedura della user32.dll 18
premere F8 ed andare sulla stringa 00435D04 e cambiare JNZ COn
JMP 19 salvare il tutto
Ho forse sbagliato
qualcosa ?
Angelo | |
Back to
top |
|
|
|