windows - Vil du lære at samle, forvirret om hvor du skal starte

Indlæg af Hanne Mølgaard Plasc

Problem



Bare for helvede, har jeg været interesseret i at lære at samle. Problemet er, at jeg ikke kan finde et godt udgangspunkt ...


Der ser ud til at være mange montører til rådighed (FASM, NASM, YASM, MASM), men hver har deres egen separate syntaks, kommandoer og funktioner. FASM synes at være den mest bekvemme, da det kan kompilere eksekverbare filer uden en linker, men jeg har ikke kunnet finde nogen vejledninger til at starte mig. Alle de 'Hello World' eksempler jeg har set er 16 eller 32-bit, men Jeg kører på 64-bit Windows, så ingen af ​​dem arbejder. De Windows-eksempler, der følger med FASM, fungerer, men jeg ønsker ikke at komme ind i Windows-programmer lige fra starten, jeg vil først forstå det grundlæggende.


Kan nogen pege på mig i den rigtige retning?

Bedste reference


Hvis du vil lære at læse samling, anbefaler jeg at lære at bruge WInDbg eller IDA Pro som din primære debugger - læring ikke kun hvad instruktionerne gør, men hvordan en C ++ compiler idiomatisk oversætter din kildekode til samling, hjælper dig med at lære langt bedre end hvis du gør konstruerede 100\% samlingseksempler

Andre referencer 1


Jeg er ingen ekspert på samling, men det er en vigtig ting, at jeg i det mindste er bekendt med computeren. I en computer engineering klasse brugte vi SPIM af James Laurus, en MIPS arkitektur simulator til Windows. Jeg synes det er et godt udgangspunkt. Du kan finde en MIPS cheat-ark via Google-søgning, samt nogle tutorials. [3]


Montering er cool, fordi det er hovedsageligt maskinsprog. Glad hacking!

Andre referencer 2


32-bit eksempler skal fungere, selvom dit vært OS er 64-bit.


Derudover er forskellen mellem en 32 og en 64-bit Hello World kun 2 tegn:


include 'win64ax.inc'


vs


include 'win32ax.inc'

Andre referencer 3


Det er bare kedeligt at lære assembler uden noget mål.


Kan jeg anbefale dig at købe nogen robot kit? Som jeg ved RoboSavvy styres robotter af assmeblers/C .. Andre kan kun have DSL.


http://robosavvy.com/site/[4]


P. S. Jeg har lært assembler, da jeg var nødt til at snyde i spil. Men i dag ville jeg vælge robotpakker.

Andre referencer 4


Dette er den bedste x86 ASM introduktion, jeg har fundet:


http://www.drpaulcarter.com/pcasm/[5]


Der er en pdf-version af hans bog på den side. Det starter helt grundlæggende og virker op. Jeg fik al den grundlæggende ASM viden, jeg havde brug for bare med denne bog (stakramme oprettelse, kaldkonventioner, c interop, bare for at nævne et par).

Andre referencer 5


Hvis du er en bigner og ønsker at lære forsamlingen bedre for at få ASM viden 1.
For det andet forsøger at lære den grundlæggende logik bag hver kode.
3.nyt sproget, når du prøver at lære, om du ellers er interesseret i at forlade den.