Takarja el Silverlight-alkalmazását a Dotfuscatorral

Oldal frissítve :
Oldal létrehozásának dátuma :

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.

Dotfuscator

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.

Release ビルド

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.

XAP ファイル

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 に変更

ZIP-fájlra változott.

ZIP ファイル

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.

ZIP ファイルの中身

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.

PreEmptive Dotfuscator And Analytics を選択

Elindul a PreEmptive Dotfuscator And Analytics CE.

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.

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

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.

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

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.

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

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.

ファイルを ZIP 化

Létrejön egy ZIP-fájl.

ZIP ファイル

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.

XAP ファイルに変更

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.