Quale assemblea dovrei imparare? [chiuso]

4

Voglio imparare il montaggio, ma non sono sicuro di quale set di istruzioni (se è corretto?) Dovrei imparare?

Ho una precedente esperienza in programmazione e ho conseguito una laurea in Informatica ma incredibilmente non è mai stato coperto.

Ho bisogno di imparare le basi, un puntatore su quali risorse dovrei imparare.

Voglio imparare: terminologia, impostazione dell'ambiente, ciao mondo, su cui le istruzioni si concentrano per i motivi che dettaglio nel prossimo paragrafo.

Userò questo con la mia esperienza C / WinAPI per lo sviluppo di malware (faccio gli impegni di Red Team) e per il reverse engineering. Un breve background dei diversi set di istruzioni sarebbe ottimo, ma al momento il mio obiettivo è il 99% su Windows.

Mi piace vedere cosa usano i "grandi ragazzi" in termini di Stuxnet, o come i prodotti di grandi dimensioni come Photoshop sono stati decodificati.

Modifica Potrei sbagliarmi ma questo tutorial sembra fare un programma in assembly che funzioni su ogni CPU?

https://www.codejuggle.dj/creating-the-smallest-possible-windows-executable-using-assembly-language/

Quindi ora sono molto confuso!

    
posta user5623335 15.06.2018 - 17:33
fonte

3 risposte

7

Il mio consiglio è di imparare innanzitutto MIPS per capire come funzionano esattamente le chiamate heap e stack e OS, quindi passare a x86 poiché si desidera concentrarsi sullo sviluppo di malware per Windows.

EDIT: Perché pensi che funzioni su ogni CPU? L'articolo stesso afferma solo che funziona su tutte le versioni di Windows e nient'altro.

    
risposta data 15.06.2018 - 17:48
fonte
2

Il mio consiglio: Impara i set di istruzioni e la tecnologia che utilizza la CPU della tua macchina. È il posto che userai per preparare i tuoi laboratori e fare le tue esperienze per imparare.

Se stai usando la CPU Intel nella tua macchina, impara quell'argomento. Intel aveva una documentazione molto buona.

Se stai usando una CPU ARM, allora impara le istruzioni ARM dato che sono leggermente diverse da Intel x64 ...

Le nozioni di base non differiscono molto dalla cpu in modo da essere in grado di adattarsi in breve tempo.

    
risposta data 15.06.2018 - 17:43
fonte
2

Se vuoi iniziare con le basi assolute, potresti provare MCS-51, un semplice set di istruzioni usato su microcontrollori come l'8051. Ti aiuterà a imparare i fondamenti dell'assemblaggio. È spesso la prima lingua di assemblaggio insegnata nelle classi a causa della sua natura semplice ma onnipresente. Accanto a ciò, MIPS è un ISA RISC piuttosto semplice con istruzioni di dimensioni fisse ed è utile per l'apprendimento.

    
risposta data 15.06.2018 - 21:23
fonte

Leggi altre domande sui tag