Omvänd ingenjörskonst - läsa datorexekvering

Permalänk
Avstängd

Omvänd ingenjörskonst - läsa datorexekvering

Vilka program använder man för att läsa vilka exekveringar en dator genomför när den kör ett program?
Det vill säga, när du vill veta ett programs uppbyggnad, så tittar du på vilka vippor, register och minnespositioner programmet använder som ett tecken på hur programmet fungerar samt loggar det via loggprogrammet.

Visa signatur

Allting är gratis. Bara höja skatten.
http://imgur.com/gallery/hhD3J
I zenit av Roms storhetstid mutades romarna att rösta på senatorer i utbyte mot mutor
https://www.youtube.com/watch?v=gJ2tPMIh6u0

Permalänk
Medlem

Ordet du letar efter är disassembler.

IDA är en populär disassembler:

https://www.hex-rays.com/products/ida/overview.shtml

Att läsa assembler-kod är dock inget man lär sig bara sådär.

Permalänk

Här är en gratis wikibok X86_Disassembly, som inkluderar ett avsnitt om olika disassembler och decompilers.

Permalänk
Medlem

Enklast är väl att titta på programmets källkod om man vill se hur det fungerar? Sedan kan man kompilera källkoden för att se hur det översätts till maskinkod av kompilatorn, men själva tanken om hur programmet ska fungera skapas ju i källkoden. För att se hur källkoden exekveras kan man använda sig av en debugger eller liknande som kan stega sig fram i källkoden och visa innehåll för variabler med mera.

Nu kanske du vill analysera ett speciellt program som inte har tillgänglig källkod och då kan man ta till saker som disassemler. Men är det mer generellt att man vill lära sig hur programvara fungerar kan man studera källkoden för något program som har öppen källkod.