Reverse engineering

Reverse engineering ( reverse engineering, reverse engineering , reverse engineering ; engelska  reverse engineering ) är studiet av någon färdig enhet eller program, samt dokumentation för det för att förstå principen för dess funktion; till exempel för att upptäcka odokumenterade funktioner (inklusive programvarubokmärken ), göra en ändring eller reproducera en enhet, ett program eller annat objekt med liknande funktionalitet, men utan direkt kopiering.

Det används vanligtvis om skaparen av det ursprungliga objektet inte gav information om strukturen och metoden för att skapa (produktion) av objektet. Upphovsrättsinnehavare av sådana objekt kan hävda att reverse engineering eller användning av dess resultat bryter mot deras exklusiva rätt enligt upphovsrätts- och patentlagstiftningen [ 1] [2] .

Reverse engineering i statens tjänst

2016, vid ett möte med regeringens kommission för importsubstitution, tillkännagav Rysslands industri- och handelsminister D.V. Manturov planer på att skapa ett reverse engineeringcenter på grundval av Industry Development Fund [3] .

Tillämpningar av reverse engineering

Teknik, fordon, flyg

Kopiering av olika mekanismer och maskiner utan egentlig utveckling. Låter dig reproducera en framgångsrik design till minimal kostnad, men det finns fall av kopiering och misslyckade maskiner.

Exempel:

Elektronik

Reverse engineering av elektroniska enheter dök upp i början av radioteknik. På 1920- och 1930-talen kopierade olika företag radiorör och kretslösningar för deras användning från varandra . Det är med reverse engineering, och inte med licensierad produktion, som radiorören med samma syfte från nästan alla tillverkare visade sig vara enhetliga och utbytbara. Till exempel är den europeiska EL95-lampan en klon av den tidigare amerikanska 6KA5-lampan. Det finns också omvända exempel: amerikanska 6CA5 och KT88 är kloner av den europeiska lampan EL34 . Detsamma gäller sovjetiska radiorör, av vilka många är kloner av amerikanska rör erhållna under Lend-Lease (till exempel 6Zh4, 6P9) eller tyska rör från infångad utrustning (6G2, GU50). Tillsammans med lamporna kopierades också typiska scheman för deras inkludering, det vill säga diagram över radioutrustningsblock. Därför var det tack vare reverse engineering som lamptiden i själva verket kännetecknades av övergången till standarddesign inom elektronik. I synnerhet byggdes alla hushålls superheterodynmottagare som producerats i världen faktiskt enligt tre scheman, som bestämdes av lampan i blandningsheterodynenheten: dubbeltriod , heptodtriod eller pentagrid . Detsamma gällde för lågfrekventa förstärkare. Det fanns inte mer än ett dussin typiska scheman för deras konstruktion, beroende på uteffekten: lågeffekt enkelcykel på en kombinerad lampa av typen 6F3P, lågeffekt enkelcykel med ett klangblock på en dubbel triod (typ 6N1P) och en utgångspentod (6P14P, EL84) eller en stråltetrod (6P3S, EL34), push-pull med en triodfasomvandlare (6N1P + 2x6P14P), push-pull flerstegs (6N8P + 2x6P6S + GU50). Svartvita TV-apparater på 1960- och 1970-talen byggdes i själva verket i två system: en för mycket enkla enheter med små skärmstorlekar utan horisontell skanning APCG och APCHIF (liknande sovjetiska TV-apparater UNT-35), det andra systemet var avsett för enheter på kineskop med en vinkelstråleavböjning 110°, APCG, APCHIF (sovjetiska UNT-59, de flesta europeiska tv-apparater) .

Programvara

Forskning och reverse engineering av program utförs vanligtvis i syfte att ytterligare modifiera, kopiera eller till exempel skriva nyckelgeneratorer , vars algoritm erhålls baserat på analysen av algoritmen för att kontrollera dem. Programforskning används också för att få konfidentiell information om programmets interna struktur - om nätverksutbytesprotokollet med servern, hårdvara, säkerhetsnyckel eller interaktion med ett annat program. Ett annat tillämpningsområde är att få information om sätt att exportera data från många proprietära filformat [5] .

