Hämärtää Dotfuscatorilla luotuja sovelluksia

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

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.

Dotfuscator を使用して作成したアプリケーションを難読化する

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ä.

Dotfuscator Software Services

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

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.

難読化する exe ファイル

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.