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

[Guida] ASM01 - Da C ad ASM - cominciamo
(Questo messaggio è stato modificato l'ultima volta il: 29/09/2012, 0:01 da digger.)

Il criceto mannaro
Messaggi: 3,536
Discussioni: 201
Registrato: 03-2011
Mix: 3,737
sono bytes che insieme formano delle istruzioni ASM
devi sapere che nella memoria del computer quello che forma il codice di un gioco o di un programma sono bytes, non troverai mai cose come :
MOV EAX,0
CMP EAX,EBX
etc etc
troverai solo il loro corrispondente in bytes.

Per capire meglio vediamo con Olly un pezzo di codice del mio amato Prato Fiorito AKA Campo Minato:

[Immagine: 0291c-37c31e88-388e-441f-875f-fd2570a13d3d.png]

bene, come vedi ci sono le tipiche istruzioni ASM,
PUSH EBP
MOV EBP,ESP
etc etc

bene, però se guardi appena a sinistra vedrai quello che VERAMENTE sta nella memoria del computer:
55
8B EC
83 EC 44

dove 55 8B EC 83 EC 44
sono tutti bytes espressi in esadecimale che rappresentano le istruzioni ASM a destra

In poche parole, l'ASM è un qualcosa che serve a noi umani per capirci qualcosa, ma la macchina ragiona con i bytes, non sa niente dell'asm

Bene, ora che ho introdotto sta cosa arriviamo alla hack.

    C++ Programming
  1. MemoryEdit((void*)ASM_QUICKPLANT,(LPVOID)"\x90\x90",2);



MemoryEdit è una funzione che ti sei scritto tu, quello che fa è (in questo caso) piazzare 2 bytes 90 90 all'indirizzo puntato da ASM_QUICKPLANT

Se guardi l'immagine sopra in olly, usando questa funzione potrei dire di piazzare 3 bytes 90 all'indirizzo 0x1001420 (guarda la prima colonna a sinistra)

devi sapere che 0x90 è in ASM il "NOP" ovvero "No Operation" ovvero NON FARE NIENTE,
quindi nel nostro caso vorrebbe dire che faremmo sparire
PUSH EBP
MOV EBP,ESP

rimpiazzandoli con 3 "non fare niente"

bene, perchè sta cosa? semplice perchè in alcuni casi non fare niente al posto di eseguire il codice originale ci permette di ottenere l'effetto hack desiderato.
Ti faccio un esempio, se trovi dove è l'indirizzo di memoria in cui ci sta l'istruzione che decrementa la stamina mentre corri, se con NOP sostituisci l'istruzione ottieni che la stamina non si decrementa piu, effetto-> stamina infinita Happywide

Comunque se facessi delle prove con le guide che ho postato sul campo minato con MHS e CE vedresti cosa intendo, li queste tecniche le ho fatte vedere


digger
28/09/2012, 23:59
#11
Cerca


Messaggi in questa discussione
ASM01 - Da C ad ASM - cominciamo - da digger - 23/09/2012, 12:53
[Nessun oggetto] - da Pocciox - 23/09/2012, 13:14
[Nessun oggetto] - da Admin - 27/09/2012, 22:40
[Nessun oggetto] - da Pocciox - 28/09/2012, 13:56
[Nessun oggetto] - da Luxor - 28/09/2012, 14:00
[Nessun oggetto] - da digger - 28/09/2012, 18:18
[Nessun oggetto] - da Pocciox - 28/09/2012, 18:39
[Nessun oggetto] - da Luxor - 28/09/2012, 18:43
[Nessun oggetto] - da digger - 28/09/2012, 19:37
[Nessun oggetto] - da Pocciox - 28/09/2012, 22:37
[Nessun oggetto] - da digger - 28/09/2012, 23:59



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