Wat is reverse engineering?
Sommige termen spreken voor zich. Dat is het geval bij reverse engineering, waarbij letterlijk iets uit elkaar wordt gehaald en weer in elkaar wordt gezet. Dit kan fysiek of virtueel worden gedaan, en de bedoeling is om erachter te komen hoe iets werkt om iets soortgelijks te creëren.
Reverse engineering wordt al vele eeuwen gedaan, bijna net zo lang als mensen dingen maken. Soms wordt reverse engineering gedaan om een bestaande creatie te verbeteren, terwijl andere gevallen van reverse engineering het stelen van technologie betreffen. Dit laatste is vooral het geval geweest met wapens in de geschiedenis van oorlogvoering.
Het zijn niet alleen wapens, die onderwerpen van reverse engineering zijn. Alledaagse dingen zoals voertuigen, dvd's en apparaten zijn het onderwerp van intensief onderzoek in kwartalen over de hele wereld. Sommige bedrijven maken er een gewoonte van goederen uit andere landen in te voeren, die goederen stuk voor stuk uit elkaar te halen en vervolgens reverse-engineering te gebruiken om zich eigen te maken.
Reverse engineering gebeurt ook in de virtuele wereld. Computerkunstenaars en wetenschappers oefenen reverse engineering uit door 3D-modellen van apparaten uit de echte wereld te maken en deze vervolgens virtueel te deconstrueren om te zien hoe ze werken. Soms brengen ze ze weer samen, precies of op een iets andere manier. De komst van zware servers en grafische suites heeft dit zowel mogelijk als wenselijk gemaakt.
Computers oefenen reverse engineering ook op een meer fundamenteel niveau uit. Een vorm van dit soort reverse engineering is decompileren. Decompileren is een proces waarbij een computer informatie van een laag-niveau formaat (computercode) naar een hoog-niveau formaat (ASCII-tekst en getallen) converteert, zodat mensen dingen als instructies en webartikelen kunnen lezen. Veelvoorkomende decompilatie is het overbrengen van bestanden van de ene gebruiker naar de andere, zoals een uitwisseling van gegevens of afbeeldingen in een e-mail, of voor het opnieuw opbouwen van codering die beschadigd is of nooit is voltooid. Decompileren kan ook komen in de vorm van beveiligingsinbreuken, waarbij een hacker reverse engineering gebruikt om de gegevens te reconstrueren die iemand anders zo graag wilde verbergen via versleuteling.
Een ander dubbel gebruik van reverse engineering is het creëren en voorkomen van computervirussen. Virusmakers duiken in de ingewanden van computercode om plaatsen te vinden om hun creaties te begraven. Door de machinecode opnieuw op te bouwen als broncode, kan de maker van het virus vinden wat hij of zij zoekt. Aan de andere kant van die acties zijn de mensen die computervirussen willen voorkomen of vernietigen. Ook zij gebruiken reverse engineering om het virus zelf te deconstrueren en de schadelijke uitvoerbare bestanden te vernietigen of erop te anticiperen.