A Dotfuscator használatával létrehozott alkalmazások elhomályosítása

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

összefoglalás

Mivel NET-keretrendszeren alapuló alkalmazások az úgynevezett közös köztes nyelven jönnek létre, szétszerelési eszközökkel és hasonlókkal az eredeti forráskódhoz közeli formában olvashatók. Ez a szakasz azt ismerteti, hogyan lehet a Dotfuscatort, a Visual Studiót használó obfuszkátort elhomályosítani az osztály- és metódusnevek nem könnyen olvasható formátumba való elhomályosítására.

Itt a Visual Studio 2010 használatával beszélünk róla, de 2005-ben és 2008-ban is használhatja a Dotfuscatort.

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

Működési környezet

Támogatott Visual Studio-verziók

  • 2005
  • 2008
  • 2010

A Visual Studio verziójának ellenőrzése

  • 2005
  • 2008
  • 2010

lényeg

A Dotfuscator-ról

A Dotfuscator egy elhomályosító eszköz, amely megnehezíti a forráskód olvasását, ha a .NET keretrendszerrel írt alkalmazásokban szétszerelik. A Dotfuscator ingyenesen és díj ellenében érkezik a Visual Studióval.

Az ingyenes verzió csak akkor érhető el, ha számos funkciója korlátozott, vagy a Visual Studio elindul, de bárki használhatja, amíg telepítve van a Visual Studio. A fizetős verzió számos erőteljes ködösítő funkcióval rendelkezik, amelyek nem találhatók meg az ingyenes verzióban, de 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 rendelkezik, ezért kérjük, olvassa el a következő weboldalt a részletekért.

Elhomályosítási eljárás

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

Korábban említettem, hogy a .NET Framework segítségével létrehozott alkalmazások szétszerelhetik és könnyen elolvashatják az eredeti forráskódot, de a tényleges helyzet az, hogy ha szétszereljük az exe fájlt a jobb oldali ábrán látható módon, akkor szinte reprodukálhatjuk az eredeti forráskódot, például névteret, osztálynevet, metódusnevet stb.

Leírja azokat a lépéseket, amelyek miatt ezek a nevek zavarosak és homályosak lehetnek.

Dotfuscator Software Services

Az alkalmazás létrehozása a Visual Studióban és egy exe fájl létrehozása pontosan megegyezik a létrehozás szokásos módjával.

Miután létrehozta és létrehozta az exe fájlt, válassza az Eszközök lehetőséget a Visual Studio menüjében, majd válassza a Dotfuscator Software Services lehetőséget.

使用許諾契約書

Amikor először indul el, a "Licencszerződés" párbeszédpanel a jobb oldali ábrán látható módon jelenik meg, ezért olvassa el figyelmesen a tartalmat, jelölje be az "Igen, elfogadom a licencszerződést." jelölőnégyzetet, majd kattintson az "OK" gombra.

Dotfuscator Software Services

Elindul a Dotfuscator Software Services.

入力アセンブリの追加

Az elhomályosítandó exe (vagy dll fájl) nem kell, hogy a jelenleg megnyitott projektből származzon.

Válassza ki a bemeneti szerelvényeket a bal oldali fáról, majd kattintson a jobb oldali bemeneti szerelvényekre a ... gombra.

難読化する exe ファイル

Válassza ki az elhomályosítani kívánt exe fájlt.

追加したアセンブリ

A kiválasztott exe fájl hozzáadódik a listához. Ha több fájlt szeretne elhomályosítani, kattintson a második sor utáni "..." gombra a hozzáadáshoz.

プロジェクトのビルド

Miután kiválasztotta az elhomályosítani kívánt exe-t, kattintson a gombra Projekt készítése gombot az eszköztáron.

プロジェクトの保存

Ha bármilyen változás történik a projektben, megjelenik a projekt mentését megerősítő párbeszédpanel, ezért kattintson az "Igen" gombra a mentéshez.

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

A projektet ". xml" fájlt. Az elhomályosított exe fájl is ugyanarra a helyre kerül mentésre, ezért mentse a .xml fájlt bármely mappába.

ビルド

