Omvendt engineering

Reverse engineering ( engelsk ; tysk: revers utvikling , rekonstruksjon , forkortelse: RE ; også etterkonstruksjon ) beskriver prosessen med å trekke ut konstruksjonselementene fra et eksisterende ferdig system eller et stort sett industrielt produsert produkt ved å undersøke strukturer, tilstander og atferd . En plan skapes altså igjen fra det ferdige objektet .

I motsetning til en funksjonell simulering, som også kan være basert på analyser i henhold til black box- prinsippet, er reverse engineering rettet mot å gjengi gjenstanden som er tilgjengelig stort sett nøyaktig.

For å verifisere innsikten er det ofte gjort et forsøk på å lage en 1: 1-kopi av objektet, på grunnlag av hvilket det er grunnleggende mulig å gjennomføre videre utvikling.

Bruksområder

maskinvare

For å undersøke maskinvare med det formål å replikere, z. I DDR ble det for eksempel utviklet metoder der en chip- dyse ble fjernet i lag (ved sliping eller selektiv etsning), og deretter ble lagene undersøkt ved hjelp av et mikroskop for å finne ut funksjonaliteten og maskinvaregrunnlaget. På denne måten ble en Z80- replika opprettet som U880 . Disse rapportene er troverdige ettersom enkelte selskaper fremdeles tilbyr og lykkes med å tilby slike tjenester i dag.

programvare

Spesielt med hensyn til programvare forstås dette vanligvis som en av de tre følgende prosessene:

I det første tilfellet brukes ofte dekompilatorer, som i stor grad automatisk gjenoppretter kildekoden til et program fra sin binære kode. Hvis dette ikke alltid er mulig, kan maskinkoden som kan bestemmes direkte fra programmets binære kode med en demonterer også analyseres manuelt, noe som imidlertid er en merkbar vanskelighetsgrad. Det kan jeg. d. Som regel kan ikke hele programkildekoden bestemmes, siden z. B. Kommentarer aldri og lokale objektnavn er sjelden inkludert i den tilgjengelige binære koden . Til tross for alt er resultatet ofte tilstrekkelig for det respektive formål, f.eks. B. for atferdsanalyse av et programvaresystem eller som et hjelpemiddel i feilsøking av en feil.

Omvendt engineering er ofte også nødvendig hvis for eksempel utviklerne av et operativsystem som er gratis programvare, ønsker å skrive en enhetsdriver for en bestemt enhet , fordi kunnskapen som kreves for dette i mange tilfeller er hemmelig. Men her er det ofte tilstrekkelig å snuse kommunikasjonen til og fra den aktuelle enheten, dvs. den andre metoden. Det er vanligvis ikke nødvendig å demontere eller dekompilere en eksisterende enhetsdriver, for eksempel fra et ikke-gratis operativsystem.

Et annet felt for applikasjonskildekoderekonstruksjoner av abandonware blir dataspillklassikere . B. En annen verden , for å inkludere blant andre. For å kunne portere til nåværende plattformer.

I det tredje tilfellet snakker man imidlertid, i motsetning til reverse engineering, om tilbakemeldingkode , spesielt under programvareutviklingsprosessen , når kildekoden hentet fra en designspesifikasjon blir modifisert manuelt og den modifiserte kildekoden overføres tilbake til designspesifikasjon for å kunne bli videre bearbeidet der (spesielt for CASE- verktøy med én kilde ). Dette er også mulig hvis det i avanserte og omfattende programvareprosjekter ikke er noen spesifikasjoner for design, for eksempel i UML , og som skal genereres senere.

maskinteknikk

Reverse engineering brukes til ulike oppgaver innen maskinteknikk. Dette er en direkte konsekvens av tilgjengeligheten av billige 3D-skannere med høy oppløsning - sammenkoblet med programvare som låser omvendt konstruksjon mer og nærmere med CAD-systemer. Samtidig er det nå tilgjengelige datasystemer som har tilstrekkelig datakraft og minne til å behandle datavolumene som oppstår under digitaliseringen.

Reverse engineering prosesser - målsetting

Det kan skilles mellom forskjellige prosesser innen revers engineering.

