Disassemblare un programma

Aperto da Italia 1, 12 Agosto 2007, 01:33:59

Discussione precedente - Discussione successiva

0 Utenti e 1 Visitatore stanno visualizzando questa discussione.

Italia 1

Ragazzi, sto leggendo il libro "Hacker", dove si parla della creazione del linguaggio "Assembler" e della sua "semplicità" rispetto al dover altrimenti scrivere 0 e 1, qualcuno mi sa spiegare come funziona a grosse linee ? So che và a stringhe di 3-4 lettere (MOVE, ADD, CALL ecc..) e dà comandi direttamente alla cpu, riesco a creare un mini piccolo eseguibile ? Conosco Windasm32 per editare a quel livello, ho anche appena scaricato PEbrowseDBG, che visualizza l'assembler e l'hex, ma... al momento il cirillico mi è più chiaro :)



PC wallet TR1950x-7970-16GB DDR4 2133 - PC soffitta Ryzen9 5950x-6900xt-32GB DDR4 3000 - PC camera Ryzen9 3900x-6900xt-32GB DDR4 3000

benna

L'assembler è un linguaggio di basso livello, cioè esiste una corrispondenza uno a uno fra le istruzioni assembler e le istruzioni in linguaggio macchina.
L'istruzione ADD somma il valore contenuto in un registro al valore contenuto in un altro registro, e successivamente scrive il risultato in un terzo registro
L'istruzione MOVE scrive in un registro un valore che può essere contenuto in un registro oppure specificato dal programmatore

Se vuoi scrivere un programma l'assembler è sicuramente la scelta meno indicata, a meno che tu non voglia farlo girare su un 486, perchè sarebbe un lavoro lungo e complesso; se sei proprio deciso dai un'occhiata a questa guida
http://www.manuali.it/manuali-guide/Informatica-e-Internet/Programmazione/Assembler/Corso-italiano-di-Assembler-x86/330.htm


Ninfea

Giordy il libro hacker è anche abbastanza vecchio, credo che ci siano 5 edizioni dopo di lui, nell'ultima immagino che consiglino il C per programmare, è di alto livello e più comprensibile.


af624726

CitazioneGiordy il libro hacker è anche abbastanza vecchio, credo che ci siano 5 edizioni dopo di lui, nell'ultima immagino che consiglino il C per programmare, è di alto livello e più comprensibile.

confermo: il c è il linguaggio ad alto livello più vicino alla macchina e, a meno di nn dover arrivare ad avere performance particolari, l'assembler è sconsigliabile ;) anche perchè conoscendo bene il compilatore è molto semplice forzarlo per obbligarlo a fare scelte per le prestazioni :)
inoltre per l'assembler devi conoscere moooolto bene su cosa lo fai girare, ossia su quale processore... ti dico che in università ti fanno usare il simulatore SPIM, che emula il comportamente dei MIPS (un processore RISC per altro abbastanza datato)
se vuoi dargli 1 occhio:
http://it.wikipedia.org/wiki/Architettura_MIPS#Programmazione_e_emulatori
e
http://logos.cs.uic.edu/366/notes/MIPS%20Quick%20Tutorial.htm
:D

The Doctor: Think you've seen it all? Think again. Outside those doors, we might see anything. We could find new worlds, terrifying monsters, impossible things. And if you come with me... nothing will ever be the same again!

Italia 1

Scusate l'assenza, ma l'adsl sapete come è messo dalle mie parti.....

A me piacerebbe imparare un pò la base della programmazione, poter editare un'eseguibile quasi come mi pare, dare al pc un boost.... insomma, capire perchè ci impiega tot tempo a fare questo, quello ecc..

Hacker l'ho trovato insieme ad una rivista un paio di anni fà, questo parla dell'etica hacker, di un gruppo di ragazzi che partono dal Mit e cominciano a programmare sui vecchi pc di allora

PC wallet TR1950x-7970-16GB DDR4 2133 - PC soffitta Ryzen9 5950x-6900xt-32GB DDR4 3000 - PC camera Ryzen9 3900x-6900xt-32GB DDR4 3000

af624726

che intendi per dare al pc 1 boost??

The Doctor: Think you've seen it all? Think again. Outside those doors, we might see anything. We could find new worlds, terrifying monsters, impossible things. And if you come with me... nothing will ever be the same again!

Italia 1

Che ne so, sapere perchè i programmi hanno delle pause, fare in modo, se possibile, di accelerare notevolmente il caricamento, scoprire i cheat dei giochi, ecc..
Comunque, mi sembrava nettamente + semplice la cosa. Eppoi, l'assembler genera EXE ??

PC wallet TR1950x-7970-16GB DDR4 2133 - PC soffitta Ryzen9 5950x-6900xt-32GB DDR4 3000 - PC camera Ryzen9 3900x-6900xt-32GB DDR4 3000

af624726

CitazioneChe ne so, sapere perchè i programmi hanno delle pause, fare in modo, se possibile, di accelerare notevolmente il caricamento, scoprire i cheat dei giochi, ecc..
Comunque, mi sembrava nettamente + semplice la cosa. Eppoi, l'assembler genera EXE ??


no l'exe serve per l'so. il kernel dell'so ha la prerogativa di accedere all'hw e da win nt in su lo è in modo praticamente esclusivo (tanto è vero che all'inizio nt nn aveva nemmeno la possibilità di far girare i giochi dato che con win9x l'accesso all'hw era permesso)

The Doctor: Think you've seen it all? Think again. Outside those doors, we might see anything. We could find new worlds, terrifying monsters, impossible things. And if you come with me... nothing will ever be the same again!

Italia 1

Ostia..... praticamente, se voglio comandare direttamente la cpu tramite tastiera, che devo usare ?? Tipo: voglio dirgli ADD 6 + 3 (~)

PC wallet TR1950x-7970-16GB DDR4 2133 - PC soffitta Ryzen9 5950x-6900xt-32GB DDR4 3000 - PC camera Ryzen9 3900x-6900xt-32GB DDR4 3000

af624726

nn puoi ;):(
perchè anche scrivendolo e facendolo compilare in linguaggio macchina, come fai a darlo in pasto alla cpu? t serve 1 sistema operativo...

The Doctor: Think you've seen it all? Think again. Outside those doors, we might see anything. We could find new worlds, terrifying monsters, impossible things. And if you come with me... nothing will ever be the same again!