Interactive Disassembler
Dit artikel of deze sectie wordt actief bewerkt. Om bewerkingsconflicten en gegevensverlies te helpen voorkomen, wordt je vriendelijk verzocht dit artikel niet te bewerken zolang deze melding wordt getoond. Klik op geschiedenis voor de laatste ontwikkelingen. |
Interactive Disassembler, vaak kortweg IDA of IDA Pro genoemd, is een disassembler van software, dus een programma dat computerprogramma's vertaalt van de binaire machinetaal naar voor de programmeur leesbaardere assembleercode. Het programma is oorspronkelijk als shareware ontwikkeld door Ilfak Guilfanov, een Russische softwareontwikkelaar en beveiligingsexpert. Later werd het programma verkocht als commerciëel product door DataRescue, een Belgisch bedrijf, die er verbeteringen aan aanbracht en het onder de naam IDA Pro verkocht. Nog altijd is er ook een gratis versie van de software beschikbaar, maar deze versie is beperkt qua functionaliteit.
In 2007 startte Guilfanov Hex-Rays, waarmee hij de ontwikkeling van een extensie voor IDA, de Hex-Rays Decompiler, verzorgde. Sinds januari 2008 verzorgt Hex-Rays de ontwikkeling en support van IDA Pro zelf ook.
IDA Pro ondersteunt diverse formaten van uitvoerbare bestanden voor verschillende processoren en besturingssystemen, zoals Microsoft Windows, Mac OSX, en Linux. Verder zijn er verschillende commerciële plugins voor dit programma, zoals een plugin die assembeercode kan omzetten in C code, en een die programma's die zijn gecompileeerd met een C/C++ compiler kan disassembleren. De laatste volledige versie van IDA Pro is een commerciëel softwarepakket. Vroegere versies, die minder functionaliteit bezaten dan de huidige volledige versie, waren wel gratis.
In veel gevallen kan IDA variabelen en functies van een gecompileerd programma herkennen en aan de gebruiker tonen. Zelfs libraries die door programma's worden gebruikt kunnen door IDA worden herkend. Dit gebeurt met behulp van de Fast Library Identification and Recognition Technology (FLIRT), dit is Engels voor Technologie voor de snelle herkenning en identificatie van libraries.
Een kenmerk van IDA is, dat het veel interactiviteit mogelijk maakt. De gebruiker van het programma kan bijvoorbeeld annotaties aanbrengen en aanpassingen maken aan de vertaalslagen, waarmee onvolkomenheden van automatische vertalingen van binaire code naar assembleercode handmatig verbeterd kunnen worden. De gebruiker kan tussentijdse resultaten ook opslaan in de IDA Pro database, een gegevensbestand voor informatie van dit programma. Hierin kunnen aantekeningen worden opgeslagen, alsmede namen die de gebruiker zelf geeft aan ontdekte functies van code die geanalyseerd wordt.
In feite zijn er verschillende commerciële versies van IDA Pro beschikbaar. Een uitgebreidere versie van het programma heeft meer mogelijkheden, zoals de ondersteuning van meer soorten processoren. Binaire formaten van uitvoerbare bestanden die worden ondersteund, zijn onder meer Portable Executable (PE), Common Object File Format (COFF), Executable and Linking Format (ELF), en a.out.
Scripts
De werking van IDA kan worden uitgebreid met zogenaamde "IDC scripts". Deze scripts bevatten instructies die door de gebruiker van het programma kunnen worden geschreven. Enkele voorbeeldscripts worden met IDA meegeleverd, waarmee het eenvoudiger wordt IDC scripts te schrijven. Er zijn websites die gespecialiseerd zijn in het schrijven van IDC scripts en die hulp hierbij kunnen bieden.
Verder zijn er ook plugins ontwikkeld voor IDA, waarmee ook andere gebruikelijke scripttalen gebruikt kunnen worden met deze software. IdaRUB ondersteunt Ruby en IDAPython biedt de mogelijkheid python scripts te gebruiken. Sinds versie 5.4 van Ida Pro wordt IDAPython standaard geïnstalleerd bij de installatie van IDA Pro.
Toepassingen
Met IDA kunnen programma's waarvan de broncode niet is vrijgegeven eenvoudiger geanalyseerd worden. Dit kan zowel voor legitieme als illegale doeleinden gedaan worden. Softwareontwikkelaars kunnen zien, hoe effectief hun software is en in hoeverre hun programma's waar zij de broncode niet van vrijgeven door anderen te doorgronden zijn. Door computerkrakers kan IDA gebruikt worden om kwetsbaarheden in programma's op te sporen, of beveiligingen voor het copiëren van programma's te omzeilen.