Zamašite aplikacijo Silverlight z dotfuscatorjem

Stran posodobljena :
Datum ustvarjanja strani :

O Dotfuscatorju

Dotfuscator je obfuscator, ki otežuje branje izvorne kode, ko so aplikacije, napisane s .NET Framework, razčlenjene. Dotfuscator je na voljo v brezplačnih in plačanih maloprodajnih različicah, ki so na voljo z Visual Studio.

Brezplačna različica je na voljo le s številnimi omejenimi funkcijami in predpostavko, da se Visual Studio izvaja, lahko pa jo uporabi vsak, ki ima nameščen Visual Studio. Plačana različica ima številne zmogljive obfuscation funkcije, ki niso na voljo v brezplačni različici, vendar je morda nadležno, da se ponudi po ceni, ki si jo splošna javnost težko privošči.

Dotfuscator ima lahko različne funkcije, cene in izdaje, odvisno od različice, zato si za podrobnosti oglejte to spletno mesto.

Dotfuscator

Razčlenjena koda

Kot smo že omenili, lahko aplikacije, ustvarjene z .NET Framework, preprosto preberejo izvirno izvorno kodo z razstavljanjem, vendar se dejansko zgodi, da se lahko pri razstavljanjem montaže datoteke, kot je prikazano na sliki, reproducirate večino izvirne izvorne kode, kot so imenski prostori, imena razredov in imena metod.

解析されたコード

Postopek obfusacije

Začnite tako, da ustvarite aplikacijo Silverlight kot običajno in naredite izdajo graditev. Tukaj ustvarjamo aplikacijo, ki postavi le dva gumba.

Release ビルド

V mapo Bin\Release mape, v kateri je projekt, vnesite . xap" je paketna datoteka, ki povzema programe in datoteke, uporabljene v silverlight aplikacijah.

XAP ファイル

Pravzaprav je ta datoteka stisnjena in sestavljena kot ZIP datoteka, zato je razširitev ". zip".

拡張子を .zip に変更

Spremenjena je bila v ZIP datoteko.

ZIP ファイル

Ko odprete datoteko, vsebuje manifestno datoteko in DLL. Ta DLL je sestavljena različica programa, ki se izvaja kot aplikacija.

Mimogrede, DLL datoteka je tudi v mapo Release, ko je zgrajena, tako da bomo tokrat zamaknili to datoteko.

ZIP ファイルの中身

V meniju Visual Studio izberite Orodja in nato PreEmptive Dotfuscator And Analytics.

Ko začnete prvič, bo prikazano pogovorno okno »Licenčna pogodba«, zato previdno preberite vsebino, preverite »Da, sprejemam licenčno pogodbo.« in kliknite gumb »V redu«.

PreEmptive Dotfuscator And Analytics を選択

Zažene se PreEmptive Dotfuscator and Analytics CE.

PreEmptive Dotfuscator And Analytics CE

Na drevesu na levi izberite »Vnosi« in kliknite gumb »Dodaj vnos«.

入力の追加

Izberite datoteko DLL, ki ste jo ustvarili med gradnjo.

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

Izberite datoteko DLL, ki ste jo dodali, in počistite možnost Način knjižnice > pretvorbo XAML.

Če je "Knjižničen način" preverin, razredi in metode, opredeljene v javnosti, ne bodo.

Če je "XAML pretvorba" preverila, bodo razredi, opredeljeni v XAML, zamaknili, vendar odvisno od tega, kako jo ustvarite, bo povzročila napako pri zagonu, tako da če pride do tega, jo počistite.

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

V bistvu so vsi razredi, metode, lastnosti in imena spremenljivk zamaknjena, če pa zaradi serijskosti ne želite zamakniti določenega imenskega prostora ali razreda, izberite »Preimenuj« z drevesa na levi strani, izberite zavihek »Izključi« in preverite ciljni imenski prostor ali razred.

難読化の除外

