Reverse engineering

Reverse engineering ( reverse engineering, reverse engineering , reverse engineering ; engelsk  reverse engineering ) er studiet af en eller anden færdig enhed eller et program, samt dokumentation for det for at forstå princippet om dets funktion; for eksempel at opdage udokumenterede funktioner (inklusive softwarebogmærker ), foretage en ændring eller reproducere en enhed, et program eller et andet objekt med lignende funktionalitet, men uden direkte kopiering.

Det bruges normalt, hvis skaberen af ​​det originale objekt ikke har givet oplysninger om strukturen og metoden til oprettelse (produktion) af objektet. Ophavsretsindehavere af sådanne genstande kan hævde, at reverse engineering eller brug af dets resultater krænker deres eksklusive ret under ophavsret og patentlovgivning [ 1] [2] .

Reverse engineering i statens tjeneste

I 2016 annoncerede ministeren for industri og handel i Den Russiske Føderation D.V. Manturov på et møde i regeringens kommission for importsubstitution planer om at oprette et reverse engineering-center på grundlag af Industriens Udviklingsfond [3] .

Anvendelser af reverse engineering

Teknik, bilindustrien, luftfart

Kopiering af forskellige mekanismer og maskiner uden egentlig udvikling. Giver dig mulighed for at gengive et vellykket design til minimale omkostninger, men der er tilfælde af kopiering og mislykkede maskiner.

Eksempler:

Elektronik

Reverse engineering af elektroniske enheder dukkede op i begyndelsen af ​​radioteknik. I 1920'erne og 1930'erne kopierede forskellige firmaer radiorør og kredsløbsløsninger til deres brug fra hinanden . Det er med reverse engineering, og ikke med licenseret produktion, at radiorørene med samme formål fra næsten alle producenter viste sig at være forenede og udskiftelige. For eksempel er den europæiske EL95-lampe en klon af den tidligere amerikanske 6KA5-lampe. Der er også omvendte eksempler: den amerikanske 6CA5 og KT88 er kloner af den europæiske lampe EL34 . Det samme gælder sovjetiske radiorør, hvoraf mange er kloner af amerikanske rør opnået under Lend-Lease (f.eks. 6Zh4, 6P9) eller tyske rør fra indfanget udstyr (6G2, GU50). Sammen med lamperne blev typiske skemaer for deres inklusion også kopieret, det vil sige i virkeligheden diagrammer af radioudstyrsblokke. Derfor var det takket være reverse engineering, at lampe-æraen i virkeligheden var karakteriseret ved overgangen til standarddesign inden for elektronik. Især alle husstands superheterodyne-modtagere produceret i verden blev faktisk bygget i henhold til tre skemaer, som blev bestemt af lampen i blandings-heterodyne-enheden: dobbelt triode , heptode triode eller pentagrid . Det samme gjaldt for lavfrekvente forstærkere. Der var ikke mere end et dusin typiske skemaer til deres konstruktion, afhængigt af udgangseffekten: laveffekt enkeltcyklus på en kombineret lampe af 6F3P-typen, laveffekt enkeltcyklus med en klangblok på en dobbelt triode (type 6N1P) og en output pentode (6P14P, EL84) eller en stråletetrode (6P3S, EL34), push-pull med en triode faseinverter (6N1P + 2x6P14P), push-pull flertrins (6N8P + 2x6P6S + GU50). Sort-hvide tv'er i 1960'erne og 1970'erne blev faktisk bygget i to ordninger: en til meget enkle enheder med små skærmstørrelser uden horisontal scanning APCG og APCHIF (svarende til sovjetiske tv'er UNT-35), den anden ordning var beregnet til enheder på kinescopes med en vinkelstråleafbøjning 110°, APCG, APCHiF (sovjetiske UNT-59, de fleste europæiske fjernsyn) .

Software