Med utvecklingen av Internet undersöks populära operativsystem och program alltmer för att hitta sårbarheter i dem , eller så kallade. "hål". I framtiden kan de hittade hålen användas för att få obehörig åtkomst till en fjärrdator eller ett datornätverk. Å andra sidan används reverse engineering när antivirusföretag undersöker skadlig programvara för att lägga till dess signaturer i sina produktdatabaser.

Ett välkänt exempel på reverse engineering är IBM -persondatorns BIOS -forskning , som var ett stort steg mot utvecklingen av tredjepartsproduktion av IBM-kompatibla datorer. [6] [7] Skapandet av Samba -servern [8] [9] (ingår i GNU/Linux- operativsystemet och arbetar med Windows -baserade servrar ) krävde också omvänd konstruktion av Microsofts SMB - protokoll . Skapandet av många ICQ- klienter krävde också omvänd konstruktion av ICQ- protokollet .

Omvänd mjukvaruutveckling utförs med hjälp av följande tekniker.

  1. Kommunikationsanalys, vanligast inom reverse engineering av kommunikationsprotokoll, som utförs med hjälp av en bussanalysator och en paketsniffer för att lyssna på datorbussen respektive datornätverk .
  2. Demontering av programmets maskinkod för att få dess listaassemblerspråk . Denna metod fungerar på alla datorprogram , men det tar mycket tid, särskilt för en lekman.
  3. Dekompilera maskinen eller bytekoden för ett program för att producera källkod i något högnivåprogrammeringsspråk .

För närvarande är orden "reverse engineering" oftast förstås som den så kallade. clean room reverse engineering , det vill säga en process där en grupp utvecklare analyserar maskinkoden för ett program , kompilerar en algoritm för ett givet program i pseudokod , eller, om programmet är en enhetsdrivrutin , kompilerar uttömmande specifikationer för enheten av intresse. Efter att ha mottagit specifikationerna skriver en annan grupp utvecklare sin egen drivrutin baserat på de mottagna specifikationerna eller algoritmerna . Detta tillvägagångssätt låter dig undvika anklagelser om upphovsrättsintrång på källprogrammet, eftersom det enligt lagarna, till exempel i USA , faller under begreppet " fair use ", det vill säga rättvis användning av originalprogrammet. Resultatet av reverse engineering är sällan identiskt med originalet, vilket undviker juridiskt ansvar, särskilt om det första teamet av utvecklare kontrollerar frånvaron av denna identitet och frånvaron av varumärkes- och patentintrång.

Databaser

Kan användas när man skapar en relationsdatabasmodell .

Industri

Omvänd konstruktion av en konkurrents produkt för att ta reda på dess enhet, funktionsprincip och utvärdera möjligheterna att skapa en analog.

Till exempel tillverkar ett antal tillverkare av fotografisk utrustning, som Sigma , Tamron , Tokina och Carl Zeiss , objektiv med Canon EF - fäste . De är omvända och deras tillverkare har inte tillgång till Canons specifikationer. .

Militärindustrin