A build elindul, és megvárja, amíg befejeződik. Ne feledje, hogy minél nagyobb a program, annál tovább tart az építés. Ha úgy néz ki, mint a jobb oldali ábra, az építés befejeződött.

Az üzenetmező egyszerű eredményeket jelenít meg, például a build előrehaladását és azt, hogy mennyire volt elhomályosítva.

難読化結果

Ha a bal oldali fáról az "Eredmény" lehetőséget választja, láthatja az osztály- és metódusnevek változásának részleteit.

Az osztály- és metódusnevek alatt van egy Dotfuscator ikon és egy olyan név, mint "a" vagy "b", ami az elhomályosított név. Ha az osztály nevét vagy a metódus nevét egy ilyen értelmetlen névre változtatja, akkor a forráskód tartalmát akkor is megnehezítheti az olvasás, ha szétszerelik.

難読化したアセンブリ

Az obfuszkált exe fájlokat a Save Projectben mentett .xml fájlok mappájában hozzák létre, amelyeket "Dotfuscated" -nek neveznek, és benne jönnek létre. Az exe fájl mellett egy "Map .xml" fájlt is létrehoztak, de ez az obfuszkáció eredménye, és nem szabad használni.

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

Az elhomályosított exesek futtathatók és használhatók adott állapotban. Vannak azonban olyan esetek, amikor egy ismeretlen hiba miatt nem lehet elindítani, amint az a jobb oldali ábrán látható.

Ezúttal wpf-ben írtam egy alkalmazást, de mivel az első megjelenítendő ablak XAML-fájlja karakterláncként van megadva, az elhomályosítás miatti átnevezés miatt a hivatkozás elveszik, ami hibát eredményez.

A Windows Űrlap alkalmazások közvetlenül a From osztályra hivatkoznak, így hiba nélkül futhatnak, még akkor is, ha el vannak takarva. Ha azonban név szerint ad meg egy osztálynevet, egy enumtípust stb., Akkor óvatosnak kell lennie, mert fennáll annak a lehetősége, hogy ugyanaz a hiba következik be.

難読化の除外

Ha nem szeretne elhomályosítani egy osztályt vagy ilyesmit, válassza az Átnevezés lehetőséget a Dotfuscator bal oldalán található fáról, majd válassza a Kizárás lehetőséget a középső lapon.

Minden névtér, osztálynév stb. megjelenik a jobb oldali listában, ezért ellenőrizze azokat az elemeket, amelyeket nem szeretne elhomályosítani.

Itt nem akarom megváltoztatni az elsőként megjelenítendő ablak osztálynevét, ezért bejelölöm a "MainWindow" -t.

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

A buildelés során láthatja, hogy a MainWindowsban az osztálynév alatt nincs módosított név. (Az alkalmazásosztály "a" -ra lett konvertálva)

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

Az obfuszkált exe fájl futtatásakor láthatja, hogy az ablak helyesen jelenik meg.

難読化後の逆アセンブル

Ha szétszereli az elhomályosított exe fájlt, láthatja, hogy az osztály neve és a metódus neve megfelelően "a" vagy "b" -re változott.

De mellékesen. NET-keretrendszer kódtárai, például az osztálynevek nem képezhetik az átnevezést, mert olyan szerelvényekről van szó, amelyek már telepítve vannak a Windows rendszerre és másutt.

Ezúttal elhomályosítottam az alapértelmezett létrehozott projektet úgy, ahogy van, ezért úgy gondolom, hogy van egy kép, hogy nem annyira elhomályosult, de úgy gondolom, hogy az elhomályosítás hatása világossá válik, mert az osztályok száma stb. növekszik, ahogy a projekt növekszik.

Továbbá, bár ezúttal az eljárást az ingyenes verzióba foglaltuk, a fizetős verzió lehetővé teszi a bonyolultabb ködösítést, és megakadályozza magát a szétszerelést is. Az elhomályosításnak azonban különböző káros hatásai vannak, és előfordulhat, így amikor az elhomályosítást végzik, azt meg kell tenni, miközben figyelembe vesszük, hogy a tervezés kezdetétől megfelelően fog-e működni.