Užmaskuokite programas, sukurtas naudojant "Dotfuscator".

Puslapis atnaujintas :
Puslapio sukūrimo data :

suvestinė

Kadangi programos, pagrįstos .NET Framework, yra sukurtos vadinamąja bendra tarpine kalba, jas galima perskaityti forma, artima pradiniam šaltinio kodui, naudojant išmontavimo įrankius ir pan. Šiame skyriuje aprašoma, kaip užmaskuoti "Dotfuscator", su "Visual Studio" pateikiamą maskuoklį, kad klasių ir metodų pavadinimai būtų užmaskuoti į formatą, kuris nėra lengvai skaitomas.

Apie tai kalbame čia naudodami "Visual Studio 2010", tačiau "Dotfuscator" galite naudoti ir 2005 bei 2008 m.

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

Darbinė aplinka

Palaikomos "Visual Studio" versijos

  • 2005
  • 2008
  • 2010

Patikrinkite "Visual Studio" versiją

  • 2005
  • 2008
  • 2010

medžiaga

Apie "Dotfuscator"

Dotfuscator yra užmaskavimo įrankis, dėl kurio šaltinio kodą sunku perskaityti, kai jis išardomas programose, parašytose naudojant .NET Framework. "Dotfuscator" su "Visual Studio" pateikiama nemokamai ir už tam tikrą mokestį.

Nemokama versija nepasiekiama, nebent daugelis jos funkcijų yra ribotos arba paleista "Visual Studio", tačiau bet kas gali ja naudotis, jei tik yra įdiegta "Visual Studio". Mokama versija turi daug galingų užmaskavimo funkcijų, kurių nėra nemokamoje versijoje, tačiau ji siūloma už kainą, kurią plačiajai visuomenei sunku sau leisti.

"Dotfuscator" turi skirtingas funkcijas, kainas ir leidimus, priklausomai nuo versijos, todėl išsamesnės informacijos ieškokite šiame pagrindiniame puslapyje.

Užmaskavimo procedūra

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

Anksčiau minėjau, kad programos, sukurtos naudojant .NET Framework, gali išardyti ir lengvai perskaityti pradinį šaltinio kodą, tačiau tikroji situacija yra ta, kad jei išardysite exe failą, kaip parodyta paveikslėlyje dešinėje, galite beveik atkurti pradinį šaltinio kodą, pvz., Vardų sritį, klasės pavadinimą, metodo pavadinimą ir kt.

Aprašomi veiksmai, kaip padaryti šiuos pavadinimus painius ir užmaskuotus.

Dotfuscator Software Services

Programos kūrimas "Visual Studio" ir exe failo kūrimas yra lygiai toks pat, kaip ir įprastas būdas jį sukurti.

Sukūrę ir sukūrę exe failą, visual Studio meniu pasirinkite Įrankiai, tada pasirinkite Dotfuscator Software Services.

使用許諾契約書

Kai pradedate pirmą kartą, dialogo langas "Licencijos sutartis" rodomas taip, kaip parodyta paveikslėlyje dešinėje, todėl atidžiai perskaitykite turinį, pažymėkite "Taip, sutinku su licencijos sutartimi." ir spustelėkite mygtuką "Gerai".

Dotfuscator Software Services

Prasideda "Dotfuscator" programinės įrangos paslaugos.

入力アセンブリの追加

Exe (arba dll failas), kuris turi būti užmaskuotas, neturi būti iš šiuo metu atidaryto projekto.

Kairėje esančiame medyje pasirinkite Įvesties mazgai ir dešinėje spustelėkite įvesties mazgus, kad spustelėtumėte ... mygtuką.

難読化する exe ファイル

Pasirinkite exe failą, kurį norite užmaskuoti.

追加したアセンブリ

Pasirinktas exe failas įtraukiamas į sąrašą. Jei norite užmaskuoti kelis failus, spustelėkite mygtuką "..." po antros eilutės, kad juos pridėtumėte.

プロジェクトのビルド

Pasirinkę exe, kurį norite užmaskuoti, įrankių juostoje spustelėkite mygtuką Kurti projektą.

プロジェクトの保存

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

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