av de flesta kända fakta om reverse engineering var:

  • Tyska gasbehållare - Brittiska och amerikanska trupper märkte att tyskarna hade mycket praktiska behållare. De kopierade dessa burkar, och de kallades Jerry cans (från ordet "gerrys" - från "germans") [10] .
  • Tupolev Tu-4  - flera amerikanska B-29 bombplan, medan de utförde sorteringar till Japan , gjorde en nödlandning i Sovjetunionen . Den sovjetiska militären, som inte hade sådana strategiska bombplan, bestämde sig för att kopiera B-29. Några år senare utvecklade de Tu-4, en nästan komplett kopia av den [11] . Samtidigt var Tu-4-motorer, vapen och elektronisk utrustning inte kopior av motsvarande V-29-system.
  • Diesellok TE1  - 1945 tog diesellokomotivet RSD-1 (Da ) ( levererat till Sovjetunionen under Lend-Lease ) Stalins brevtåg till Potsdamkonferensen . Stalin uppskattade detta lokomotiv mycket, så 1947 började tillverkningen av den sovjetiska kopian av det amerikanska diesellokomotivet, TE1. Trots vissa skillnader i storlek och separat utrustning visade sig TE1 vara nästan identisk med Da [ 12] . Alla nuvarande ryska växlingsdiesellokomotiv är ättlingar till det amerikanska diesellokomotivet.
  • Murbruk  - under krigsåren kopierade tyskarna framgångsrikt sovjetiska fångade 120 mm mortlar , som de antog under namnet Granatwerfer 42 .
  • Kalashnikov-geväret  - nyligen uppgav ledningen för Izhmash OJSC att ungefär hälften av alla AK :er i världen är "förfalskade" (det vill säga producerade utan licens och tekniköverföring), vilket är anledningen till att Ryssland förlorar ungefär en miljard dollar om året. Samtidigt har patentrestriktioner (om några) för teknologier och tekniska lösningar tappat sin kraft [13] .
  • Den amerikanska PSRL-1 granatkastaren är en olicensierad moderniserad kopia av den sovjetiska RPG-7 .

Se även

  • assembleringsspråk
  • Programvaruhackning
  • IDA
  • Radare 2
  • Ryska federationens civillag / Del 4 / Avsnitt VII. Rättigheter till resultaten av intellektuell verksamhet och individualiseringsmedel / Kapitel 70. Upphovsrätt / Artikel 1280. Fri reproduktion av datorprogram och databaser. Dekompilering av datorprogram .

Litteratur

Anteckningar

  1. SAS-process mot World Programming . Tillträdesdatum: 16 december 2014. Arkiverad från originalet 16 december 2014.
  2. s: Ryska federationens civillag / Kapitel 70 # Artikel 1280. Användarens rätt till datorprogrammet och databasen
  3. Möte med regeringens kommission för importsubstitution Arkivkopia daterad 15 juni 2017 på Wayback Machine // Rysslands regering
  4. Nomenklatur och analoger av inhemska mikrokretsar . Hämtad 17 april 2010. Arkiverad från originalet 27 maj 2010.
  5. Används ofta, till exempel i förhållande till format som stöds av Microsoft Office .
  6. 502 Bad Gateway (nedlänk) . Hämtad 12 januari 2016. Arkiverad från originalet 29 mars 2016. 
  7. Compaq I Bärbar dator . Hämtad 12 januari 2016. Arkiverad från originalet 9 november 2020.
  8. Myter om Samba . Hämtad 12 januari 2016. Arkiverad från originalet 20 oktober 2017.
  9. Datanätverksdefinition . Datum för åtkomst: 14 januari 2016. Arkiverad från originalet den 27 november 2015.
  10. AmericanHeritage.com/The Little Can That Could Arkiverad 24 maj 2007.
  11. JSC "Tupolev" - 68 (Tu-4) (otillgänglig länk) . Datum för åtkomst: 29 mars 2010. Arkiverad från originalet den 24 oktober 2007. 
  12. Rakov V. A. Lokomotiv för inhemska järnvägar 1845-1955 . — 2:a, reviderad och kompletterad. - M .: Transport , 1995. - S. 374. - ISBN 5-277-00821-7 . Arkiverad kopia (inte tillgänglig länk) . Hämtad 3 augusti 2012. Arkiverad från originalet 24 maj 2014. 
  13. ↑ Löptiden för ett patent för en uppfinning är 20 år, för en bruksmodell - 10 år, för en industriell design - högst 25 år (otillgänglig länk) . Hämtad 26 maj 2016. Arkiverad från originalet 15 maj 2016. 

Länkar