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:
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
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
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