Felles for dem alle er at målet bestemmer veien og er delt inn i tekniske og produksjonsrelaterte mål.

tekniske krav

Komponenten eller samlingen er vanligvis tilgjengelig for prosessen som et fysisk objekt. Historiske systemer bruker gamle skisser og bilder. Det er viktig å forstå hvordan komponenten fungerer og hvilke tekniske krav som stilles. De tekniske kravene inkluderer hvilke krefter som overføres via komponenten, ved hvilke temperaturer komponenten brukes, hvilken slitasje den utsettes for osv. Summen av disse kravene resulterer i målet som resultatet av reversering må måles mot.

Produksjonskrav

Det andre aspektet er produksjonskravene. Det er ikke alltid økonomisk å produsere den nye komponenten ved å bruke samme produksjonsprosess som originalen. Det lønner seg ofte ikke å lage en form for små mengder hvis de tekniske kravene gjør at denne komponenten kan produseres som en malt komponent.

Alle andre prosesser følger denne første prosessen med teknisk og produksjonsrelatert måldefinisjon.

Skann til utskrift

Enkel plugg for en profil

Etter måldefinisjonen, som bestemmer materialet komponenten skrives ut med, må komponenten registreres fullstendig med en 3D-skanner eller en datamaskintomograf. Omarbeid på 3D-modellen opprettet på denne måten er vanligvis nødvendig før den kan skrives ut. Områder som ikke er skannet, for eksempel overflaten til en modell eller andre detaljer som ikke kan sees, må kanskje legges til. Det må også tas hensyn til at overflatemodellen er "vanntett", dvs. at alle kanter er koblet sammen, at alle overflateorienteringer er homogeniserte og at det ikke er hull i overflaten. Til slutt må det legges til spesifikke justeringer for utskriftsprosessen, for eksempel støttestrukturer. Når denne opparbeidingen er fullført, kan modellen gjengis på en passende 3D-skriver.

Denne prosessen kan bare brukes til å produsere enkle komponenter med lave krav. Å endre dataene som er innhentet fra 3D-skanningen er veldig tidkrevende og arbeidskrevende. Denne prosessen er derfor ikke økonomisk for alle komponenter. For eksempel kan den brukes til å produsere reservedeler som ikke lenger er tilgjengelige.

Omvendt engineering for reparasjonen

Denne prosessen handler om å produsere en komponent med komplekse tekniske krav. For kapitalvarer som et kraftverk, et valsverk eller en kompressor er systemer som er 30 år og eldre fortsatt i bruk i dag. I tillegg er noen av produsentene av disse spesialmaskinene ikke lenger en del av markedet.

I dette tilfellet måles komponentene og skannes ofte med en 3D-skanner. Disse dataene blir deretter konvertert til en parametrisk CAD-modell i passende programvare. På grunn av slitasje på komponenten som slitasje og skalering, er det litt kunst å gjenkjenne hvordan dimensjonene til den originale delen var. Denne metoden brukes ofte spesielt for profilene til turbinbladene og kanalene til pumper og turbiner, siden disse profilene er definert over flere tverrsnitt av spline.

Med denne prosessen kan et hvilket som helst antall komplekse systemer produseres som ved bruk av moderne materialer, belegg og behandlingsmetoder kan være bedre enn originalen.

Denne prosessen er perfekt for reparasjon av dyre maskiner der reservedelene bare trengs noen få ganger.

Hvis denne prosessen brukes i et regulert område som luftfarts-, farmasøytisk eller næringsmiddelindustri, må produktene godkjennes av vedkommende myndighet etter omvendt utvikling.

Omvendt engineering for serieproduksjon

RE-serieproduksjon

Denne prosessen går gjennom trinnene for reverse engineering for reparasjonen. Etter at CAD-modellen er opprettet med den spesialiserte programvaren, overføres den som en innfødt del til produsentens CAD-system. Dette sikrer at komponentene kan utvikles videre av en designer i spesialisert programvare uten spesiell kunnskap.

Reverse-Forward Engineering

Reverse-Forward Engineering

