Dotfuscatori abil loodud rakenduste hägustumine (Visaul Studio 2022 versioon)

Lehekülg uuendatud :
Lehe loomise kuupäev :

Kokkuvõte

.NET-i raamistikel põhinevad rakendused luuakse nn ühises vahekeeles, nii et neid saab lugeda algse lähtekoodi lähedal oleval kujul, kasutades lahtivõtmisvahendeid jms. Selles jaotises kirjeldatakse, kuidas klassid ja meetodi nimed hägustada kergesti loetamatutesse vormingutesse, kasutades Visual Studioga kaasas oleva hägustusvahendi Dotfuscator tasuta versiooni.

Seda kirjeldatakse Visual Studio 2022 abil, kuid seda saab kasutada ka teistes Dotfuscatori versioonides.

Tegevuskeskkond

Visual Studio
  • Visual Studio 2022

Kasutajast Dotfuscator

Dotfuscator on hägustamisvahend, mis muudab lähtekoodi raskesti loetavaks, kui see on lahti võetud rakenduste jaoks, mis on kirjutatud .NET-i raamistike perekonnaga (edaspidi .NET). Dotfuscator tuleb Visual Studioga tasuta ja tasu eest.

Tasuta versioon pole saadaval, välja arvatud juhul, kui paljud selle funktsioonid on piiratud või Visual Studio käivitatakse, kuid igaüks saab seda kasutada seni, kuni neil on installitud Visual Studio. Tasulisel versioonil on palju võimsaid hägustusfunktsioone, mida tasuta versioonis ei leidu, kuid seda pakutakse hinnaga, mida üldsusel on raske endale lubada.

Dotfuscatoril on sõltuvalt versioonist erinevad funktsioonid, hinnad ja väljaanded, seega vaadake üksikasju järgmisest avalehest.

Demonteerimisest

Mainisin varem, et .NET-is kirjutatud rakendused saavad algse lähtekoodi hõlpsalt lahti võtta ja lugeda, kuid tegelikult toimub see, et kui lahti võtta .exe fail (või .dll fail), nagu on näidatud järgmisel joonisel, saate algse lähtekoodi peaaegu reprodutseerida, näiteks nimeruum, klassi nimi, meetodi nimi jne.

Programmide tüübid, mida tuleks hägustada

See kehtib peamiselt programmide kohta, mida levitatakse ja käitatakse määratlemata kasutajatele. Näiteks töölauarakendused. Seevastu veebirakendused, millel on raskusi programmifailidele otse juurde pääsemisega, on hägustamiseks vähem olulised.

Seekord vaatame projekti WPF-is, töölauarakenduses.

Dotfuscator'i installimine

See rakendus on kaasas Visual Studio 2022-ga, kuid ei kuulu standardinstallatsiooni (mõnes varasemas Visual Studios võib see olla nullist installitud).

Dotfuscatori lisamiseks tehke järgmist. Käivitage Visaul Studio ja valige Hanki tööriistad ja funktsioonid tööriistadest.

Valige ülaltoodud vahekaardilt "Üksikud komponendid", märkige jaotises "Koodiriistad" ruut "PreEmptive Protection - Dotfuscator" ja klõpsake paremas allnurgas nuppu Installi. Seda tehes sulgege Visual Studio konsool.

Hägustamisprotseduur

Kirjeldab samme, kuidas muuta need nimed segaseks ja hägustumaks.

Rakenduse loomine Visual Studios, .exe faili koostamine ja seejärel klõpsake nuppu . Looge dll-fail. Seni on see sama, mis tavalise rakenduse loomine. Teie loodud rakendus peaks olema mõeldud neile, mis on loodud väljalaskejärgus. (Kuna tavaliselt ei avalda te silumisfunktsioonis.)

Pärast .exe või .dll loomist valige Visual Studio menüüst Tööriistad ja seejärel valige PreEmptive Protection - Dotfuscator Community.

Kuvatakse registreerimiskuva, kuid see ei ole vajalik, nii et kui see pole vajalik, klõpsake tühistamisnuppu nii, nagu see on.

Jääge ja klõpsake nuppu OK.

Dotfuscator alustab. Rakendus töötab iseseisvalt, nii et saate hägustada faile, mis ei ole praegu avatud projekti jaoks asjakohased. (Rakenduse enda tasuta versiooni puhul eeldatakse, et käivitatakse Visual Studio.) )

Selles artiklis hägustan .NET 6.0 WPF-i rakendusprojekti, mis on loodud vaikimisi proovina.