V razdelku Vgrajena pravila preverite polja za Silverlight in WPF UserControls. Če to preverite, bo polje UserControls zamajano in bo uspešno zagnalo. Lahko ga počistite, če se zdi, da deluje pravilno tudi po zajebavanju.

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

Ko končate, v orodni vrstici kliknite gumb »Zgradi projekt«.

プロジェクトのビルド

Če pride do sprememb v projektu, bo prikazano pogovorno okno za potrditev shranjevanja projekta, zato kliknite »Da« za shranjevanje.

プロジェクト保存確認ダイアログ

Projekt se imenuje ". xml" datoteko. Zajete datoteke so shranjene na istem mestu.

プロジェクト保存

Počakajte, da se gradež konča, ko se začne. Upoštevajte, da večji kot je program, dlje traja za gradnjo. Ko je videti kot figura, je gradba končana.

V polju sporočila je prikazan napredek gradbe in kratek rezultat, na primer, kako zamašen je bil.

ビルド完了

Če na drevesu na levi strani izberete Rezultate, lahko vidite podrobnosti o tem, kako so se spremenila imena razredov in metod.

Pod imeni razreda in metod bo ikona Dotfuscator in imena, kot sta "a" in "b", ki bo zamašeno ime. S spreminjanjem imena razreda ali metode v nesmiselno ime na ta način, tudi če je razčlenjena, lahko oteži branje vsebine izvorne kode.

難読化結果

Zamanjena datoteka je ustvarjena v mapi z imenom »Dotfuscated« v mapi datoteke .xml shranjene v shrani projekt. Poleg zamaknjene datoteke je bila ustvarjena .xml mapa, vendar je to posledica zajebancije in se ne uporablja.

難読化したファイル

Če razstavljate zajeto datoteko, lahko vidite, da so bila nekatera imena razredov in metod spremenjena v »a« ali »b«.

Tokrat je bil ustvarjeni privzeti projekt zamaknjena skoraj tako, kot je bil, zato mislim, da obstaja podoba, da ni tako zamahnjena, vendar mislim, da je učinek obfuscation postane bolj jasen, ker se število razredov itd. povečuje, ko se projekt povečuje.

Kot stran, . Net Framework knjižnice in niso predmet preimnovanje, ker so sklopi, ki so že nameščeni v sistemu Windows, na primer.

難読化したコードの解析

Silverlight ne uporablja DLL-jev, kot je, zato so pakirane kot datoteke XAP. Kot je bilo omenjeno na začetku, je XAP datoteka le sprememba razširitve datoteke ZIP, zato ustvari ZIP datoteko tako, da zbira datoteke, ki jih vsebuje datoteka XAP in zamaknjene DLL.

Ustvarjanje datoteke ZIP je mogoče narediti s standardnimi funkcijami OS.

ファイルを ZIP 化

Ustvari se ZIP datoteka.

ZIP ファイル

Razširitev se spremeni v ". xap" in če je ime datoteke drugačno, ga spremenite v izvirno ime datoteke paketa.

Postavite datoteko XAP na mesto distribucije.

XAP ファイルに変更

Preverite operacijo in preverite, ali deluje pravilno.

Če se ne zažene, preverite, dokler ne deluje normalno z zmanjšanjem zamaknjene kode. Upoštevajte, da silverlight pogosto obtiči v zadevah, povezanih z XAML.

動作確認

Čeprav navodila niso navedena tukaj, če želite podpisati program, ga zgradite v zakasnitve podpisanem stanju, obfuskate sestavo in nato ponovno podpišete. Tudi če ga obfuscate, medtem ko je podpisana, se koda podpisa, priložena v času gradnje in podpisna koda po obfuscation ne ujema, tako da je ne boste mogli zagnati.

V tem članku sem na seznamu korakov za brezplačno različico, če pa uporabljate plačljive različice, lahko izvedete bolj zapleteno obfuscation in preprečite razstavo sama. Vendar pa ima obfuscation možnost, da povzroči različne škodljive učinke, zato je treba pri obfuskanju razmisliti, ali bo delovala pravilno od začetka oblikovanja.