Oppure

Loading
06/06/09 20:05
cassin.simone
E di quale utilità è studiarlo seza applicare? A cosa servirebbe studiare senza applicazione?
aaa
07/06/09 8:37
theprogrammer
Ti fa comprendere molto meglio alcuni meccanismi "interni" che ti rendono semplici alcuni concetti che applicherai in altri ambiti.

Per spiegarmi meglio, io ho iniziato con l'assembly (CPU 6502, per la cronaca) e per anni ho programmato con l'assembly (erano tempi in cui serviva).
Quando sono passato al C, il concetto di puntatore (che era ostico per tanti ...) per me era semplicissimo (anzi scontato) e ho acquisito il linguaggio molto velocemente.

L'assembly, inoltre, ti mette a contatto con la "rappresentazione interna" dei dati e questo ti permette di capire molto velocemente (in seguito) argomenti legati alla criptazione, o allo scambio di dati in rete, e altri argomenti ...

aaa
07/06/09 8:52
cassin.simone
Postato originariamente da theprogrammer:

Ti fa comprendere molto meglio alcuni meccanismi "interni" che ti rendono semplici alcuni concetti che applicherai in altri ambiti.

Per spiegarmi meglio, io ho iniziato con l'assembly (CPU 6502, per la cronaca) e per anni ho programmato con l'assembly (erano tempi in cui serviva).
Quando sono passato al C, il concetto di puntatore (che era ostico per tanti ...) per me era semplicissimo (anzi scontato) e ho acquisito il linguaggio molto velocemente.

L'assembly, inoltre, ti mette a contatto con la "rappresentazione interna" dei dati e questo ti permette di capire molto velocemente (in seguito) argomenti legati alla criptazione, o allo scambio di dati in rete, e altri argomenti ...



Grazie delle spiegazioni!:k:
SC
aaa
07/06/09 9:20
nick0
Postato originariamente da theprogrammer:
Imparare l'assembly e' utile a livello formativo ma, oggi come oggi, e' praticamente inutile.


sono quasi d'accordo però un pentester deve sapere l'assembler (vedi shellcode e attacchi di buffer overflow)
aaa
07/06/09 9:27
theprogrammer
Postato originariamente da nick0:
sono quasi d'accordo però un pentester deve sapere l'assembler (vedi shellcode e attacchi di buffer overflow)


Siamo pratici ... quanti di voi lavorano per una società in cui vi occupate di simili argomenti?

E' in questi casi che si approfondisce l'assembly, non il contrario ...

Ovvero, se mi serve in ambito lavorativo (caso molto raro) studio tutto quello che riguarda l'assembly, non lo studio per cercare un lavoro in quell'ambito.

Anche perche', l'assembly e' legato strettamente all'hardware ... se tu hai studiato tutta la vita x86, se devi lavorare con SPARC, non dico che inizi da zero ma ...
aaa
07/06/09 10:06
cassin.simone
Non ho capito però una cosa: posso programmare solo su un processore con assembly?
aaa
07/06/09 10:28
theprogrammer
Postato originariamente da cassin.simone:

Non ho capito però una cosa: posso programmare solo su un processore con assembly?


L'assembly e' l'insieme dei codici operativi di una CPU (meglio, di una famiglia di CPU).

Dovrai quindi scegliere la CPU ...
aaa
25/06/09 16:19
se proprio hai la smania di programmare qualcosa in assembly, allora puoi partire da un semplice programmino in C. Lo compili con Visual Studio, dopodiché ti fai mostrare dall'editor la versione "Mixed C/Assembly" (non ricordo la dicitura corretta), che affianca al codice C la corrispondente traduzione in Assembly x86.

Se lavori su linux, puoi usare il programma da riga di comando objdump, che fa la stessa cosa.

In entrambi i casi il sorgente deve essere compilato con le opzioni di debugging attive, altrimenti il file compilato perderà i riferimenti alle righe di codice corrispondenti.

Funziona con tanti linguaggi, ma il C è più facile da rapportare al corrispondente ASM, in quanto le sue istruzioni sono molto elementari e non supporta costrutti particolarmente avanzati come operatori overloadati o funzioni virtuali che complicherebbero in parte la comprensione del codice ASM ottenuto