Forumzone Community

Sistemi Operativi e applicazioni => Microsoft Windows e applicazioni => Programmazione => Discussione aperta da: Italia 1 il 12 Agosto 2007, 01:33:59

Titolo: Disassemblare un programma
Inserito da: Italia 1 il 12 Agosto 2007, 01:33:59
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 :)

(https://www.forumzone.it/public/uploaded/Italia%201/200781213351_disa1.jpg)

Titolo: Disassemblare un programma
Inserito da: benna il 12 Agosto 2007, 11:24:34
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

Titolo: Disassemblare un programma
Inserito da: Ninfea il 12 Agosto 2007, 11:49:17
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.

Titolo: Disassemblare un programma
Inserito da: af624726 il 12 Agosto 2007, 13:34:31
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

Titolo: Disassemblare un programma
Inserito da: Italia 1 il 13 Agosto 2007, 14:57:51
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

Titolo: Disassemblare un programma
Inserito da: af624726 il 13 Agosto 2007, 18:09:29
che intendi per dare al pc 1 boost??

Titolo: Disassemblare un programma
Inserito da: Italia 1 il 13 Agosto 2007, 18:14:20
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 ??

Titolo: Disassemblare un programma
Inserito da: af624726 il 13 Agosto 2007, 18:24:36
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)

Titolo: Disassemblare un programma
Inserito da: Italia 1 il 13 Agosto 2007, 18:32:51
Ostia..... praticamente, se voglio comandare direttamente la cpu tramite tastiera, che devo usare ?? Tipo: voglio dirgli ADD 6 + 3 (~)

Titolo: Disassemblare un programma
Inserito da: af624726 il 13 Agosto 2007, 18:36:45
nn puoi ;):(
perchè anche scrivendolo e facendolo compilare in linguaggio macchina, come fai a darlo in pasto alla cpu? t serve 1 sistema operativo...

Titolo: Disassemblare un programma
Inserito da: Italia 1 il 13 Agosto 2007, 18:39:26
Capisco.......