Discussione [TUT] Argument d'avvio & Argument d'avvio con MsgBox Error

Stato
Discussione chiusa ad ulteriori risposte.

d3vil401

Utente Platinum
3 Gennaio 2009
2,077
106
1,055
1,043
Non so voi ma io non ho mai visto una guida su come farlo.
Tanto tempo fa c'era di moda l'avvio del launcher tramite un argument,questo è utile se si vuole far partire il launcher SOLO dall'autopatcher.
Ovviamente esistono metodi per bypassare questo metodo,ma è pur sempre meglio di niente!

In questa guida vi spiego come farlo,ma necessitate di alcuni strumenti:

OllyDBG (Io uso il mio amato OllyICE)
Un cervello (Aiai,molti di voi qui si fermeranno di leggere,sanno che leggere assembly senza conoscerlo potrebbe mandare in collasso il loro sistema nervoso)
Due mani
Minima conoscenza dell'Assembly altamente consigliata.
Minima dimestichezza con Olly.


Time to Reverse - Starting Argument Semplice

Nell'area della CPU facciamo un bel click sinistro e selezioniamo
Codice:
Search for > All referenced text strings
Tasto sinistro
Codice:
Search for text

Digitiamo
Codice:
--hackshield

Bene,ora sappiamo esattamente la posizione a cui punta il nostro PUSH per la verifica della presenza della parola --hackshield tra gli arguments.

Quindi cerchiamo il comando
Codice:
PUSH [ADDRESS]

Dove [ADDRESS] è l'Address della stringa --hackshield,nel mio caso

00740E78

Quindi cercherò
Codice:
PUSH 00740E78

Ed infatti eccolo qua:
mhj4k.png

Subito sotto ci ritroviamo un bel JNZ(Jump if Not Zero)

Doppio click sull'istruzione e quindi lo sostituiamo con un JE
Infine facciamo tasto sinistro e
Codice:
Copy > Select all
Poi
Codice:
Copy to executable > selection
Tasto sinistro sulla nuova finestrella
Codice:
Save File

Quindi ora diventa facile,prendiamo un Hex Editor e cerchiamo --hackshield e lo modifichiamo come meglio crediamo.

Time to Reverse - Starting Argument with MsgBox

Facciamo tutto il procedimento di prima,questa volta però aggiungere una MessageBox che ci avvisa che non possiamo avviare il Launcher per via dell'argument errato.

Sempre con Olly,dopo aver messo JE al posto di JNZ,seguiamo dove porta.
Noteremo la presenza di una CALL,nel mio caso
Codice:
call    0063F020

Premiamo INVIO così la seguiamo e noteremo la presenza di un JNZ,questo JNZ porta a sua volta ad un JMP subito dopo un RET.
Codice:
0063F026   /75 01           jnz     short 0063F029
0063F028   |C3              retn
0063F029  ^\E9 C1FFFFFF     jmp     0063EFEF

Modificate quel JNZ con un JMP.
Andiamo quindi sul JMP seguente e premiamo INVIO,così vediamo dove porta.
Noteremo quindi la presenza di 2 CALL,noi dobbiamo seguire la seconda CALL.
Perfetto,ora siamo pronti per patchare ancora.

Lungo il procedimento incontriamo quindi un altro JE.
21k9vlj.png

Modifichiamo con un JMP.
Ci ritroviamo quindi un altro JE,stavolta dobbiamo NOParlo.
Tasto sinistro
Codice:
Binary > Fill with NOPs

Bene,ora salvate tutto e noterete che se non si avvia il Launcher con l'argument giusto questo darà un errore visibile.
Teoricamente potremmo già fermarci...invece no!
Vogliamo personalizzare questo errore,no?
Bhe,questo è facile,basterà usare un Hex Editor e modificare quelle stringhe.
Quindi questo sarà il risultato:
2gx1ppf.png

Ovviamente,io ho lasciato la stringa che indica il percorso del file,
ma potete rimuovere anche quella NOPando anche la funzione che trova il percorso e lo stampa sul testo della MessageBox.

Se non avete capito una mazza,non chiedetemi aiuto.
Se volete sapere quello che state facendo,studiate Reverse Engineering.
Io non vi faccio da maestro
 
Stato
Discussione chiusa ad ulteriori risposte.