Dette er tilfelle når to komponenter må passe med høy presisjon. Den første komponenten er opprettet i en prosess som støping eller smiing, der toleransene bare påvirkes marginalt. Den andre komponenten produseres vanligvis på en CNC-maskin og må kompensere for toleransene til den første komponenten. Det er vist en skyveventil der huset ble støpt og lysbildet nå er produsert på en slik måte at kamene på det støpte huset presser lysbildet mot tetningen.

Omvendt konstruksjon av en leiremodell

Selv i dag er modeller med vakre overflater laget av designere som bruker en leiremodell. Disse modellene blir deretter spilt inn med en 3D-skanner og ombygd med C2-overflater i passende programvare. Selv i dag er karosserier laget som leiremodeller.

Omvendt engineering for systemintegrasjon

Denne saken representerer et unntak fra den opprinnelig nevnte regelen for definisjon av mål. 3D-data kreves for å integrere et nytt system i et eksisterende system. Dataene fra 3D-skanningen brukes til å dokumentere den faktiske tilstanden. Et nytt system er deretter utstyrt med disse dataene. I luftfartsindustrien blir hytta ofte skannet med en 3D-skanner for å planlegge en ny utstyrsvariant.

Ytterligere applikasjoner

Det er en rekke andre applikasjoner der revers engineering er eller kan brukes:

  • Frakoblet programmering av robotbaner for belegg
  • Lage vokskjerner for støpeprosessen i smykkerindustrien
  • Skalering av kunstskulpturer som skal støpes ved hjelp av en sandkjernetrykt form
  • Justering av ortoser og proteser
  • Tilpasning av implantater opprettet ved hjelp av tomografi og 3D-utskrift

Denne listen kan fortsette på ubestemt tid. Prosessene er i hovedsak basert på prosessene beskrevet ovenfor.

Kvalitetssikring av revers engineering-prosessen

Kvalitetssikring er nyttig for reversering av høy kvalitet. Dette bør gjøres på tre punkter i prosessen.

  1. Hvis det, som med turbinblad, er et stort antall antatt identiske gjenstander, registreres flere kniver med skanneren. Disse skanningene sammenlignes med hverandre for å avgjøre om alle objekter virkelig er identiske. Hvis dette er tilfelle, blir skanninger formidlet, og denne skannede skanningen brukes til videre reversering.
  2. Etter omvendt konstruksjon blir den nye CAD-modellen sammenlignet med skannedataene, og det blir opprettet en rapport som viser hvor CAD-modellen avviker fra 3D-skannedataene.
  3. Etter produksjon blir den nye fysiske modellen registrert med skanneren og sammenlignet med CAD-modellen som ble produsert i revers engineering.

Farmasi, bioteknologi og systembiologi

I kjemiteknikk og medisinforskning har revers engineering for generisk medikamentutvikling eller andre former for kunnskapsoverføring vært praktisert i noen tid , noe som for eksempel bidro til fremveksten av legemiddelindustrien i India . I mars 2021 rekonstruerte forskere ved Stanford University sekvensene av mRNA-vaksinene BNT-162b2 fra BioNTech / Pfizer og MRNA-1273 fra Moderna ved hjelp av revers engineering og publiserte dem deretter på GitHub .

I systembiologi betegner revers engineering , også referert til her som nettverksinferens , identifikasjonen av biologiske nettverk, spesielt genreguleringsnettverk , ved bruk av både målte biomedisinske og / eller molekylærbiologiske data, spesielt data fra genuttrykkingsanalyse , så vel som tidligere molekylærbiologisk kunnskap.

Juridiske aspekter

programvare

Mange selskaper forbyr omvendt konstruksjon av sine produkter gjennom tilsvarende lisensbetingelser . Den analysen av loggene er ikke lovlig berørt fordi selve programvaren er ikke gjenstand for etterforskningen. I tillegg er en slik lisensbestemmelse i mange land generelt gyldig fordi brukerne av loven, den ene ting rett, har rett til å verifisere bruken av sikkerhet (se også trojansk hest ) eller feilsøke et ervervet programvareproduktet sitt i omvendt utvikling for å gjennomgå. Den rene etterforskningen av ting som tilhører deg kan tildeles forskningsfriheten, slik at de tilsvarende lisensbestemmelsene heller ikke gjelder.

