Programvare sprekk - Software cracking

Software cracking (kjent som "breaking" hovedsakelig på 1980 -tallet) er modifisering av programvare for å fjerne eller deaktivere funksjoner som anses som uønsket av personen som sprekker programvaren, spesielt kopibeskyttelsesfunksjoner (inkludert beskyttelse mot manipulering av programvare, serienummer, maskinvarenøkkel, datokontroller og skivekontroll) eller programvareirritasjoner som nag -skjermer og adware .

En sprekk refererer til virkemidlene for å oppnå, for eksempel et stjålet serienummer eller et verktøy som utfører denne sprekkhandlingen. Noen av disse verktøyene kalles keygen , patch eller loader . En nøkkelgenerator er en håndlaget produktnummergenerator som ofte tilbyr muligheten til å generere fungerende serienumre i ditt eget navn. En oppdatering er et lite dataprogram som endrer maskinkoden til et annet program. Dette har fordelen for en cracker å ikke inkludere en stor kjørbar fil i en utgivelse når bare noen få byte endres. En laster endrer oppstart av et program og fjerner ikke beskyttelsen, men omgår den. Et velkjent eksempel på en laster er en trenerpleide å jukse i spill. Fairlight påpekte i en av .nfo -filene at denne typen sprekker ikke er tillatt for warez scene spillutgivelser. En nukewar har vist at beskyttelsen ikke kan sparke inn på noe tidspunkt for at det skal være en gyldig sprekk.

Distribusjon av sprukne kopier er ulovlig i de fleste land. Det har vært søksmål om cracking -programvare. Det kan være lovlig å bruke sprukket programvare under visse omstendigheter. Utdanningsressurser for omvendt konstruksjon og cracking av programvare er imidlertid lovlige og tilgjengelige i form av Crackme -programmer.

Historie

Den første programvarekopibeskyttelsen ble brukt på programvare for datamaskinene Apple II , Atari 800 og Commodore 64. Programvareutgivere har implementert stadig mer komplekse metoder i et forsøk på å stoppe uautorisert kopiering av programvare.

På Apple II, i motsetning til moderne datamaskiner som bruker standardiserte enhetsdrivere til å administrere enhetskommunikasjon, styrte operativsystemet direkte trinnmotoren som beveger diskettstasjonshodet , og tolket også rådata direkte, kalt nibbles , lest fra hvert spor for å identifisere datasektoren. Dette tillot kompleks diskbasert programvarekopibeskyttelse ved å lagre data på halve spor (0, 1, 2.5, 3.5, 5, 6 ...), kvartalspor (0, 1, 2.25, 3.75, 5, 6 ... ), og enhver kombinasjon derav. I tillegg trengte spor ikke å være perfekte ringer, men kunne deles slik at sektorer kunne forskyves over overlappende offsetbaner, den mest ekstreme versjonen ble kjent som spiralsporing. Det ble også oppdaget at mange diskettstasjoner ikke hadde en fast øvre grense for hodebevegelse, og det var noen ganger mulig å skrive et ekstra 36. spor over de normale 35 sporene. Standard Apple II-kopieringsprogrammer kunne ikke lese slike beskyttede disketter, siden standard DOS antok at alle disker hadde et enhetlig 35-spors, 13- eller 16-sektors oppsett. Spesielle nibble-kopieringsprogrammer som Locksmith og Copy II Plus kan noen ganger duplisere disse platene ved å bruke et referansebibliotek med kjente beskyttelsesmetoder; når beskyttede programmer ble sprukket, ville de bli fullstendig fjernet fra kopibeskyttelsessystemet og overført til en standardformatdisk som alle vanlige Apple II -kopiprogrammer kunne lese.