Projektas vadinasi ". xml" failą. Užmaskuotas exe failas taip pat bus išsaugotas toje pačioje vietoje, todėl išsaugokite .xml failą bet kuriame aplanke.

ビルド

Statyba prasidės ir lauks, kol ji bus baigta. Atminkite, kad kuo didesnė programa, tuo ilgiau užtrunka kūrimas. Jei atrodo, kad figūra dešinėje, statyba baigta.

Pranešimo lauke rodomi paprasti rezultatai, pvz., kūrimo eiga ir tai, kaip ji buvo užmaskuota.

難読化結果

Jei kairėje esančiame medyje pasirinksite "Rezultatas", galėsite matyti išsamią informaciją apie tai, kaip pasikeitė klasių ir metodų pavadinimai.

Po klasių ir metodų pavadinimais yra "Dotfuscator" piktograma ir pavadinimas, pvz., "a" arba "b", kuris yra užmaskuotas pavadinimas. Pakeitę klasės pavadinimą ar metodo pavadinimą į tokį beprasmį pavadinimą, galite padaryti šaltinio kodo turinį sunkiai skaitomą, net jei jis yra išardytas.

難読化したアセンブリ

Užmaskuoti exe failai sukuriami .xml failų, išsaugotų "Save Project", aplanke, vadinamame "Dotfuscated", ir yra sukurti jame. Be exe failo, buvo sukurtas failas "Map .xml", tačiau tai yra užmaskavimo rezultatas ir neturėtų būti naudojamas.

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

Užmaskuoti exes gali būti paleisti ir naudojami tokie, kokie yra. Tačiau yra atvejų, kai jo negalima paleisti dėl nežinomos klaidos, kaip parodyta paveikslėlyje dešinėje.

Šį kartą parašiau programą WPF, bet kadangi pirmojo rodomo lango XAML failas yra nurodytas kaip eilutė, pervadinimas dėl užmaskavimo sukels nuorodą, todėl bus padaryta klaida.

"Windows Form" programos tiesiogiai nurodo iš klasės, todėl jos gali veikti be klaidų, net jei yra užmaskuotos. Tačiau jei nurodote klasės pavadinimą, išvardijimo tipą ir kt. pagal pavadinimą, turite būti atsargūs, nes yra tikimybė, kad įvyks ta pati klaida.

難読化の除外

Jei nenorite užmaskuoti klasės ar kažko, pasirinkite Pervardyti iš medžio kairėje "Dotfuscator" pusėje ir viduriniame skirtuke pasirinkite Išskirti.

Kiekviena vardų sritis, klasės pavadinimas ir kt. bus rodomi dešinėje esančiame sąraše, todėl patikrinkite elementus, kurių nenorite užmaskuoti.

Čia nenoriu keisti pirmiausia rodomo lango klasės pavadinimo, todėl patikrinu "MainWindow".

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

Kai atliekate kūrimą, matote, kad "MainWindows" klasės pavadinime nėra pakeisto pavadinimo. (Programėlių klasė konvertuota į "a")

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

Kai paleidžiate užmaskuotą exe failą, matote, kad langas rodomas teisingai.

難読化後の逆アセンブル

Jei išardysite užmaskuotą exe failą, pamatysite, kad klasės pavadinimas ir metodo pavadinimas buvo tinkamai pakeisti į "a" arba "b".

Bet kaip nuošalyje. NET Framework bibliotekoms, pvz., klasių pavadinimams, netaikomas pervadinimas, nes tai yra rinkiniai, kurie jau įdiegti sistemoje Windows ir kitur.

Šį kartą užmaskavau numatytąjį projektą, sukurtą tokį, koks jis yra, todėl manau, kad yra įvaizdis, kad jis nėra toks užmaskuotas, bet manau, kad užmaskavimo poveikis tampa aiškus, nes didėjant projektui didėja klasių skaičius ir t.t.

Be to, nors šį kartą įtraukėme procedūrą į nemokamą versiją, mokama versija leidžia sudėtingiau užmaskuoti ir taip pat apsaugo nuo paties išmontavimo. Tačiau užmaskavimas turi įvairių neigiamų padarinių ir gali atsirasti, todėl, atliekant užmaskavimą, būtina tai padaryti, atsižvelgiant į tai, ar jis veiks tinkamai nuo pat dizaino pradžios.