Ofte tjener slike lisensklausuler formålet med avskrekkelse og skal derfor forstås som et ensidig uttrykk for vilje, eller, avhengig av form, som en profylaktisk, ensidig presentert juridisk mening, som kanskje ikke har noen bekreftelse og dermed ingen ytterligere gyldighet i hendelse med en uavhengig juridisk gjennomgang. I programvaresektoren snakker man ofte om den såkalte " krympe wrap lisensen ", som generelt er tvilsom i Tyskland.

Imidlertid, i tilfelle en overtredelse oppdages , kan man ha forpliktet seg til å foreta betalinger ved hjelp av en kontraktsstraff . Under visse omstendigheter kan man meget vel juridisk ha underlagt denne formen for individuell kontraktbinding, hvor det mest handler om prototyper eller små serier som fremdeles inneholder betydelige mengder forretningshemmeligheter . Av denne grunn gis det ofte rabatter til fordel for kjøperen (mot den reduserte muligheten for bruk), eller det forsøkes i det minste å dekke selgerens reelle risiko (f.eks. Gjennom svik av hemmeligheter) til en viss grad med ovennevnte kontraktsstraff. Videre brukes metoden for midlertidig utlån også for sensitive gjenstander .

Kryptering og forvirring har vært brukt i datateknologi i lang tid , selv om dette først og fremst er ment å gjøre omvendt utvikling vanskeligere, men i økende grad også fordi det kan bringe de endrede lovene om opphavsrett med hensyn til kopibeskyttelse og tilhørende straffer i kraft. Et eksempel på dette er tiltalen til russeren Dmitry Sklyarov i USA under DMCA- lovgivningen for dekoding av beskyttede tekstdokumenter i 2001 . I oktober 2003 tillot imidlertid den amerikanske kongressen fire endringer i DMCA å godkjenne. definerte formålet med arkivering av digitale verk som et midlertidig unntak og igjen tillate de nødvendige teknikker som revers engineering.

“3. Dataprogrammer og videospill distribuert i formater som er blitt foreldet og som krever det originale mediet eller maskinvaren som en betingelse for tilgang. ... Registeret har konkludert med at i den grad biblioteker og arkiver ønsker å lage bevaringskopier av publisert programvare og videospill som ble distribuert i formater som er (enten fordi det fysiske mediet de ble distribuert på ikke lenger er i bruk eller fordi bruk av et foreldet operativsystem er påkrevd), er slik aktivitet en ikke-krenkende bruk som omfattes av paragraf 108 (c) i åndsverkloven. "

I november 2006 har Library of Congress i USA et permanent unntak fra DMCA enige om at omgåelsen av kopibeskyttelse tillater programvare er som ikke lenger selges eller støttes av rettighetsinnehaver (den abandonware ) så derfor arkivering og digital bevaring uten frykter påtale er mulig.

Hvis du bruker resultatet av reverse engineering for kommersiell replikering, vil du bli konfrontert med det store antallet industrielle eiendomsrettigheter (f.eks. Plagiering ) på en lignende måte som det er tilfelle med resultatene av helt normal uavhengig forskning og utvikling kan være (f.eks. gjennom patenter ).

Teknologi og elektronikk

Omvendt prosjektering med det formål å replikere tekniske objekter tar ofte sikte på å redusere utviklingskostnader og risikoer og å kompensere for mangel på egen kunnskap. Det blir derfor ofte ikke akseptert eller motsatt av den opprinnelige produsenten. Dette handler også om produktansvar, fordi imitasjonsprodukter ofte mangler kvalitet. Originale produsenter beskytter seg derfor mot imitasjon ved å dekke over eller lovlig beskytte originaliteten deres gjennom skjult produktidentifikasjon (tags). Kopien er alltid ulovlig, i det minste hvis andres patenter er krenket, eller hvis produktet er merket som en original del. Men selv om det brukes ubeskyttede ideer fra andre, kan det være brudd på opphavsretten. Høyt integrerte kretser unngår reversering på grunn av deres strukturstørrelser i nanometerområdet. Betegnelsene på de innebygde integrerte kretsene fjernes ofte fra kretskort .