Forskning og reverse engineering af programmer udføres normalt med det formål at yderligere modificere, kopiere eller for eksempel skrive nøglegeneratorer , hvis algoritme opnås baseret på analysen af ​​algoritmen til kontrol af dem. Programforskning bruges også til at få nogle fortrolige oplysninger om programmets interne struktur - om netværksudvekslingsprotokollen med serveren, hardware, sikkerhedsnøgle eller interaktion med et andet program. Et andet anvendelsesområde er at få oplysninger om måder at eksportere data fra adskillige proprietære filformater [5] .

Med udviklingen af ​​internettet bliver populære operativsystemer og programmer i stigende grad undersøgt for at finde sårbarheder i dem , eller såkaldte. "huller". I fremtiden kan de fundne huller bruges til at få uautoriseret adgang til en fjerncomputer eller computernetværk. På den anden side bruges reverse engineering, når antivirusvirksomheder undersøger malware for at tilføje dens signaturer til deres produktdatabaser.

Et velkendt eksempel på reverse engineering er IBMs personlige computers BIOS -forskning , som var et stort skridt mod udviklingen af ​​tredjepartsproduktion af IBM-kompatible computere. [6] [7] Oprettelsen af ​​Samba -serveren [8] [9] (inkluderet med GNU/Linux -operativsystemet og arbejde med Windows -baserede servere ) krævede også omvendt udvikling af Microsofts SMB -protokol . Oprettelsen af ​​mange ICQ - klienter krævede også reverse engineering af ICQ - protokollen .

Omvendt softwareudvikling udføres ved hjælp af følgende teknikker.

  1. Kommunikationsanalyse, mest almindelig i reverse engineering af kommunikationsprotokoller, som udføres ved hjælp af en busanalysator og en pakkesniffer til at lytte på henholdsvis computerbussen og computernetværket .
  2. Adskillelse af programmets maskinkode for at få dets liste i assemblersprog . Denne metode virker på ethvert computerprogram , men det tager meget tid, især for en lægmand.
  3. Dekompilering af et programs maskine eller bytekode for at producere kildekode i et programmeringssprog på højt niveau .

I øjeblikket forstås ordene "reverse engineering" oftest som det såkaldte. clean room reverse engineering , det vil sige en proces, hvor en gruppe udviklere analyserer maskinkoden for et program , kompilerer en algoritme for et givet program i pseudokode , eller, hvis programmet er en enhedsdriver , kompilerer udtømmende specifikationer for enheden af interesse. Efter at have modtaget specifikationerne, skriver en anden gruppe udviklere deres egen driver baseret på de modtagne specifikationer eller algoritmer . Denne tilgang giver dig mulighed for at undgå anklager om krænkelse af ophavsretten på kildeprogrammet, da det ifølge lovene, for eksempel i USA , falder ind under begrebet " fair use ", det vil sige rimelig brug af det originale program. Resultatet af reverse engineering er sjældent identisk med originalen, hvilket undgår juridisk ansvar, især hvis det første hold af udviklere kontrollerer fraværet af denne identitet og fraværet af varemærke- og patentkrænkelse.

Databaser

Kan bruges ved oprettelse af en relationel databasemodel .

Industri

Reverse engineering af en konkurrents produkt for at finde ud af dens enhed, funktionsprincip og evaluere mulighederne for at skabe en analog.

For eksempel producerer en række producenter af fotografisk udstyr, såsom Sigma , Tamron , Tokina og Carl Zeiss , objektiver med Canon EF - typefatning . De er omvendt manipuleret, og deres producenter har ikke adgang til Canons specifikationer. .

Militærindustri

