Užmaskuokite "Silverlight" programą naudodami "Dotfuscator".

Puslapis atnaujintas :
Puslapio sukūrimo data :

Apie Dotfuscator

Dotfuscator yra užmaskatorius, dėl kurio sunku perskaityti šaltinio kodą, kai išardomos programos, parašytos naudojant .NET Framework. "Dotfuscator" galima įsigyti tiek nemokamose, tiek mokamose mažmeninės prekybos versijose, kurios pateikiamos kartu su "Visual Studio".

Nemokama versija pasiekiama tik su daugybe ribotų funkcijų ir prielaida, kad veikia "Visual Studio", tačiau ja gali naudotis visi, turintys įdiegtą "Visual Studio". Mokama versija turi daug galingų užmaskavimo funkcijų, kurių nėra nemokamoje versijoje, tačiau gali erzinti tai, kad ji siūloma už kainą, kurią plačiajai visuomenei sunku sau leisti.

"Dotfuscator" gali turėti skirtingas funkcijas, kainas ir leidimus, priklausomai nuo versijos, todėl išsamesnės informacijos ieškokite šioje svetainėje.

Dotfuscator

Išanalizuotas kodas

Kaip minėta pirmiau, programos, sukurtos naudojant .NET Framework, gali lengvai nuskaityti pradinį šaltinio kodą išardydamos, tačiau iš tikrųjų atsitinka taip, kad išardžius surinkimo failą, kaip parodyta paveikslėlyje, galima atkurti daugumą pradinio šaltinio kodo, pvz., vardų sričių, klasių pavadinimų ir metodų pavadinimų.

解析されたコード

Užmaskavimo procedūra

Pradėkite kurdami "Silverlight" programą kaip įprasta ir atlikdami leidimo komponavimo versiją. Čia mes kuriame programą, kurioje yra tik du mygtukai.

Release ビルド

Aplanko, kuriame yra projektas, aplanke Bin\Release įveskite . xap" yra paketo failas, apibendrinantis programas ir failus, naudojamus "Silverlight" programose.

XAP ファイル

Tiesą sakant, šis failas yra suspaustas ir sukompiliuotas kaip ZIP failas, todėl plėtinys yra ". zip".

拡張子を .zip に変更

Jis buvo pakeistas į ZIP failą.

ZIP ファイル

Kai atidarote failą, jame yra aprašo failas ir DLL. Šis DLL yra sukompiliuota programos versija, kuri veikia kaip programa.

Beje, DLL failas taip pat dedamas į aplanką "Release", kai jis yra pastatytas, todėl šį kartą šį failą užmaskuosime.

ZIP ファイルの中身

"Visual Studio" meniu pasirinkite Įrankiai, tada pasirinkite "PreEmptive Dotfuscator And Analytics".

Pradedant pirmą kartą, bus rodomas dialogo langas "Licencijos sutartis", todėl atidžiai perskaitykite turinį, pažymėkite "Taip, sutinku su licencijos sutartimi." ir spustelėkite mygtuką "Gerai".

PreEmptive Dotfuscator And Analytics を選択

Pradedamas "PreEmptive Dotfuscator" ir "Analytics CE".

PreEmptive Dotfuscator And Analytics CE

Kairėje esančiame medyje pasirinkite "Įvestys" ir spustelėkite mygtuką "Pridėti įvestį".

入力の追加

Pasirinkite DLL failą, kurį sugeneravote kūrimo metu.

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

Pasirinkite pridėtą DLL failą ir panaikinkite žymėjimą Bibliotekos režimas > XAML konvertavimas.

Jei pažymėtas "Bibliotekos režimas", viešai apibrėžtos pamokos ir metodai nebus užmaskuoti.

Jei pažymėta "XAML konvertavimas", XAML apibrėžtos klasės bus užmaskuotos, tačiau, atsižvelgiant į tai, kaip ją sukursite, tai sukels paleidimo klaidą, todėl, jei ji įvyks, panaikinkite jos žymėjimą.

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

Iš esmės visos klasės, metodai, savybės ir kintamieji pavadinimai yra užmaskuoti, tačiau jei nenorite užmaskuoti konkrečios vardų srities ar klasės dėl serializavimo, kairėje esančiame medyje pasirinkite "Pervardyti", pasirinkite skirtuką "Išskirti" ir patikrinkite tikslinę vardų sritį ar klasę.

難読化の除外

