Zamašite aplikacijo Silverlight z dotfuscatorjem
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.
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.
V mapo Bin\Release mape, v kateri je projekt, vnesite . xap" je paketna datoteka, ki povzema programe in datoteke, uporabljene v silverlight aplikacijah.
Pravzaprav je ta datoteka stisnjena in sestavljena kot ZIP datoteka, zato je razširitev ". zip".
Spremenjena je bila v ZIP datoteko.
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.
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«.
Zažene se 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.
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.
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.
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.
Ustvari se ZIP datoteka.
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.
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.