Obfuscate aplikacije, ustvarjene z Uporabo Dotfuscator

Stran posodobljena :
Datum ustvarjanja strani :

Povzetek

Ker so aplikacije, ki temeljijo na .NET Frameworku, ustvarjene v skupnem vmesnem jeziku, jih je mogoče prebrati v obrazcu blizu izvorne kode z uporabo orodij za razstavljanje in podobno. V tem razdelku je opisano, kako obfuscator Dotfuscator, obfuscator, ki prihaja z Visual Studio, za obfuscator razreda in imen metod v obliki, ki ni zlahka berljiva.

Govorimo o tem tukaj z uporabo Visual Studio 2010, vendar lahko uporabite Dotfuscator tudi v 2005 in 2008.

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

Operativno okolje

Podprte različice visual studia

  • 2005
  • 2008
  • 2010

Preverite različico visual studia

  • 2005
  • 2008
  • 2010

snov

O Dotfuscatorju

Dotfuscator je orodje za obfuscation, ki otežuje branje izvorne kode, ko se razčleni v aplikacijah, napisanih z .NET Framework. Dotfuscator nudi visual studio brezplačno in z doplačilom.

Brezplačna različica ni na voljo, razen če so številne njegove funkcije omejene ali se visual studio zagna, vendar jo lahko vsakdo uporablja, dokler ima nameščen Visual Studio. Plačana različica ima številne zmogljive obfuscation funkcije, ki jih ne najdemo v brezplačni različici, vendar se ponuja po ceni, ki si jo splošna javnost težko privošči.

Dotfuscator ima različne funkcije, cene in izdaje, odvisno od različice, zato glejte naslednjo domačo stran za podrobnosti.

Postopek obfusacije

難読化していないアプリケーションの逆アセンブル結果

Prej sem omenil, da lahko aplikacije, ustvarjene z .NET Framework, razstavijo in enostavno preberejo izvorno izvorno kodo, vendar je dejanska situacija v tem, da če razstavite exe datoteko, kot je prikazano na sliki na desni, lahko skoraj reproducirate izvirno izvorno kodo, kot so imenski prostor, ime razreda, ime metode, itd.

Opisuje korake za zmedenost in zmede teh imen.

Dotfuscator Software Services

Ustvarjanje aplikacije v programu Visual Studio in ustvarjanje exe datoteke je popolnoma enako običajnem načinu ustvarjanja.

Ko ustvarite in ustvarite datoteko exe, v meniju Visual Studio izberite Orodja in nato Dotfuscator Software Services.

使用許諾契約書

Ko prvič začnete, je pogovorno okno »Licenčna pogodba« prikazano, kot je prikazano na sliki na desni, zato previdno preberite vsebino, preverite »Da, strinjam se z licenčno pogodbo.« in kliknite gumb »OK«.

Dotfuscator Software Services

Zažene se programske storitve Dotfuscator.

入力アセンブリの追加

Iz trenutno odprtega projekta ni treba uporabiti datoteke exe (ali datoteke dll), ki jih je treba zatisniti.

Izberite Vnosni sklopi na drevesu na levi in kliknite vnosne sklope na desni strani, da kliknete gumb ... .

難読化する exe ファイル

Izberite datoteko exe, ki jo želite.

追加したアセンブリ

Izbrana exe datoteka je dodana na seznam. Če želite zabrisati več datotek, kliknite gumb "..." po drugi vrstici, da jih dodate.

プロジェクトのビルド

Ko izberete exe, ki ga želite okrniti, kliknite gumb Zgradi projekt v orodni vrstici.

プロジェクトの保存

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

プロジェクトの保存場所指定

Projekt se imenuje ". xml" datoteko. Zamanjena datoteka exe bo shranjena tudi na istem mestu, zato shranite .xml datoteko v katero koli mapo.

ビルド

Gradež se bo začel in počakal, da se konča. Upoštevajte, da večji kot je program, dlje traja za gradnjo. Če je videti kot figura na desni, je gradba končana.

V polju sporočila so prikazani preprosti rezultati, na primer napredek gradnje in kako zamašen je bil.

難読化結果

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

Pod imeni razreda in metod je ikona Dotfuscatorja in ime, kot je "a" ali "b", ki je zamašeno ime. Če spremenite ime razreda ali metode v tako nesmiselno ime, lahko vsebino izvorne kode otežite za branje, tudi če je razčlenjena.

難読化したアセンブリ

Obfuscated exe datoteke so ustvarjene v mapi .xml datotek, shranjenih v Save Project, imenovano "Dotfuscated", in so ustvarjene v tem. Poleg exe datoteke je bila ustvarjena .xml Map .xml, vendar je to posledica zamašitve in je ne smete uporabljati.

難読化したアセンブリの実行時エラー

exe je mogoče zagnati in uporabiti, kot je. Obstajajo pa primeri, ko je ni mogoče zagnati zaradi neznane napake, kot je prikazano na sliki na desni.

Tokrat sem napisal aplikacijo v WPF, vendar ker je XAML datoteka prvega okna, ki bo prikazana, določena kot niz, bo preimenovanje zaradi obfuscation povzročilo, da se sklic izgubi, kar ima za posledico napako.

Aplikacije obrazca windows se sklicuje na razred Od neposredno, tako da lahko tečejo brez napak, tudi če so zamaknjene. Če pa določite ime razreda, vrsto enum itd. po imenu, morate biti previdni, ker obstaja možnost, da bo prišlo do iste napake.

難読化の除外

Če ne želite omamljati razreda ali česa podobnega, izberite Preimenuj z drevesa na levi strani dotfuscatorja in izberite Izključi iz srednjega zavihka.

Vsak imenski prostor, ime razreda itd. bo prikazan na seznamu na desni strani, zato preverite elemente, ki jih ne želite zamakniti.

Tukaj ne želim najprej spremeniti imena razreda okna, zato preverim "MainWindow".

難読化から除外されたクラス

Ko naredite gradnjo, lahko vidite, da v MainWindowsu ni spremenjenega imena pod imenom razreda. (Razred aplikacij je bil pretvoren v "a")

難読化したアセンブリの実行

Ko zaženete zajeto datoteko exe, lahko vidite, da je okno pravilno prikazano.

難読化後の逆アセンブル

Če razčlenite zajeto datoteko exe, lahko vidite, da sta ime razreda in ime metode pravilno spremenjena v »a« ali »b«.

Ampak kot stran. Net Framework knjižnice, kot so imena razredov, niso predmet preimenvanja, ker so to sklopi, ki so že nameščeni v sistemu Windows in drugod.

Tokrat sem zamaknili privzeti projekt, ustvarjen tak kot je, zato mislim, da obstaja podoba, da ni tako zamahnjena, vendar mislim, da je učinek obfuscation postane jasen, ker se število razredov itd. povečuje, ko projekt raste.

Prav tako, čeprav smo tokrat vključili postopek v brezplačno različico, plačana različica omogoča zapletenejšo obfusacijo in preprečuje tudi samo razstavljanje. Vendar pa ima obfuscation različne škodljive učinke in potencial, da se pojavijo, tako da je pri izvajanju zajebancije, je treba narediti, medtem ko preuči, ali bo delovala pravilno od začetka oblikovanja.