Dalyje Įtaisytosios taisyklės įsitikinkite, kad pažymėti "Silverlight" ir WPF UserControls laukai. Tai patikrinus, laukas UserControls bus užmaskuotas ir bus sėkmingai paleistas. Galite panaikinti jo žymėjimą, jei atrodo, kad jis veikia tinkamai net ir užtemdžius.

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

Baigę įrankių juostoje spustelėkite mygtuką "Sukurti projektą".

プロジェクトのビルド

Jei yra projekto pakeitimų, bus rodomas projekto išsaugojimo patvirtinimo dialogo langas, todėl spustelėkite "Taip", kad išsaugotumėte.

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

Projektas vadinamas ". xml" failą. Užmaskuoti failai įrašomi toje pačioje vietoje.

プロジェクト保存

Palaukite, kol kūrimas bus baigtas, kai jis prasidės. Atkreipkite dėmesį, kad kuo didesnė programa, tuo ilgiau užtrunka kurti. Kai atrodo, kad figūra, statyba baigta.

Pranešimo laukas rodo kūrimo eigą ir trumpą rezultatą, pavyzdžiui, kaip jis buvo užmaskuotas.

ビルド完了

Jei kairėje esančiame medyje pasirinksite Rezultatai, galėsite peržiūrėti išsamią informaciją apie tai, kaip pasikeitė klasių ir metodų pavadinimai.

Po klasių ir metodų pavadinimais bus "Dotfuscator" piktograma ir tokie pavadinimai kaip "a" ir "b", kurie bus užmaskuotas pavadinimas. Tokiu būdu pakeitus klasės pavadinimą ar metodo pavadinimą į beprasmį pavadinimą, net jei jis yra išardytas, šaltinio kodo turinį gali būti sunku perskaityti.

難読化結果

Užmaskuotas failas sukuriamas aplanke, pavadintame "Dotfuscated", esančiame .xml failo, išsaugoto "Save Project", aplanke. Be užmaskuoto failo, buvo sukurtas failas "Map.xml", tačiau tai yra užmaskavimo rezultatas ir nenaudojamas.

難読化したファイル

Jei išardysite užmaskuotą failą, pamatysite, kad kai kurie klasių ir metodų pavadinimai buvo pakeisti į "a" arba "b".

Šį kartą sukurtas numatytasis projektas buvo užmaskuotas beveik toks, koks buvo, todėl manau, kad yra vaizdas, kad jis nėra toks užmaskuotas, bet manau, kad užmaskavimo poveikis tampa aiškesnis, nes augant projektui didėja klasių skaičius ir pan.

Kaip nuošalyje, . "NET Framework" bibliotekos ir joms netaikomas pervardijimas, nes tai yra rinkiniai, kurie jau įdiegti, pavyzdžiui, sistemoje "Windows".

難読化したコードの解析

"Silverlight" nenaudoja DLL tokių, kokie yra, todėl jie supakuoti kaip XAP failai. Kaip minėta pradžioje, XAP failas yra tik ZIP failo plėtinio pakeitimas, todėl jis sukuria ZIP failą rinkdamas XAP faile esančius failus ir užmaskuotus DLL.

ZIP failą galima sukurti naudojant standartines OS funkcijas.

ファイルを ZIP 化

Sukuriamas ZIP failas.

ZIP ファイル

Plėtinys pakeičiamas į ". xap" ir jei failo vardas skiriasi, pakeiskite jį į pradinį paketo failo vardą.

Įdėkite XAP failą į platinimo vietą.

XAP ファイルに変更

Patikrinkite operaciją ir pažiūrėkite, ar ji veikia tinkamai.

Jei jis neprasideda, patikrinkite, kol jis veikia normaliai, sumažindami užmaskuotą kodą. Atminkite, kad "Silverlight" dažnai įstringa su XAML susijusiuose reikaluose.

動作確認

Nors instrukcijos čia nepateikiamos, jei norite pasirašyti programą, sukurkite ją atidėto parašo būsenoje, užmaskuokite surinkimą ir pasirašykite iš naujo. Net jei jį užmaskuosite, kol jis bus pasirašytas, kūrimo metu pridėtas parašo kodas ir parašo kodas po užmaskavimo nesutaps, todėl negalėsite jo paleisti.

Šiame straipsnyje išvardijau nemokamos versijos veiksmus, tačiau jei naudojate mokamą versiją, galite atlikti sudėtingesnį užmaskavimą ir užkirsti kelią pačiam išmontavimui. Tačiau užmaskavimas gali sukelti įvairių neigiamų padarinių, todėl, kai atliekamas užmaskavimas, būtina apsvarstyti, ar jis veiks tinkamai nuo projektavimo pradžios.