Hägustage oma Silverlighti rakendust Dotfuscatoriga
Teave Dotfuscatori kohta
Dotfuscator on hägustaja, mis muudab lähtekoodi raskesti loetavaks, kui .NET Frameworkiga kirjutatud rakendused on lahti võetud. Dotfuscator on saadaval nii tasuta kui ka tasulistes jaemüügiversioonides, mis on kaasas Visual Studioga.
Tasuta versioon on saadaval ainult paljude piiratud funktsioonidega ja eeldusega, et Visual Studio töötab, kuid igaüks, kellel on installitud Visual Studio, saab seda kasutada. Tasulisel versioonil on palju võimsaid hägustamisfunktsioone, mis pole tasuta versioonis saadaval, kuid võib olla tüütu, et seda pakutakse hinnaga, mida üldsusel on raske endale lubada.
Dotfuscatoril võivad sõltuvalt versioonist olla erinevad funktsioonid, hinnakujundus ja väljaanded, seega vaadake üksikasju järgmiselt veebisaidilt.
Sõelutud kood
Nagu eespool mainitud, saavad .NET Frameworkiga loodud rakendused algset lähtekoodi kergesti lahti võtta, kuid tegelikult juhtub see, et montaažifaili lahtivõtmisel, nagu joonisel näidatud, saab enamikku algsest lähtekoodist, nagu nimeruumid, klassinimed ja meetodi nimed, reprodutseerida.
Hägustamise protseduur
Alustuseks looge Silverlighti rakendus nagu tavaliselt ja tehke väljalaske järk. Siin loome rakenduse, mis asetab ainult kaks nuppu.
Tippige selle kausta kausta Bin\Release, kus projekt asub, . xap" on pakettfail, mis võtab kokku Silverlighti rakendustes kasutatavad programmid ja failid.
Tegelikult on see fail tihendatud ja kompileeritud ZIP-failina, nii et laiendus on ". tõmblukk".
See on muudetud ZIP-failiks.
Faili avamisel sisaldab see manifestifaili ja DLL-i. See DLL on rakendusena töötava programmi kompileeritud versioon.
Muide, DLL-fail paigutatakse ka vabastamise kausta, kui see on ehitatud, nii et seekord hägustame selle faili.
Valige menüüst Visual Studio suvand Tööriistad ja seejärel valige Ennetav dotfuscator ja analüüs.
Esmakordsel käivitamisel kuvatakse dialoog "Litsentsileping", seega lugege sisu hoolikalt läbi, kontrollige "Jah, ma nõustun litsentsilepinguga." ja klõpsake nuppu "OK".
PreEmptive Dotfuscator And Analytics CE algab.
Valige vasakul asuvast puust "Sisendid" ja klõpsake nuppu "Lisa sisend".
Valige ehitamise ajal loodud DLL-fail.
Valige lisatud DLL-fail ja tühjendage ruut Teegirežiim > XAML-i teisendamine.
Kui kontrollitakse "Raamatukogu režiimi", ei hägusta avalikult määratletud klasse ja meetodeid.
Kui kontrollitakse "XAML-i teisendamist", hägustatakse XAML-is määratletud klassid, kuid sõltuvalt sellest, kuidas te selle loote, põhjustab see käivitusvea, nii et kui see ilmneb, tühjendage see märkeruut.
Põhimõtteliselt on kõik klassid, meetodid, omadused ja muutujate nimed hägustunud, kuid kui te ei soovi serialiseerimise tõttu konkreetset nimeruumi või klassi hägustada, valige vasakul asuvast puust "Nimeta ümber", valige vahekaart "Välista" ja kontrollige sihtmärgi nimeruumi või klassi.
Veenduge, et jaotises Sisseehitatud reeglid oleks märgitud Silverlighti ja WPF-i kasutajakontrollide väljad. Selle kontrollimine muudab UserControlsi välja häguseks ja töötab edukalt. Saate selle tühjendada, kui tundub, et see töötab õigesti ka pärast hägustumist.
Kui olete lõpetanud, klõpsake tööriistaribal nuppu "Ehita projekt".
Kui projektis on muudatusi, kuvatakse projekti salvestamise kinnitusdialoog, seega klõpsake salvestamiseks nuppu "Jah".
Projekti nimetatakse ". xml" fail. Hägustunud failid salvestatakse samasse asukohta.
Oodake, kuni ehitamine algab. Pange tähele, et mida suurem on programm, seda kauem kulub ehitamiseks. Kui see näeb välja nagu joonis, on ehitamine lõppenud.
Sõnumiväli näitab ehitamise edenemist ja lühikest tulemust, näiteks seda, kui hägustunud see oli.
Kui valite vasakult puust suvandi Tulemused, näete üksikasju selle kohta, kuidas klasside ja meetodite nimed on muutunud.
Klasside ja meetodite nimede all on Dotfuscatori ikoon ja sellised nimed nagu "a" ja "b", mis on hägustunud nimi. Muutes klassi nime või meetodi nime sel viisil mõttetuks nimeks, isegi kui see on lahti võetud, võib see muuta lähtekoodi sisu raskesti loetavaks.
Hägustunud fail luuakse kaustas nimega "Dotfuscated" Salvesta projekti salvestatud .xml faili kaustas. Lisaks hägustunud failile on loodud fail "Map.xml", kuid see on hägustamise tulemus ja seda ei kasutata.
Kui võtate hägustunud faili lahti, näete, et mõned klasside ja meetodite nimed on muudetud "a" või "b".
Seekord oli vaikimisi loodud projekt peaaegu nagu see oli, nii et ma arvan, et on olemas pilt, et see ei ole nii hägustunud, kuid ma arvan, et hägustamise mõju muutub selgemaks, sest klasside arv jne suureneb projekti kasvades.
Kõrvalmärkusena, . NET Frameworki teegid ja neid ei nimetata ümber, kuna need on näiteks Windowsis juba installitud sõlmed.
Silverlight ei kasuta DLL-e olemasoleval kujul, seega on need pakitud XAP-failidena. Nagu alguses mainitud, on XAP-fail lihtsalt ZIP-faili laienduse muutmine, nii et see loob ZIP-faili, kogudes XAP-failis sisalduvad failid ja hägustunud DLL-id.
ZIP-faili loomist saab teha standardsete OS-i funktsioonide abil.
Luuakse ZIP-fail.
Laiendus muudetakse ". xap" ja kui failinimi on erinev, muutke see algseks paketi failinimeks.
Asetage XAP-fail levituskohta.
Palun kontrollige toimingut ja vaadake, kas see töötab korralikult.
Kui see ei käivitu, kontrollige, kuni see töötab normaalselt, vähendades hägustunud koodi. Pange tähele, et Silverlight takerdub sageli XAML-iga seotud küsimustesse.
Kuigi juhiseid pole siin loetletud, kui soovite programmi allkirjastada, ehitage see viivitusega allkirjastatud olekusse, hägustage assamblee ja allkirjastage seejärel uuesti. Isegi kui hägustate seda allkirjastamise ajal, ei sobi ehitamise ajal lisatud allkirjakood ja pärast hägustamist olev allkirjakood, nii et te ei saa seda käivitada.
Selles artiklis olen loetlenud tasuta versiooni sammud, kuid kui kasutate tasulist versiooni, saate teha keerukamat hägustamist ja vältida lahtivõtmist. Kuid hägustumine võib põhjustada mitmesuguseid kahjulikke mõjusid, nii et kui hägustumine on tehtud, on vaja kaaluda, kas see töötab disaini algusest peale korralikult.