Demonterare

Disassembler (från engelska  disassembler [ ˌdɪsəˈsɛmblə (r) ]) är en översättare som konverterar maskinkod , objektfil eller biblioteksmoduler till programtextassemblerspråk .

Beroende på driftsättet med användaren är de uppdelade i automatiska och interaktiva. Sådana demonterare genererar en färdig listning, som sedan kan redigeras i en textredigerare. Ett exempel på interaktiv är IDA . Det låter dig ändra demonteringsreglerna och är ett mycket praktiskt verktyg för programforskning .

Det finns engångs- och multipassdemonteringsanordningar. Den största svårigheten i en demonterares arbete är att särskilja data från maskinkod, därför samlas information om gränserna för procedurer och funktioner automatiskt eller interaktivt in vid det första passet, och vid det sista passet bildas den slutliga listan. Interaktivitet förbättrar denna process, eftersom genom att titta på en dump av ett demonterat minnesområde kan en programmerare omedelbart markera strängkonstanter, ge betydelsefulla namn till kända ingångspunkter och kommentera programfragmenten som han har analyserat. Vanligtvis är en engångsdemonterare (som inline assembler) en integrerad del av en debugger .

Oftast används en disassembler för att analysera ett program (eller en del av det), vars källkod är okänd - i syfte att modifiera, kopiera eller hacka. Mer sällan - att söka efter fel ( buggar ) i program och kompilatorer , samt att analysera och optimera maskinkoden som skapats av kompilatorn .

När du arbetar med körbar kod eller bytekod skapad i vissa högnivåspråk (till exempel java), är det möjligt att återställa inte bara texten på assemblerspråk, utan även strukturen för programklasserna, och om felsökningsinformation var inte inaktiverad vid kompilering av den körbara filen - och källkoden för programmet. Obfuskation används för att utesluta sådana möjligheter .

Exempel på disassemblerprogram

Se även

Anteckningar

Litteratur

Länkar