Valige vasakul olevast loendist "Sisend" ja klõpsake nuppu "+".

Valige programmifail, mida soovite hägustada. .NET frameworkis kirjutatud rakendused on sageli .exe hägustanud, kuid .NET ja .NET Core'is on programmid sageli .dll üksused. NET WPF-i rakendustel on ka .dll üksust, seega valige .dll.

See lisatakse nimekirja. Kui see koosneb mitmest DLL-ist, lisage rohkem kui üks.

Pärast sihtfaili lisamist klõpsake tööriistaribal nuppu "Ehita".

Teilt küsitakse, kuhu hägustunud projektifail salvestada, nii et määrake see. Asukoht võib olla meelevaldne, kuid see võib olla ka hägustunud programmi väljundkoht. See salvestab teie sisendi ja avab selle hägustusprojekti faili, kui soovite seda uuesti hägustada. Laiendus on ". xml".

Kui ehitamine on alanud ja allolevas sõnumis kuvatakse "Build completed", näitab see edukat lõpuleviimist. Ekraanil kuvatakse järgulogi ja hägusate klasside ja muutujate loend.

Valige vasakpoolsest loendist "Tulem", et näha klassi- ja meetodinimede muutumise üksikasju.

Klassinimed ja meetodinimed paremal olevas puus, näiteks "->", on nimed pärast hägustamist. Kui muudate klassi nime või meetodi nime selliseks mõttetuks nimeks, saate lähtekoodi sisu raskesti loetavaks muuta isegi siis, kui see on lahti võetud.

Hägustunud programmid salvestatakse kausta nimega "Dotfuscated" projektifaili salvestamise kohas.

Kaart.xml on hägususe tulemusefail, nii et saate selle ohutult kustutada.

Kuna .NET 6.0 WPF-i ei saa käivitada ainult DLL-iga, kopeerige "XXXX.exe" ja "XXXX.runtimeconfig.json", mis loodi samasse kausta loomise ajal, ja alustage seda. Kui saate alustada normaalselt, ei ole praegu probleeme. Kui te ei saa seda käivitada, võivad teil failid puududa või luua programmi, mis muutub hägustumise tõttu vastuoluliseks.

Kui analüüsite programmi, mis on tegelikult hägustunud, näete mõningaid hägususe jälgi. Alloleva joonise esimene leht on enne hägustamist ja teine on pärast hägustamist.

Pange tähele, et .NET-teekides määratletud klassinimesid ei nimetata ümber, kuna need on raamistikuna olemas.

Seekord hägustasin vaikimisi projekti, mis loodi sellisena, nagu see on, nii et ma arvan, et on olemas pilt, mis ei ole peaaegu hägustunud, kuid ma arvan, et hägustumise mõju selgub, sest mida suurem on projekt, seda unikaalsemad klassid suurenevad.

Samuti, kuigi oleme seekord lisanud protseduuri tasuta versiooni, võimaldab tasuline versioon keerukamat hägustamist ja takistab ka lahtivõtmist. Hägustumisel on siiski mitmesuguseid kahjulikke mõjusid ja potentsiaali, nii et hägustamisel on vaja seda teha, kaaludes, kas see töötab disaini algusest peale korralikult.

Välista hägustumine

Kui teil on klassi- või atribuudinimesid, mida te ei soovi hägustada, saate need välistada.

Assembleri laadimise ajal valige ekraani vasakust servast ümbernimeta > Välista. Kuna komplekti sisu kuvatakse, kontrollin neid, mida ma ei taha varjata.

Hägusust on võimalik välistada granulaarsel tasandil, kuid ma arvan, et seda on lihtsam kohandada nimeruumi alusel.

Teegi režiim

Sisestuskomplekti valimisel näete, et on märgitud "Teegi režiim".

"Teegi režiim" on lisada DLL-idele, mida teised programmid võivad kutsuda. Kui seda kontrollitakse, jäetakse hägustumisest välja avalikud klassid ja omadused, mida kutsuvad teised programmid.

Üldiselt on siiski haruldane paljastada raamatukogu, mida nimetatakse teistest programmidest generatiivselt, ja ma arvan, et see on sageli hägustunud üksi töötavatele rakendustele, mistõttu on hea põhimõtteliselt see kontroll eemaldada.

Ühefaililise .exe hägustamine (kinnitamata)

Selle üksuse uurimine Visual Studio 2022-s on praegu kinnitamata.

See on ilmselt hägune MSBuildiga, kuid ma panen selle ootele, kuna hetkel puudub teave.