Benvenuto! Per postare e godere delle funzionalità del forum registrati, occorrono pochi secondi ed è gratis!

[Guida] MHS - Autohack (uso del debugger)
(Questo messaggio è stato modificato l'ultima volta il: 15/03/2011, 23:09 da digger.)

Il criceto mannaro
Messaggi: 3,536
Discussioni: 201
Registrato: 03-2011
Mix: 3,737
Ciao a tutti,
l'ultima volta ho postato una guida di base per far conoscere MHS.
( vedi qui:

[Per vedere i link devi REGISTRARTI.]

)

Prima vi dico cosa vogliamo ottenere per aver chiare le idee, poi proseguiamo.
L'idea è di usare MHS per far si che il timer di Prato Fiorito (winmine) resti fermo, cosi possiamo vincere facendo i fighi che abbiamo finito in 1 secondo Happywide
Lo so è una cavolata, ma serve giusto per dimostrare alcune caratteristiche di MHS

Voi direte, ma non l'hai già fatto con la prima guida?
Si, ma li lockando la memoria, questa volta invece vedremo una cosa molto piu interessante, che assomiglia a quello che si fa con le hack di warrock (il famoso WriteAsm che molti conoscono).
Ovvero cambieremo il codice del gioco (winmine) per dirgli che NON deve incrementare il valore del timer.

Riprendo quanto detto nella prima guida, però cambio il finale, ovvero, facciamo tutto come nella guida precedente, ma ci fermiamo al momento in cui abbiamo trovato l'indirizzo che ci interessa e lo abbiamo doppiocliccato facendolo comparire nella finestra di destra.

Bene, a questo punto avevamo questa situazione:
[Immagine: 14mhs.png]

ok, volendo possiamo anche rinominare quell'indirizzo, ma di fatto non è obbligatorio cosi possiamo procedere con un tasto destro sull'indirizzo, compare un menu contestuale come questo:
[Immagine: 01mhs.png]

selezioniamo la voce Find what writes this address (Attaches the debugger)

Cosa stiamo per fare con questa selezione?
Semplice, stiamo collegando il debugger interno di MHS al processo winmine.exe al fine di scoprire quale parte del codice di winmine.exe va a scrivere a quell'indirizzo di memoria che abbiamo trovato.

Perchè cerchiamo chi ci scrive?
Semplice, perchè se troviamo chi ci scrive possiamo modificarlo in modo che non ci scriva piu Happywide

Procediamo
Allora la finestra che esce è tipo questa qui:
[Immagine: 02mhs.png]

Dallo screenshot non si vede ma siamo nella tab che si chiama "AUTOHACK"
A sinistra c'è il nostro indirizzo di memoria che abbiamo trovato prima, subito sotto al momento non c'è niente ma ci sarà tra poco, a destra invece vediamo del codice assembly di non sappiamo cosa ma non ci interessa al momento.

Clicchiamo (singolo click) sull'indirizzo a sinistra.
Appena il codice andrà a riscrivere la memoria, in basso comparirà l'indirizzo dove si trova il codice responsabile della modifica del nostro valore, come si vede qui:
[Immagine: 03mhs.png]

Notate nella colonna "Disassembly" che c'è un'istruzione che inizia per INC ebbene questa si occupa appunto di incrementare un valore (memoria o registro).

Andiamola a vedere nel suo contesto.
Tasto destro sull'istruzione, dal menu Goto in current tab
[Immagine: 04mhs.png]

cosi facendo ci comparirà sulla destra il codice del programma e selezionata l'istruzione incriminata:
[Immagine: 05mhs.png]

Ora vogliamo cambiare quell'istruzione per fare in modo che il gioco NON la esegua piu, quindi sulla riga tasto destro e selezioniamo Assemble
[Immagine: 06mhs.png]

Nella finestrella Assemble che esce viene riportata la riga di codice per permetterci di editarla:
[Immagine: 07mhs.png]

Ora al posto del codice esistente ci scriviamo NOP che vuol dire No Operation , ovvero, non fare niente, premiamo quindi OK

Una volta dato l'ok vediamo che il codice nella finestra è cambiato e al posto dell'INC abbiamo una serie di NOP:
[Immagine: 09mhs.png]

Facciamo un passo indietro a prima della modifica.
Vorrei farvi notare che se dovete mettere un NOP (e non altre istruzioni) potevate anche semplicemente selezionare la voce NOP selected:
[Immagine: 10mhs.png]

Se ora andiamo avanti a giocare vedremo che il timer resterà sempre fermo.
Anche ricominciando la partita il timer resterà fermo a 1 come si vede qui:
[Immagine: 11mhs.png]

perchè giustamente ormai il codice è modificato e non torna piu a posto.

Alla prossima
ciao
Digger








digger
15/03/2011, 23:08
#1
Cerca

ZioPaperino VIP
Messaggi: 2,350
Discussioni: 667
Registrato: 03-2011
Mix: 0
Ma lol

15/03/2011, 23:14
#2
Cerca

Il criceto mannaro
Messaggi: 3,536
Discussioni: 201
Registrato: 03-2011
Mix: 3,737
eh lol


digger
15/03/2011, 23:19
#3
Cerca


Discussioni simili
Discussione Autore Risposte Letto Ultimo messaggio
  MHS - Autohack (uso del debugger) Templeman22 9 2,470 10/08/2011, 14:18
Ultimo messaggio: Skyline@69
  [Guida] Visual C++ Debugger digger 4 2,089 24/07/2011, 14:44
Ultimo messaggio: digger



Utenti che stanno guardando questa discussione: 1 Ospite(i)