quella specie di codice che mostra il programma è codice assembler, col programma Win32dasm puoi solo leggere, per modificare devi usare un editor-esadecimale, come penso tu sappia alla fin fine i programmi sono una serie di 0 e 1, però sarebbe un po pesantuccio scrivere migliaia o milioni di 0 e 1, allore viene usata la base 16, un editor esadecimale ti farà vedere del codice macchina simile a questo:
ovviamente è a random il mio esempio, solo EB ricordo vuol dire veramente jmp in asm.codice:... EB01 AB12 AAAA AS56 9090 SDFD OP90 1234 EBEB RT45 0945 4353 ...
Dopo che hai dissasemblato con Win32dasm, se ti posizioni nella riga che contiene la informazione da modificare in basso viene indicato l'offset, quindi modificherai con dasm che dovrebbe tradurti la riga il linguaggio macchina(senza modificare effitivamente il file), quindi tu andrai nel sorgente numerico, posizionerai il caret fino a vedere lo stesso offset in basso, e sovrascriverai la parte "corretta".
E' difficile da spiegare... ci sono moltissime guide a riguardo anche a livello universitario, ora non le ho sotto mano, appena le trovo le posto.
Ah, per fare queste cose è meglio avere una buona base di asm... almeno saperlo leggere.
Un programma che ha disassembaltore/editor-esadecimale in uno è HackMan dissasembler... apparte il nome che è proprio poco originale non è male.
Un altro buono, che però è solo debugger/disassemblatore, è OllyDgb.
![]()