Silverlight-sovelluksen hämärtäminen Dotfuscatorilla
Tietoja Dotfuscatorista
Dotfuscator on obfuskaattori, joka vaikeuttaa lähdekoodin lukemista, kun .NET Frameworkilla kirjoitetut sovellukset puretaan. Dotfuscator on saatavana sekä ilmaisina että maksullisina vähittäismyyntiversioina, jotka tulevat Visual Studion mukana.
Ilmainen versio on saatavana vain monilla rajoitetuilla ominaisuuksilla ja oletuksella, että Visual Studio on käynnissä, mutta kuka tahansa, johon on asennettu Visual Studio, voi käyttää sitä. Maksullisessa versiossa on monia tehokkaita hämärtymisominaisuuksia, joita ei ole saatavana ilmaisessa versiossa, mutta voi olla ärsyttävää, että sitä tarjotaan hintaan, johon suuren yleisön on vaikea varaa.
Dotfuscatorilla voi olla erilaisia ominaisuuksia, hinnoittelua ja versioita versiosta riippuen, joten katso lisätietoja seuraavalta verkkosivustolta.
Jäsennetty koodi
Kuten edellä mainittiin, .NET Frameworkilla luodut sovellukset voivat helposti lukea alkuperäisen lähdekoodin purkamalla, mutta todellisuudessa tapahtuu, että kun purat kokoonpanotiedoston kuvan osoittamalla tavalla, suurin osa alkuperäisestä lähdekoodista, kuten nimiavaruudet, luokkien nimet ja menetelmien nimet, voidaan toistaa.
Hämärtymismenettely
Aloita luomalla Silverlight-sovellus tavalliseen tapaan ja tekemällä julkaisuversio. Tässä luomme sovelluksen, joka sijoittaa vain kaksi painiketta.
Kirjoita projektin sijaintikansion Bin\Release-kansioon . xap" on pakettitiedosto, joka sisältää yhteenvedon Silverlight-sovelluksissa käytetyistä ohjelmista ja tiedostoista.
Itse asiassa tämä tiedosto pakataan ja käännetään ZIP-tiedostoksi, joten laajennus on ". vetoketju".
Se on muutettu ZIP-tiedostoksi.
Kun avaat tiedoston, se sisältää luettelotiedoston ja DLL-tiedoston. Tämä DLL on ohjelman käännetty versio, joka toimii sovelluksena.
Muuten, DLL-tiedosto sijoitetaan myös Release-kansioon, kun se on rakennettu, joten tällä kertaa hämärtämme tämän tiedoston.
Valitse Visual Studio -valikosta Työkalut ja valitse sitten PreEmptive Dotfuscator And Analytics.
Kun aloitat ensimmäistä kertaa, "Lisenssisopimus" -valintaikkuna tulee näkyviin, joten lue sisältö huolellisesti, tarkista "Kyllä, hyväksyn lisenssisopimuksen." ja napsauta "OK" -painiketta.
PreEmptive Dotfuscator And Analytics CE käynnistyy.
Valitse vasemmalla olevasta puusta "Inputs" ja napsauta "Add Input" -painiketta.
Valitse DLL-tiedosto, jonka loit koontiversion aikana.
Valitse lisäämäsi DLL-tiedosto ja poista valinta kohdasta Kirjastotila > XAML-muunnos.
Jos "Kirjastotila" on valittuna, julkisesti määriteltyjä luokkia ja menetelmiä ei hämärretä.
Jos "XAML-muunnos" on valittuna, XAML:ssä määritetyt luokat hämärtyvät, mutta riippuen siitä, miten luot sen, se aiheuttaa käynnistysvirheen, joten jos se tapahtuu, poista valinta.
Periaatteessa kaikki luokat, menetelmät, ominaisuudet ja muuttujien nimet ovat hämärtyneet, mutta jos et halua hämärtää tiettyä nimiavaruutta tai luokkaa sarjoituksen vuoksi, valitse vasemmalla olevasta puusta "Nimeä uudelleen", valitse "Sulje" -välilehti ja tarkista kohdenimiavaruus tai luokka.
Varmista Sisäiset säännöt -kohdassa, että Silverlightin ja WPF UserControlsin kentät on valittuna. Tämän tarkistaminen tekee UserControls-kentästä hämärtyneen ja toimii onnistuneesti. Voit poistaa sen valinnan, jos se näyttää toimivan oikein myös hämärtymisen jälkeen.
Kun olet valmis, napsauta työkalurivin "Rakenna projekti" -painiketta.
Jos projektiin on tehty muutoksia, projektin tallennuksen vahvistusikkuna tulee näkyviin, joten napsauta "Kyllä" tallentaaksesi.
Hankkeen nimi on ". xml"-tiedosto. Obfuskoidut tiedostot tallennetaan samaan sijaintiin.
Odota, että koontiversio on valmis, kun se alkaa. Huomaa, että mitä suurempi ohjelma, sitä kauemmin rakentaminen kestää. Kun se näyttää kuvalta, rakennus on valmis.
Viestikenttä näyttää koontiversion edistymisen ja lyhyen tuloksen, kuten kuinka hämärtynyt se oli.
Jos valitset vasemmalla olevasta puusta Tulokset, näet tietoja siitä, miten luokkien ja menetelmien nimet ovat muuttuneet.
Luokkien ja menetelmien nimien alla on Dotfuscator-kuvake ja nimet, kuten "a" ja "b", jotka ovat hämärtynyt nimi. Muuttamalla luokan tai menetelmän nimen merkityksettömäksi nimeksi tällä tavalla, vaikka se puretaan, se voi vaikeuttaa lähdekoodin sisällön lukemista.
Hämärtynyt tiedosto luodaan kansioon nimeltä "Dotfuscated" Save Projectiin tallennetun .xml tiedoston kansiossa. Hämärtyneen tiedoston lisäksi on luotu "Map.xml" -tiedosto, mutta tämä on seurausta hämärtymisestä eikä sitä käytetä.
Jos purat hämärtyneen tiedoston, näet, että joidenkin luokkien ja menetelmien nimet on muutettu "a" tai "b".
Tällä kertaa luotu oletusprojekti hämärtyi melkein sellaisenaan, joten mielestäni on olemassa kuva, että se ei ole niin hämärtynyt, mutta mielestäni hämärtymisen vaikutus tulee selvemmäksi, koska luokkien määrä jne.
Sivuhuomautuksena, . NET Framework -kirjastot, eikä niitä nimetä uudelleen, koska ne ovat kokoonpanoja, jotka on jo asennettu esimerkiksi Windowsiin.
Silverlight ei käytä DLL-tiedostoja sellaisenaan, joten ne pakataan XAP-tiedostoina. Kuten alussa mainittiin, XAP-tiedosto on vain muutos ZIP-tiedoston laajennuksessa, joten se luo ZIP-tiedoston keräämällä XAP-tiedoston ja hämärtyneiden DLL-tiedostojen sisältämät tiedostot.
ZIP-tiedoston luominen voidaan tehdä käyttämällä käyttöjärjestelmän vakio-ominaisuuksia.
ZIP-tiedosto luodaan.
Laajennus muutetaan muotoon '. xap" ja jos tiedostonimi on erilainen, vaihda se alkuperäiseksi paketin tiedostonimeksi.
Sijoita XAP-tiedosto jakelusijaintiin.
Tarkista toiminto ja katso, toimiiko se oikein.
Jos se ei käynnisty, tarkista, kunnes se toimii normaalisti vähentämällä hämärtynyttä koodia. Huomaa, että Silverlight juuttuu usein XAML:ään liittyviin asioihin.
Vaikka ohjeita ei ole lueteltu tässä, jos haluat allekirjoittaa ohjelman, rakenna se viiveellä allekirjoitettuun tilaan, hämärtää kokoonpano ja allekirjoita sitten uudelleen. Vaikka hämärtäisit sen allekirjoittamisen aikana, rakennushetkellä liitetty allekirjoituskoodi ja allekirjoituskoodi hämärtymisen jälkeen eivät täsmää, joten et voi käynnistää sitä.
Tässä artikkelissa olen luetellut ilmaisen version vaiheet, mutta jos käytät maksettua versiota, voit suorittaa monimutkaisemman hämärtymisen ja estää itse purkamisen. Hämärtyminen voi kuitenkin aiheuttaa erilaisia haitallisia vaikutuksia, joten kun hämärtäminen tehdään, on tarpeen pohtia, toimiiko se kunnolla suunnittelun alusta alkaen.