En av de viktigste rutene for å hacke disse tidlige kopibeskyttelsene var å kjøre et program som simulerer den normale CPU -operasjonen. CPU-simulatoren gir en rekke ekstra funksjoner til hackeren, for eksempel muligheten til å gå ett trinn gjennom hver prosessorinstruksjon og å undersøke CPU-registre og modifiserte minneplasser mens simuleringen kjører (enhver moderne demonterer/debugger kan gjøre dette). Apple II ga en innebygd opkode-demonterer, slik at råminne kan dekodes til CPU-opkoder, og dette vil bli brukt til å undersøke hva kopibeskyttelsen skulle gjøre videre. Vanligvis var det lite eller ingen forsvar tilgjengelig for kopibeskyttelsessystemet, siden alle hemmelighetene blir synlige gjennom simuleringen. Men fordi selve simuleringen må kjøre på den opprinnelige CPUen, i tillegg til at programvaren ble hacket, ville simuleringen ofte kjøre ekstremt sakte selv ved maksimal hastighet.

På Atari 8-biters datamaskiner var den vanligste beskyttelsesmetoden via "dårlige sektorer". Dette var sektorer på disken som med vilje var uleselig av diskstasjonen. Programvaren ville lete etter disse sektorene når programmet ble lastet inn og ville slutte å laste inn hvis en feilkode ikke ble returnert når du åpnet disse sektorene. Spesielle kopieringsprogrammer var tilgjengelige som ville kopiere disken og huske eventuelle dårlige sektorer. Brukeren kan deretter bruke et program til å snurre stasjonen ved konstant å lese en enkelt sektor og vise stasjonen RPM. Når toppen av diskstasjonen er fjernet, kan en liten skrutrekker brukes til å senke turtallet under et bestemt punkt. Når stasjonen ble bremset, kunne programmet gå og skrive "dårlige sektorer" der det var nødvendig. Når du var ferdig, ble omdreiningstallet for hastigheten raskere tilbake til det normale og det ble laget en ikke -sprukket kopi. Selvfølgelig knekker programvaren for å forvente gode sektorer laget for lett kopierte disker uten å måtte blande seg med diskstasjonen. Etter hvert som tiden gikk ble mer sofistikerte metoder utviklet, men nesten alle involverte en eller annen form for misdannede diskdata, for eksempel en sektor som kan returnere forskjellige data på separate tilganger på grunn av dårlig datajustering. Produkter ble tilgjengelige (fra selskaper som Happy Computers ) som erstattet kontrolleren BIOS i Ataris "smarte" stasjoner. Disse oppgraderte stasjonene tillot brukeren å lage eksakte kopier av det originale programmet med kopibeskyttelse på plass på den nye disken.

På Commodore 64 ble det brukt flere metoder for å beskytte programvare. For programvare distribuert på ROM -kassetter ble det inkludert subrutiner som forsøkte å skrive over programkoden. Hvis programvaren var på ROM, ville ingenting skje, men hvis programvaren hadde blitt flyttet til RAM , ville programvaren blitt deaktivert. På grunn av driften av Commodore diskettstasjoner, ville ett skrivebeskyttelsesopplegg få diskettstasjonshodet til å slå mot enden av skinnen, noe som kan føre til at drivhodet blir feiljustert. I noen tilfeller var sprukne versjoner av programvare ønskelig for å unngå dette resultatet. Et feil justert drivhode var sjelden som vanligvis fikset seg ved å knuse mot skinnestoppene. En annen brutal beskyttelsesordning var sliping fra spor 1 til 40 og tilbake noen ganger.

De fleste av de tidlige programvarekjekkene var datamaskinhobbyister som ofte dannet grupper som konkurrerte mot hverandre i sprekk og spredning av programvare. Å bryte en ny kopibeskyttelsesordning så raskt som mulig ble ofte sett på som en mulighet til å demonstrere sin tekniske overlegenhet fremfor en mulighet til å tjene penger. Noen lavt dyktige hobbyister ville ta allerede sprukket programvare og redigere forskjellige ukrypterte tekststrenger i den for å endre meldinger et spill ville fortelle en spillerspiller, ofte noe som ble ansett som vulgært. Opplasting av de endrede kopiene på fildelingsnettverk ga en latter for voksne brukere. Cracker -gruppene på 1980 -tallet begynte å annonsere seg selv og sine ferdigheter ved å legge ved animerte skjermer kjent som crack -introer i programvarene de sprakk og ga ut. Når den tekniske konkurransen hadde utvidet seg fra utfordringene med sprekkdannelse til utfordringene med å lage visuelt imponerende introer, ble grunnlaget for en ny subkultur kjent som demoscene etablert. Demoscene begynte å skille seg fra den ulovlige "warez -scenen" på 1990 -tallet og blir nå sett på som en helt annen subkultur. Mange programvare -krakkere har senere vokst til ekstremt dyktige omvendte ingeniører; Den dype kunnskapen om montering som kreves for å spre sprekker gjør dem i stand til å ombygge drivere for å overføre dem fra bare binære drivere for Windows til drivere med kildekoden for Linux og andre gratis operativsystemer. Også fordi musikk og spillintro var en så integrert del av gaming, ble musikkformatet og grafikken veldig populær da maskinvare ble rimelig for hjemmebrukeren.