Reverse engineering skiller seg fra teknisk re-engineering ved at sistnevnte har den tekniske dokumentasjonen og funksjonaliteten skal simuleres eller utvides med moderne midler.

Se også

litteratur

  • Dennis Yurichev: Reverse Engineering for Beginners. Nettbok: http://beginners.re/ Tysk versjon: https://beginners.re/RE4B-DE.pdf
  • Pamela Samuelson, Suzanne Scotchmer: The Law and Economics of Reverse Engineering. I: Yale Law Journal. Vol 111, nr. 7. mai 2002, s. 1575-1664. (PDF) ( Memento fra 15. februar 2012 i Internet Archive )
  • E. Eilam: Reversing: Secrets of Reverse Engineering. John Wiley & Sons, 2005, ISBN 0-7645-7481-7 .
  • HJ van Zuylen: REDO Compendium. Omvendt engineering for programvarevedlikehold. John Wiley & Sons, Chichester et al., 1993, ISBN 0-471-93607-3 .
  • Matthias Pierson, Thomas Ahrens, Karsten Fischer: Immateriell rett . Verlag Vahlen, 2007, ISBN 978-3-8006-3428-6 .
  • Marcus von Welser, Alexander González: Piratkopiering av merkevarer og produkter, strategier og tilnærminger for å bekjempe det. Wiley-VCH, 2007, ISBN 978-3-527-50239-4 .
  • Vinesh Raja, Kiran J. Fernandes: Reverse Engineering-An Industrial Perspective. Springer, 2008, ISBN 978-1-84628-855-5 .
  • Christine Schöne: Reverse engineering for freeform overflater i prosesskjeder innen produksjonsteknologi. Dr Hut, 2009, ISBN 978-3-86853-103-9 .

Individuelle bevis

  1. ^ Blake Patterson: A Fascinating Look Under the Hood of "Another World". toucharcade.com, 26. desember 2011, åpnet 14. oktober 2013 .
  2. ^ Fabien Sanglard: "Another World" Code Review. fabiensanglard.net, 23. desember 2011, åpnet 14. januar 2013 (engelsk): “ Jeg brukte to uker på å lese og reverse engineering videre kildekoden til Another World (“ Out Of This World ”i Nord-Amerika). Jeg baserte arbeidet mitt på Gregory Montoirs "binære til C ++" innledende reversering fra DOS-kjørbarheten. Jeg ble overrasket over å oppdage et elegant system basert på en virtuell maskin som tolker bytecode i sanntid og genererer fullskjermsvektorfilm for å produsere et av de beste spillene gjennom tidene. "
  3. P. Lempp, RJ Torick: Software Reverse Engineering: En tilnærming til å gjenfange pålitelig programvare. 4. årlige felles konferanse om programvarekvalitet og produktivitet, Crystal City, VA; 1. - 3. Mars 1988.
  4. Dinar Kale, Steve Little: Fra imitasjon til innovasjon: utviklingen av FoU-evner og læringsprosesser i den indiske farmasøytiske industrien . I: Teknologianalyse og strategisk ledelse . teip 19 , nei. 5. september 2007, ISSN  0953-7325 , s. 589-609 , doi : 10.1080 / 09537320701521317 ( tandfonline.com [åpnet 30. mars 2021]).
  5. ^ Matthew Gault: Stanford Scientists Reverse Engineer Moderna Vaccine, postnummer på Github. I: Vice. 29. mars 2021, åpnet 30. mars 2021 (amerikansk engelsk).
  6. NAalytics: NAalytics / Assemblies-of-putative-SARS-CoV2-spike-coding-mRNA-sequences-for-vaccines-BNT-162b2-and-mRNA-1273. I: GitHub. 23. mars 2021, åpnet 30. mars 2021 .
  7. Unntak fra forbud mot omgåelse av opphavsrettsbeskyttelsessystemer for tilgangskontrollteknologier (PDF)
  8. Emma Boyes: Abandonware nå lovlig. gamespot.com, 27. november 2006, åpnet 11. januar 2013 .
  9. a b https://sciencing.com/what-is-the-difference-between-reverse-engineering-and-re-engineering-12749441.html Hva er forskjellen mellom reverse engineering og re-engineering? Sciencing , åpnet 4. november 2019