Hämärtää Dotfuscatorilla luotuja sovelluksia
yhteenveto
Koska .NET Frameworkiin perustuvat sovellukset luodaan niin sanotulla yhteisellä välikielellä, ne voidaan lukea lähellä alkuperäistä lähdekoodia olevassa muodossa käyttämällä purkutyökaluja ja vastaavia. Tässä osassa kuvataan, kuinka Obtfuscator, Visual Studion mukana tuleva obfuscator, hämärtää luokkien ja menetelmien nimet muotoon, joka ei ole helposti luettavissa.
Puhumme siitä täällä Visual Studio 2010: n avulla, mutta voit käyttää Dotfuscatoria myös vuosina 2005 ja 2008.
Toimintaympäristö
Tuetut Visual Studio -versiot
- 2005
- 2008
- 2010
Tarkista Visual Studio -versio
- 2005
- 2008
- 2010
aine
Tietoja Dotfuscatorista
Dotfuscator on hämärtymistyökalu, joka vaikeuttaa lähdekoodin lukemista, kun se puretaan .NET Frameworkilla kirjoitetuissa sovelluksissa. Dotfuscatorin mukana tulee Visual Studio ilmaiseksi ja maksua vastaan.
Ilmainen versio ei ole käytettävissä, elleivät monet sen ominaisuuksista ole rajoitettuja tai Visual Studio on käynnistetty, mutta kuka tahansa voi käyttää sitä niin kauan kuin visual studio on asennettu. Maksullisessa versiossa on monia tehokkaita hämärtymisominaisuuksia, joita ei löydy ilmaisesta versiosta, mutta sitä tarjotaan hinnalla, johon suuren yleisön on vaikea olla varaa.
Dotfuscatorilla on erilaisia ominaisuuksia, hintoja ja versioita versiosta riippuen, joten katso lisätietoja seuraavalta kotisivulta.
Hämärtymismenettely
Mainitsin aiemmin, että .NET Frameworkilla luodut sovellukset voivat purkaa ja lukea helposti alkuperäisen lähdekoodin, mutta todellinen tilanne on, että jos purat exe-tiedoston oikealla olevan kuvan mukaisesti, voit melkein toistaa alkuperäisen lähdekoodin, kuten nimiavaruuden, luokan nimen, menetelmän nimen jne.
Kuvaa vaiheet, joilla nämä nimet ovat hämmentäviä ja hämärtyneitä.
Sovelluksen luominen Visual Studiossa ja exe-tiedoston luominen on täsmälleen sama kuin normaali tapa luoda se.
Kun olet luonut ja luonut exe-tiedoston, valitse Visual Studio -valikosta Työkalut ja valitse sitten Dotfuscator Software Services.
Kun aloitat ensimmäisen kerran, "Lisenssisopimus" -valintaikkuna tulee näkyviin oikealla olevan kuvan osoittamalla tavalla, joten lue sisältö huolellisesti, tarkista "Kyllä, hyväksyn lisenssisopimuksen".
Dotfuscator Software Services käynnistyy.
Obfusoitavan exe-tiedoston (tai dll-tiedoston) ei tarvitse olla tällä hetkellä avoimesta projektista.
Valitse syöttökokoonpanot vasemmalla olevasta puusta ja napsauta oikealla olevaa Syöttökokoonpanot napsauttamalla ... -painiketta.
Valitse exe-tiedosto, jonka haluat hämärtää.
Valittu exe-tiedosto lisätään luetteloon. Jos haluat hämärtää useita tiedostoja, napsauta "..." -painiketta toisen rivin jälkeen lisätäksesi ne.
Kun olet valinnut exe-tiedoston, jonka haluat hämärtää, napsauta työkalurivin Rakenna projekti -painiketta.
Jos projektiin tulee muutoksia, näkyviin tulee projektin tallennuksen vahvistusikkuna, joten tallenna napsauttamalla "Kyllä".
Hankkeen nimi on ". xml" -tiedosto. Obfuskoitu exe-tiedosto tallennetaan myös samaan paikkaan, joten tallenna .xml tiedosto mihin tahansa kansioon.
Rakennus alkaa ja odottaa, kunnes se on valmis. Huomaa, että mitä suurempi ohjelma, sitä kauemmin sen rakentaminen kestää. Jos se näyttää oikealla olevalta kuvalta, rakennus on valmis.
Viestikenttä näyttää yksinkertaisia tuloksia, kuten koontiversion edistymisen ja sen hämärtymisen.
Jos valitset vasemmalla olevasta puusta "Tulos", näet yksityiskohdat siitä, miten luokan ja menetelmien nimet ovat muuttuneet.
Luokan ja menetelmien nimien alapuolella on Dotfuscator-kuvake ja nimi, kuten "a" tai "b", joka on obfuskoitu nimi. Muuttamalla luokan nimen tai menetelmän nimen tällaiseksi merkityksettömäksi nimeksi voit vaikeuttaa lähdekoodin sisällön lukemista, vaikka se purettaisiin.
Obfuskoidut exe-tiedostot luodaan Save Projectiin tallennettujen .xml tiedostojen kansioon, nimeltään "Dotfuscated", ja ne luodaan siihen. Exe-tiedoston lisäksi on luotu "Map .xml" -tiedosto, mutta tämä on seurausta hämärtymisestä, eikä sitä tule käyttää.
Obfuskoituja exiä voidaan ajaa ja käyttää sellaisenaan. On kuitenkin tapauksia, joissa sitä ei voida käynnistää tuntemattoman virheen vuoksi, kuten oikealla olevassa kuvassa näkyy.
Tällä kertaa kirjoitin sovelluksen WPF: ssä, mutta koska ensimmäisen näytettävän ikkunan XAML-tiedosto on määritetty merkkijonoksi, hämmennyksestä johtuva uudelleennimeäminen aiheuttaa viittauksen katoamisen, mikä johtaa virheeseen.
Windows Form -sovellukset viittaavat suoraan From-luokkaan, joten ne voivat toimia ilman virheitä, vaikka ne olisivat hämärtyneet. Jos kuitenkin määrität luokan nimen, enum-tyypin jne.
Jos et halua hämärtää luokkaa tai jotain, valitse Nimeä uudelleen Dotfuscatorin vasemmalla puolella olevasta puusta ja valitse keskimmäisestä välilehdestä Jätä pois.
Jokainen nimiavaruus, luokan nimi jne.
Täällä en halua muuttaa ensin näytettävän ikkunan luokan nimeä, joten tarkistan "MainWindow".
Kun teet koontiversion, näet, että luokan nimen alla ei ole muutettua nimeä MainWindowsissa. (Sovellusluokka on muunnettu "a")
Kun suoritat obfuskoidun exe-tiedoston, näet, että ikkuna näkyy oikein.
Jos purat obfuskoidun exe-tiedoston, näet, että luokan nimi ja menetelmän nimi on muutettu oikein "a" tai "b".
Mutta sivuhuomautuksena. NET Framework -kirjastoja, kuten luokkien nimiä, ei nimetä uudelleen, koska ne ovat kokoonpanoja, jotka on jo asennettu Windowsiin ja muualle.
Tällä kertaa hämärsin sellaisenaan luodun oletusprojektin, joten luulen, että on olemassa kuva, jota se ei ole niin hämärtynyt, mutta mielestäni hämärtymisen vaikutus tulee selväksi, koska luokkien määrä jne.
Lisäksi, vaikka olemme sisällyttäneet menettelyn tällä kertaa ilmaiseen versioon, maksettu versio mahdollistaa monimutkaisemman hämärtymisen ja estää myös itse purkamisen. Hämärtymisellä on kuitenkin erilaisia haitallisia vaikutuksia ja mahdollisuuksia esiintyä, joten kun hämärtyminen suoritetaan, on tarpeen tehdä se harkiten, toimiiko se oikein suunnittelun alusta alkaen.