Med fremveksten av Internett utviklet programvarekjeksere hemmelighetsfulle nettorganisasjoner. I siste halvdel av nittitallet var Fravias nettsted en av de mest respekterte informasjonskildene om "reversering av programvarebeskyttelse" .

De fleste av de velkjente eller "elite" -sprekkegruppene lager programvaresprekk helt for respekt i " Scene ", ikke profitt. Derfra blir sprekkene til slutt lekket ut på offentlige internettsider av mennesker/crackere som bruker velbeskyttede/sikre FTP-utgivelsesarkiver, som blir gjort til fulle kopier og noen ganger selges ulovlig av andre parter.

Scenen i dag består av små grupper av dyktige mennesker, som uformelt konkurrerer om å ha de beste kjeksene, metodene for sprekkdannelse og omvendt konstruksjon .

+HCU

Den høy Cracking universitet (+ HCU) ble grunnlagt av Old Red Cracker (+ ORC), ansett som et geni av reverse engineering og en legendarisk figur i RCE, til forhånd forskning på Omvendt Kode Engineering (RCE). Han hadde også undervist og forfattet mange artikler om emnet, og tekstene hans regnes som klassikere i feltet og er obligatorisk lesing for studenter ved RCE.

Tillegg av " +" - tegnet foran kallenavnet til en reverser betydde medlemskap i +HCU. Blant studentene på +HCU var toppen av eliten Windows -reversere over hele verden. +HCU publiserte årlig et nytt reverse engineering -problem og et lite antall respondenter med de beste svarene kvalifiserte seg til en lavere stilling ved universitetet.

+Fravia var professor ved +HCU. Fravias nettsted var kjent som "+Fravia's Pages of Reverse Engineering", og han brukte det til å utfordre programmerere så vel som det store samfunnet til å "reverse engineer" "hjernevaskingen av en korrupt og voldsom materialisme". I sin storhetstid mottok nettstedet hans millioner av besøkende per år, og innflytelsen var "utbredt".

I dag har de fleste nyutdannede ved +HCU migrert til Linux, og få har forblitt som Windows -reversere. Informasjonen ved universitetet har blitt gjenoppdaget av en ny generasjon forskere og utøvere av RCE som har startet nye forskningsprosjekter innen feltet.

Metoder

Den vanligste programvaresprekken er modifisering av programmets binære for å forårsake eller forhindre en bestemt nøkkelgren i programmets utførelse. Dette oppnås ved reverse engineering av den kompilerte programkoden ved hjelp av en feilsøkingsprogram som SoftICE , x64dbg , OllyDbg , GDB eller MacsBug til programvareknekkeren når subrutinen som inneholder hovedmetoden for å beskytte programvaren (eller ved å demontere en kjørbar fil med en program som IDA ). Den binære deretter endres ved hjelp av debugger eller en hex editor eller monitor på en måte som erstatter en tidligere forgrening opcode med sin supplement eller en NOP opcode så nøkkelen grenen vil enten alltid utføre en bestemt subrutine eller hoppe over det. Nesten alle vanlige programvaresprengninger er en variant av denne typen. Eiendomsutviklede programvareutviklere utvikler stadig teknikker som for eksempel skjult kode , kryptering og selvmodifiserende kode for å gjøre denne endringen stadig vanskeligere. Selv om disse tiltakene blir tatt, sliter utviklere med å bekjempe programvaresprekk. Dette er fordi det er veldig vanlig at en profesjonell offentliggjør en enkel sprukket EXE eller Retrium Installer for offentlig nedlasting, og eliminerer behovet for uerfarne brukere å sprekke programvaren selv.

