Silverlight lietojumprogrammas aizsegšana ar Dotfuscator

Lapa atjaunota :
Lapas izveides datums :

Par Dotfuscator

Dotfuscator ir obfuscator, kas padara pirmkodu grūti lasāmu, kad lietojumprogrammas, kas rakstītas ar .NET Framework, tiek izjauktas. Dotfuscator ir pieejams gan bezmaksas, gan maksas mazumtirdzniecības versijās, kas tiek piegādātas kopā ar Visual Studio.

Bezmaksas versija ir pieejama tikai ar daudzām ierobežotām funkcijām un pieņēmumu, ka Visual Studio darbojas, taču ikviens, kam ir instalēta Visual Studio, var to izmantot. Maksas versijai ir daudz spēcīgu aptumšošanas funkciju, kas nav pieejamas bezmaksas versijā, taču var būt kaitinoši, ka tā tiek piedāvāta par cenu, ko plašai sabiedrībai ir grūti atļauties.

Dotfuscator var būt dažādas funkcijas, cenas un izdevumi atkarībā no versijas, tāpēc, lūdzu, skatiet šo vietni, lai iegūtu sīkāku informāciju.

Dotfuscator

Parsētais kods

Kā minēts iepriekš, lietojumprogrammas, kas izveidotas, izmantojot .NET Framework, var viegli nolasīt sākotnējo pirmkodu, izjaucot, bet tas, kas faktiski notiek, ir tas, ka, izjaucot montāžas failu, kā parādīts attēlā, var reproducēt lielāko daļu sākotnējā avota koda, piemēram, nosaukumvietas, klašu nosaukumus un metožu nosaukumus.

解析されたコード

Aptumšošanas procedūra

Sāciet, izveidojot Silverlight lietojumprogrammu kā parasti un veicot laidiena veidošanu. Šeit mēs izveidojam lietojumprogrammu, kas ievieto tikai divas pogas.

Release ビルド

Tās mapes mapē Bin\Release, kurā atrodas projekts, ierakstiet . xap" ir pakotnes fails, kas apkopo Silverlight lietojumprogrammās izmantotās programmas un failus.

XAP ファイル

Faktiski šis fails ir saspiests un apkopots kā ZIP fails, tāpēc paplašinājums ir ". rāvējslēdzējs".

拡張子を .zip に変更

Tas ir mainīts uz ZIP failu.

ZIP ファイル

Atverot failu, tajā ir manifesta fails un DLL. Šī DLL ir programmas apkopotā versija, kas darbojas kā lietojumprogramma.

Starp citu, DLL fails tiek ievietots arī mapē Release, kad tas ir uzbūvēts, tāpēc šoreiz mēs šo failu aizklāsim.

ZIP ファイルの中身

Visual Studio izvēlnē atlasiet Rīki un pēc tam atlasiet PreEmptive Dotfuscator And Analytics.

Sākot pirmo reizi, tiks parādīts dialoglodziņš "Licences līgums", tāpēc uzmanīgi izlasiet saturu, atzīmējiet "Jā, es piekrītu licences līgumam." un noklikšķiniet uz pogas "Labi".

PreEmptive Dotfuscator And Analytics を選択

Tiek startēts PreEmptive Dotfuscator And Analytics CE.

PreEmptive Dotfuscator And Analytics CE

Kreisajā pusē esošajā kokā atlasiet "Ievades" un noklikšķiniet uz pogas "Pievienot ievadi".

入力の追加

Atlasiet DLL failu, ko ģenerējāt būvēšanas laikā.

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

Atlasiet pievienoto DLL failu un noņemiet atzīmi no izvēles rūtiņas Bibliotēkas režīms > XAML konvertēšana.

Ja ir atzīmēts "Bibliotēkas režīms", publiski definētās klases un metodes netiks aizsegtas.

Ja ir atzīmēta opcija "XAML konvertēšana", XAML definētās klases tiks aizsegtas, taču atkarībā no tā, kā to izveidojat, tas izraisīs startēšanas kļūdu, tādēļ, ja tā notiek, lūdzu, noņemiet atzīmi no tās.

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

Būtībā visas klases, metodes, īpašības un mainīgie nosaukumi ir neskaidri, bet, ja nevēlaties aizsegt konkrētu nosaukumvietu vai klasi serializācijas dēļ, kreisajā pusē esošajā kokā atlasiet "Pārdēvēt", atlasiet cilni "Izslēgt" un pārbaudiet mērķa nosaukumvietu vai klasi.

難読化の除外

