Silverlight-sovelluksen hämärtäminen Dotfuscatorilla

Sivu päivitetty :
Sivun luontipäivämäärä :

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.

Dotfuscator

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.

Release ビルド

Kirjoita projektin sijaintikansion Bin\Release-kansioon . xap" on pakettitiedosto, joka sisältää yhteenvedon Silverlight-sovelluksissa käytetyistä ohjelmista ja tiedostoista.

XAP ファイル

Itse asiassa tämä tiedosto pakataan ja käännetään ZIP-tiedostoksi, joten laajennus on ". vetoketju".

拡張子を .zip に変更

Se on muutettu ZIP-tiedostoksi.

ZIP ファイル

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.

ZIP ファイルの中身

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 を選択

PreEmptive Dotfuscator And Analytics CE käynnistyy.

PreEmptive Dotfuscator And Analytics CE

Valitse vasemmalla olevasta puusta "Inputs" ja napsauta "Add Input" -painiketta.

入力の追加

Valitse DLL-tiedosto, jonka loit koontiversion aikana.

ビルドで生成した DLL ファイルを選択

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.

「ライブラリ モード」「XAML の変換」のチェックを外す

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.

Silverlight および WPF UserControls のフィールド

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 化

ZIP-tiedosto luodaan.

ZIP ファイル

Laajennus muutetaan muotoon '. xap" ja jos tiedostonimi on erilainen, vaihda se alkuperäiseksi paketin tiedostonimeksi.

Sijoita XAP-tiedosto jakelusijaintiin.

XAP ファイルに変更

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.