Et spesifikt eksempel på denne teknikken er en sprekk som fjerner utløpsperioden fra en tidsbegrenset prøveversjon av et program. Disse sprekkene er vanligvis programmer som endrer programmet kjørbare og noen ganger .dll eller .so koblet til programmet. Lignende sprekker er tilgjengelig for programvare som krever en hardware dongle . Et selskap kan også bryte kopibeskyttelsen til programmer som de har kjøpt lovlig, men som er lisensiert til bestemt maskinvare, slik at det ikke er fare for nedetid på grunn av maskinvarefeil (og selvfølgelig ikke nødvendig å begrense seg til å kjøre programvaren bare på kjøpt maskinvare).

En annen metode er bruk av spesiell programvare som CloneCD for å skanne etter bruk av et kommersielt kopibeskyttelsesprogram. Etter å ha oppdaget programvaren som brukes til å beskytte programmet, kan et annet verktøy brukes til å fjerne kopibeskyttelsen fra programvaren på CD -en eller DVD -en . Dette kan gjøre det mulig for et annet program som Alcohol 120% , CloneDVD , Game Jackal eller Daemon Tools å kopiere den beskyttede programvaren til en brukers harddisk. Populære kommersielle kopibeskyttelsesprogrammer som kan skannes etter inkluderer SafeDisc og StarForce.

I andre tilfeller kan det være mulig å dekompilere et program for å få tilgang til den opprinnelige kildekoden eller koden på et nivå som er høyere enn maskinkoden . Dette er ofte mulig med skriptspråk og språk som bruker JIT -kompilering. Et eksempel er sprekk (eller feilsøking) på .NET -plattformen der man kan vurdere å manipulere CIL for å oppnå sine behov. Java's bytecode fungerer også på en lignende måte der det er et mellomspråk før programmet kompileres for å kjøre på den plattformavhengige maskinkoden .

Avansert omvendt konstruksjon for beskyttelse som SecuROM , SafeDisc , StarForce eller Denuvo krever at en krakker eller mange kjeks bruker mye mer tid på å studere beskyttelsen, til slutt finner alle feil i beskyttelseskoden og deretter koding av egne verktøy for å "pakke ut" beskyttelsen automatisk mot kjørbare (.EXE) og bibliotek (.DLL) filer.

Det finnes en rekke nettsteder på Internett som lar brukere laste ned sprekker produsert av warez -grupper for populære spill og applikasjoner (selv om det er fare for å skaffe seg skadelig programvare som noen ganger distribueres via slike nettsteder). Selv om disse sprekkene brukes av lovlige kjøpere av programvare, kan de også brukes av folk som har lastet ned eller på annen måte fått uautoriserte kopier (ofte gjennom P2P -nettverk).

Tilbakestilling av prøveperiode

Mange kommersielle programmer som kan lastes ned fra Internett har en prøveperiode (ofte 30 dager) og må registreres (dvs. kjøpes) etter utløpet hvis brukeren ønsker å fortsette å bruke dem. For å tilbakestille prøveperioden, endres og/eller slettes registeroppføringer og/eller skjulte filer som inneholder informasjon om prøveperioden. For dette formålet utvikler krakkere " prøve -tilbakestillere " for et bestemt program eller noen ganger også for en gruppe programmer av samme produsent.
En metode for å gjøre prøvetilbakestillinger mindre attraktive er begrensningen av programvaren i prøveperioden (f.eks. Noen funksjoner er bare tilgjengelige i den registrerte versjonen; bilder/videoer/kopier som er opprettet med programmet får et vannmerke ; programmet kjører bare 10 –20 minutter og lukkes deretter automatisk). Noen programmer har en ubegrenset prøveperiode, men er begrenset til registrering.

Se også

Referanser