af de fleste kendte fakta om reverse engineering var:

  • Tyske gasdåser - britiske og amerikanske tropper bemærkede, at tyskerne havde meget praktiske dunke. De kopierede disse dåser, og de blev kaldt Jerry-dåser (fra ordet "gerrys" - fra "tyskere") [10] .
  • Tupolev Tu-4  - flere amerikanske B-29 bombefly, mens de udførte torter til Japan , foretog en nødlanding i USSR . Det sovjetiske militær, som ikke havde sådanne strategiske bombefly, besluttede at kopiere B-29. Et par år senere udviklede de Tu-4, en næsten komplet kopi af den [11] . Samtidig var Tu-4-motorer, våben og elektronisk udstyr ikke kopier af de tilsvarende V-29-systemer.
  • Diesellokomotiv TE1  - i 1945 bragte diesellokomotivet RSD-1 (Da ) ( leveret til USSR under Lend-Lease ) Stalins brevtog til Potsdam-konferencen . Stalin satte stor pris på dette lokomotiv, så i 1947 begyndte produktionen af ​​den sovjetiske kopi af det amerikanske diesellokomotiv, TE1. På trods af nogle forskelle i størrelse og separat udstyr, viste TE1 sig at være næsten identisk med Da [ 12] . Alle nuværende russiske rangerende diesellokomotiver er efterkommere af det amerikanske diesellokomotiv.
  • Morterer  - under krigsårene kopierede tyskerne med succes sovjetiske erobrede 120 mm morterer , som de adopterede under navnet Granatwerfer 42 .
  • Kalashnikov-geværet  - for nylig udtalte ledelsen af ​​Izhmash OJSC, at omkring halvdelen af ​​alle AK'er i verden er "forfalskede" (det vil sige produceret uden licens og teknologioverførsel), hvorfor Rusland taber omkring en milliard dollars om året. Samtidig har patentrestriktioner (hvis nogen) på teknologier og tekniske løsninger mistet deres kraft [13] .
  • Den amerikanske PSRL-1 granatkaster er en ulicenseret moderniseret kopi af den sovjetiske RPG-7 .

Se også

  • samlesprog
  • Software hacking
  • IDA
  • Radare 2
  • Civil Code of the Russian Federation / Del 4 / Afsnit VII. Rettigheder til resultaterne af intellektuel aktivitet og midler til individualisering / Kapitel 70. Copyright / Artikel 1280. Gratis gengivelse af computerprogrammer og databaser. Dekompilering af computerprogrammer .

Litteratur

Noter

  1. SAS retssag mod World Programming . Dato for adgang: 16. december 2014. Arkiveret fra originalen 16. december 2014.
  2. s: Civil Code of the Russian Federation / Kapitel 70 # Artikel 1280. Brugerens ret til computerprogrammet og databasen
  3. Møde i regeringens kommission for importsubstitution Arkiveksemplar dateret 15. juni 2017 på Wayback Machine // Ruslands regering
  4. Nomenklatur og analoger af husholdningsmikrokredsløb . Hentet 17. april 2010. Arkiveret fra originalen 27. maj 2010.
  5. Bruges ofte, for eksempel i forhold til formater understøttet af Microsoft Office .
  6. 502 Dårlig gateway (downlink) . Hentet 12. januar 2016. Arkiveret fra originalen 29. marts 2016. 
  7. Compaq I bærbar computer . Hentet 12. januar 2016. Arkiveret fra originalen 9. november 2020.
  8. Myter om Samba . Hentet 12. januar 2016. Arkiveret fra originalen 20. oktober 2017.
  9. Definition af computernetværk . Dato for adgang: 14. januar 2016. Arkiveret fra originalen 27. november 2015.
  10. AmericanHeritage.com/The Little Can That Could Arkiveret 24. maj 2007.
  11. JSC "Tupolev" - 68 (Tu-4) (utilgængeligt link) . Dato for adgang: 29. marts 2010. Arkiveret fra originalen den 24. oktober 2007. 
  12. Rakov V. A. Lokomotiver for indenlandske jernbaner 1845-1955 . — 2., revideret og suppleret. - M .: Transport , 1995. - S. 374. - ISBN 5-277-00821-7 . Arkiveret kopi (ikke tilgængeligt link) . Hentet 3. august 2012. Arkiveret fra originalen 24. maj 2014. 
  13. Løbetiden for et patent for en opfindelse er 20 år, for en brugsmodel - 10 år, for et industrielt design - ikke mere end 25 år (utilgængeligt link) . Hentet 26. maj 2016. Arkiveret fra originalen 15. maj 2016. 

Links