Sadaļā Iebūvētās kārtulas pārliecinieties, vai ir atzīmēta izvēles rūtiņa Silverlight un WPF UserControls lauki. To pārbaudot, lauks UserControls tiks aizēnots un darbosies veiksmīgi. Jūs varat noņemt atzīmi no tā, ja šķiet, ka tas darbojas pareizi pat pēc apslēpšanas.

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

Kad esat pabeidzis, rīkjoslā noklikšķiniet uz pogas "Veidot projektu".

プロジェクトのビルド

Ja projektā ir izmaiņas, tiks parādīts projekta saglabāšanas apstiprinājuma dialoglodziņš, tāpēc noklikšķiniet uz "Jā", lai saglabātu.

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

Projektu sauc par ". xml" failu. Neskaidri faili tiek saglabāti tajā pašā vietā.

プロジェクト保存

Pagaidiet, līdz būvēšana tiks pabeigta, kad tā sāksies. Ņemiet vērā, ka jo lielāka programma, jo ilgāks laiks nepieciešams, lai izveidotu. Kad tas izskatās kā skaitlis, būvniecība ir pabeigta.

Ziņojuma laukā ir redzams būvējuma progress un īss rezultāts, piemēram, cik tas bija neskaidrs.

ビルド完了

Ja kokā kreisajā pusē atlasāt Rezultāti, varat skatīt detalizētu informāciju par to, kā ir mainīti klašu un metožu nosaukumi.

Zem klases un metožu nosaukumiem būs Dotfuscator ikona un tādi vārdi kā "a" un "b", kas būs neskaidrais nosaukums. Šādā veidā mainot klases nosaukumu vai metodes nosaukumu uz bezjēdzīgu nosaukumu, pat ja tas ir izjaukts, tas var apgrūtināt avota koda satura lasīšanu.

難読化結果

Apslēptais fails tiek izveidots mapē ar nosaukumu "Dotfuscated" .xml faila mapē, kas saglabāta programmā Save Project. Papildus neskaidrajam failam ir izveidots fails "Map.xml", taču tas ir neskaidrības rezultāts un netiek izmantots.

難読化したファイル

Izjaucot aptumšoto failu, var redzēt, ka daži klašu un metožu nosaukumi ir mainīti uz "a" vai "b".

Šoreiz izveidotais noklusētais projekts tika apslēpts gandrīz tāds, kāds tas bija, tāpēc es domāju, ka ir priekšstats, ka tas nav tik apslēpts, bet es domāju, ka apmulsuma efekts kļūst skaidrāks, jo, projektam augot, palielinās klašu skaits utt.

Kā malā, . NET Framework bibliotēkas un nav pakļautas pārdēvēšanai, jo tās ir montāžas, kas jau ir instalētas, piemēram, sistēmā Windows.

難読化したコードの解析

Silverlight neizmanto DLL tādus, kādi tie ir, tāpēc tie ir iepakoti kā XAP faili. Kā minēts sākumā, XAP fails ir tikai izmaiņas ZIP faila paplašinājumā, tāpēc tas izveido ZIP failu, apkopojot XAP failā esošos failus un neskaidros DLL.

ZIP faila izveidi var veikt, izmantojot standarta OS funkcijas.

ファイルを ZIP 化

Tiek izveidots ZIP fails.

ZIP ファイル

Paplašinājums tiek mainīts uz ". xap" un, ja faila nosaukums atšķiras, mainiet to uz sākotnējo pakotnes faila nosaukumu.

Novietojiet XAP failu izplatīšanas vietā.

XAP ファイルに変更

Lūdzu, pārbaudiet operāciju un pārbaudiet, vai tā darbojas pareizi.

Ja tas nesākas, pārbaudiet, līdz tas darbojas normāli, samazinot neskaidro kodu. Ņemiet vērā, ka Silverlight bieži iestrēgst ar XAML saistītos jautājumos.

動作確認

Lai gan instrukcijas šeit nav uzskaitītas, ja vēlaties parakstīt programmu, izveidojiet to aizkaves parakstītā stāvoklī, aizsedziet montāžu un pēc tam atkārtoti parakstiet. Pat ja jūs to aizsedzat, kamēr tas ir parakstīts, paraksta kods, kas pievienots izveides laikā, un paraksta kods pēc aizsegšanas nesakritīs, tāpēc jūs to nevarēsit sākt.

Šajā rakstā esmu uzskaitījis bezmaksas versijas darbības, bet, ja izmantojat apmaksāto versiju, varat veikt sarežģītāku aizklāšanu un novērst pašu demontāžu. Tomēr apmulsums var izraisīt dažādas nelabvēlīgas sekas, tāpēc, veicot aizklāšanu, ir jāapsver, vai tas darbosies pareizi no projektēšanas sākuma.