Takarja el Silverlight-alkalmazását a Dotfuscatorral
A Dotfuscator-ról
A Dotfuscator egy obfuszkátor, amely megnehezíti a forráskód olvasását a .NET Framework használatával írt alkalmazások szétszerelésekor. A Dotfuscator ingyenes és fizetős kiskereskedelmi verziókban is elérhető, amelyek a Visual Studio részét képezik.
Az ingyenes verzió csak számos korlátozott funkcióval érhető el, és feltételezhető, hogy a Visual Studio fut, de bárki, aki rendelkezik a Visual Studióval, használhatja. A fizetős verzió számos hatékony obfuszkációs funkcióval rendelkezik, amelyek nem érhetők el az ingyenes verzióban, de bosszantó lehet, hogy olyan áron kínálják, amelyet a nagyközönség nehezen engedhet meg magának.
A Dotfuscator a verziótól függően különböző funkciókkal, árakkal és kiadásokkal rendelkezhet, ezért kérjük, látogasson el a következő webhelyre a részletekért.
Elemzett kód
Mint fentebb említettük, a .NET Framework segítségével létrehozott alkalmazások szétszereléssel könnyen elolvashatják az eredeti forráskódot, de valójában az történik, hogy amikor szétszerel egy szerelvényfájlt az ábrán látható módon, az eredeti forráskód, például a névterek, az osztálynevek és a metódusnevek nagy része reprodukálható.
Obfuszkációs eljárás
Kezdje azzal, hogy a szokásos módon létrehozza a Silverlight alkalmazást, és létrehoz egy kiadási buildet. Itt egy olyan alkalmazást hozunk létre, amely csak két gombot helyez el.
Annak a mappának a Bin\Release mappájába, ahol a projekt található, írja be a következőt: . Az xap" egy csomagfájl, amely összefoglalja a Silverlight-alkalmazásokban használt programokat és fájlokat.
Valójában ez a fájl tömörítve van, és ZIP fájlként van lefordítva, így a kiterjesztés ". zip".
ZIP-fájlra változott.
A fájl megnyitásakor az egy jegyzékfájlt és egy DLL-fájlt tartalmaz. Ez a DLL az alkalmazásként futó program lefordított verziója.
Egyébként a DLL fájl is a Release mappába kerül, amikor elkészül, így ezúttal elhomályosítjuk ezt a fájlt.
A Visual Studio válassza az Eszközök, majd a PreEmptive Dotfuscator And Analytics lehetőséget.
Az első indításkor megjelenik a "Licencszerződés" párbeszédpanel, ezért figyelmesen olvassa el a tartalmat, jelölje be az "Igen, elfogadom a licencszerződést." jelölőnégyzetet, majd kattintson az "OK" gombra.
Elindul a PreEmptive Dotfuscator And Analytics CE.
Válassza a "Bemenetek" lehetőséget a bal oldali fáról, majd kattintson a "Bemenet hozzáadása" gombra.
Válassza ki a build során létrehozott DLL-fájlt.
Jelölje ki a hozzáadott DLL-fájlt, és törölje a jelet a Könyvtármód > XAML-átalakítás jelölőnégyzetből.
Ha a "Könyvtár mód" be van jelölve, a nyilvánosan definiált osztályok és metódusok nem lesznek elhomályosítva.
Ha az "XAML-átalakítás" be van jelölve, az XAML-ben definiált osztályok elhomályosulnak, de a létrehozás módjától függően indítási hibát okoz, ezért ha bekövetkezik, törölje a jelölést.
Alapvetően minden osztály, metódus, tulajdonság és változónév el van rejtve, de ha nem szeretne egy adott névteret vagy osztályt elhomályosítani a szerializálás miatt, válassza a bal oldali fa "Átnevezés" elemét, válassza a "Kizárás" fület, és ellenőrizze a cél névteret vagy osztályt.
A Beépített szabályok alatt győződjön meg arról, hogy a Silverlight és a WPF UserControls mezői be van jelölve. Ennek ellenőrzése elhomályosítja a UserControls mezőt, és sikeresen lefut. Törölheti a jelölést, ha úgy tűnik, hogy az elhomályosítás után is megfelelően működik.
Ha végzett, kattintson az eszköztár "Projekt építése" gombjára.
Ha a projektben változások történnek, megjelenik a projekt mentésének megerősítő párbeszédpanelje, így a mentéshez kattintson az "Igen" gombra.
A projekt neve ". xml" fájlt. Az elhomályosított fájlokat a rendszer ugyanarra a helyre menti.
Várja meg, amíg a build befejeződik, amikor elindul. Ne feledje, hogy minél nagyobb a program, annál hosszabb ideig tart az építés. Ha úgy néz ki, mint az ábra, a build befejeződött.
Az üzenetmező mutatja az építés előrehaladását és egy rövid eredményt, például azt, hogy mennyire volt elhomályosítva.
Ha a bal oldali fán az Eredmények lehetőséget választja, megtekintheti az osztály- és metódusnevek változásának részleteit.
Az osztály- és metódusnevek alatt megjelenik egy Dotfuscator ikon és olyan nevek, mint az "a" és a "b", amelyek az elhomályosított név lesznek. Ha az osztály nevét vagy a metódus nevét ilyen módon értelmetlen névre változtatja, még akkor is, ha szétszerelik, megnehezítheti a forráskód tartalmának olvasását.
Az elhomályosított fájl egy "Dotfuscated" nevű mappában jön létre a Save Project programban mentett .xml fájl mappájában. Az elhomályosított fájl mellett egy "Map.xml" fájl is létrejött, de ez az obfuszkáció eredménye, és nem használják.
Ha szétszereli az elhomályosított fájlt, láthatja, hogy egyes osztály- és metódusnevek "a" vagy "b" értékre módosultak.
Ezúttal az alapértelmezett létrehozott projektet szinte úgy homályosították el, ahogy volt, tehát azt hiszem, van egy kép, hogy nem annyira elhomályosult, de úgy gondolom, hogy az elhomályosítás hatása egyértelműbbé válik, mert az osztályok száma stb. növekszik a projekt növekedésével.
Mellékesen, . NET-keretrendszer könyvtárai, és nem tartoznak az átnevezés hatálya alá, mert például olyan szerelvényekről van szó, amelyek már telepítve vannak a Windows rendszeren.
A Silverlight nem használja a DLL-eket, ezért XAP-fájlokként vannak csomagolva. Amint azt az elején említettük, az XAP-fájl csak a ZIP-fájl kiterjesztésének módosítása, ezért zip-fájlt hoz létre az XAP-fájlban található fájlok és az elhomályosított DLL-ek összegyűjtésével.
A ZIP-fájl létrehozása szabványos operációs rendszer funkciókkal történhet.
Létrejön egy ZIP-fájl.
A kiterjesztés ". xap" és ha a fájlnév eltér, módosítsa az eredeti csomagfájl nevére.
Helyezze az XAP-fájlt egy terjesztési helyre.
Kérjük, ellenőrizze a műveletet, és ellenőrizze, hogy megfelelően működik-e.
Ha nem indul el, ellenőrizze, amíg normálisan működik, az elhomályosított kód csökkentésével. Ne feledje, hogy a Silverlight gyakran elakad az XAML-lel kapcsolatos ügyekben.
Bár az utasítások itt nem szerepelnek, ha alá szeretne írni egy programot, építse azt késleltetett állapotban, homályosítsa el az összeszerelést, majd írja alá újra. Még ha el is homályosítja, miközben alá van írva, az összeállításkor csatolt aláírási kód és az elhomályosítás utáni aláírási kód nem egyezik meg, így nem fogja tudni elindítani.
Ebben a cikkben felsoroltam az ingyenes verzió lépéseit, de ha a fizetett verziót használja, akkor bonyolultabb ködösítést végezhet, és megakadályozhatja a szétszerelést. Az elhomályosítás azonban különböző káros hatásokat okozhat, ezért az elhomályosításkor meg kell fontolni, hogy a tervezés kezdetétől megfelelően működik-e.