יישומי ערפול שנוצרו באמצעות Dotfuscator

עודכן דף :
תאריך יצירת דף :

תקציר

מכיוון שיישומים המבוססים על .NET Framework נוצרים במה שמכונה שפת ביניים משותפת, ניתן לקרוא אותם בצורה הקרובה לקוד המקור המקורי באמצעות כלי פירוק וכדומה. סעיף זה מתאר כיצד לטשטש את Dotfuscator, המערפל שמגיע עם Visual Studio, לטשטש שמות מחלקות ושיטות לתבנית שאינה ניתנת לקריאה בקלות.

אנחנו מדברים על זה כאן באמצעות Visual Studio 2010, אבל אתה יכול להשתמש Dotfuscator גם בשנים 2005 ו-2008.

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

סביבת הפעלה

גרסאות Visual Studio נתמכות

  • 2005
  • 2008
  • 2010

בדוק את גרסת Visual Studio

  • 2005
  • 2008
  • 2010

חומר

אודות דוטפוסקטור

Dotfuscator הוא כלי ערפול שמקשה על קריאת קוד מקור כאשר הוא מפורק ביישומים שנכתבו עם .NET Framework. Dotfuscator מגיע עם Visual Studio בחינם ותמורת תשלום.

הגרסה החינמית אינה זמינה אלא אם כן רבות מהתכונות שלה מוגבלות או ש-Visual Studio מופעל, אך כל אחד יכול להשתמש בה כל עוד ה-Visual Studio מותקן בה. לגרסה בתשלום יש תכונות ערפול רבות עוצמה שאינן נמצאות בגרסה החינמית, אך היא מוצעת במחיר שקשה לציבור הרחב להרשות לעצמו.

ל- Dotfuscator יש תכונות, מחירים ומהדורות שונות בהתאם לגרסה, לכן עיין בדף הבית הבא לקבלת פרטים.

הליך ערפול

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

ציינתי קודם לכן שיישומים שנוצרו עם .NET Framework יכולים לפרק ולקרוא בקלות את קוד המקור המקורי, אך המצב בפועל הוא שאם תפרק את קובץ ה- exe כפי שמוצג באיור מימין, תוכל כמעט לשחזר את קוד המקור המקורי כגון מרחב שמות, שם מחלקה, שם שיטה וכו '.

מתאר את השלבים כדי להפוך את השמות האלה למבלבלים ומעורפלים.

Dotfuscator Software Services

יצירת יישום ב- Visual Studio ויצירת קובץ exe זהה לחלוטין לדרך הרגילה ליצור אותו.

לאחר היצירה והיצירה של קובץ ה- exe, בחר כלים מתפריט Visual Studio ולאחר מכן בחר שירותי תוכנה של Dotfuscator.

使用許諾契約書

כאשר אתה מתחיל בפעם הראשונה, תיבת הדו-שיח "הסכם רישיון" מוצגת כפי שמוצג באיור בצד ימין, לכן קרא את התוכן בעיון, בדוק "כן, אני מסכים להסכם הרישיון." ולחץ על הלחצן "אישור".

Dotfuscator Software Services

שירותי התוכנה של Dotfuscator מתחילים.

入力アセンブリの追加

ה- exe (או קובץ ה- DLL) שיש לטשטש אינו חייב להיות מהפרויקט הפתוח כעת.

בחר מכלולי קלט מהעץ בצד שמאל, ולחץ על מכלולי הקלט בצד ימין כדי ללחוץ על לחצן ...

難読化する exe ファイル

בחר את קובץ ה- exe שברצונך לטשטש.

追加したアセンブリ

קובץ ה- exe שנבחר נוסף לרשימה. אם ברצונך לטשטש קבצים מרובים, לחץ על הלחצן "..." אחרי השורה השנייה כדי להוסיף אותם.

プロジェクトのビルド

לאחר שבחרת את ה- exe שברצונך לטשטש, לחץ על לחצן בנה פרוייקט מסרגל הכלים.

プロジェクトの保存

אם קיימים שינויים בפרוייקט, מוצגת תיבת הדו-שיח של אישור שמירת הפרוייקט, לכן לחץ על "כן" כדי לשמור.

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

הפרויקט נקרא ". קובץ xml". קובץ ה- exe המעורפל יישמר גם הוא באותו מיקום, לכן שמור את קובץ .xml בכל תיקיה.

ビルド

הבנייה תתחיל ותמתין עד שהיא תושלם. שים לב שככל שהתוכנית גדולה יותר, כך לוקח זמן רב יותר לבנות אותה. אם זה נראה כמו הדמות בצד ימין, הבנייה הושלמה.

שדה ההודעה מציג תוצאות פשוטות, כגון התקדמות גירסת ה-Build ועד כמה היא הייתה מטושטשת.

難読化結果

אם תבחר באפשרות "תוצאה" מהעץ משמאל, תוכל לראות פרטים על האופן שבו שמות המחלקות והשיטות השתנו.

מתחת לשמות המחלקה והשיטה, יש סמל Dotfuscator ושם כגון "a" או "b", שהוא השם המעורפל. על-ידי שינוי שם המחלקה או שם השיטה לשם חסר משמעות כזה, באפשרותך להקשות על קריאת תוכן קוד המקור גם אם הוא מפורק.

難読化したアセンブリ

קבצי exe מעורפלים נוצרים בתיקיה של קבצי .xml שנשמרו ב- Save Project, הנקראים "Dotfuscated", ונוצרים בו. בנוסף לקובץ exe, נוצר קובץ "מפה .xml", אך זוהי תוצאה של ערפול ואין להשתמש בו.

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

ניתן להפעיל אקסים מעורפלים ולהשתמש בהם כפי שהם. עם זאת, ישנם מקרים שבהם לא ניתן להתחיל אותו עקב שגיאה לא ידועה כפי שמוצג באיור מימין.

הפעם, כתבתי יישום ב- WPF, אך מכיוון שקובץ XAML של החלון הראשון להצגה מצוין כמחרוזת, שינוי השם עקב ערפול יגרום לאובדן ההפניה, וכתוצאה מכך לשגיאה.

יישומי טופס Windows מתייחסים ישירות למחלקת From, כך שהם יכולים לפעול ללא שגיאות גם אם הם מטושטשים. עם זאת, אם תציין שם מחלקה, סוג ספירה וכו 'לפי שם, עליך להיזהר מכיוון שקיימת אפשרות שאותה שגיאה תתרחש.

難読化の除外

אם אינך רוצה לטשטש מחלקה או משהו כזה, בחר שנה שם מהעץ בצד שמאל של Dotfuscator ובחר אל תכלול בכרטיסייה האמצעית.

כל מרחב שמות, שם מחלקה וכו' יוצגו ברשימה מימין, לכן בדוק את הפריטים שאינך רוצה לטשטש.

כאן, אני לא רוצה לשנות את שם המחלקה של החלון שיוצג הראשון, אז אני בודק "MainWindow".

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

כאשר אתה מבצע את ה- build, אתה יכול לראות שאין שם שונה תחת שם המחלקה ב- MainWindows. (מחלקת האפליקציה הומרה ל-"a")

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

בעת הפעלת קובץ ה- exe המטושטש, באפשרותך לראות שהחלון מוצג כראוי.

難読化後の逆アセンブル

אם תפרק את קובץ ה- exe המטושטש, תוכל לראות ששם המחלקה ושם השיטה שונו ל- "a" או "b" כראוי.

אבל במאמר מוסגר. ספריות NET Framework כגון שמות מחלקות אינן כפופות לשינוי שם מכיוון שהן מכלולים שכבר מותקנים ב- Windows ובמקומות אחרים.

הפעם, טשטשתי את פרויקט ברירת המחדל שנוצר כפי שהוא, ולכן אני חושב שיש תמונה שהיא לא כל כך מעורפלת, אבל אני חושב שההשפעה של ערפול מתבהרת מכיוון שמספר הכיתות וכו 'גדל ככל שהפרויקט גדל.

כמו כן, למרות שכללנו את ההליך בגרסה החינמית הפעם, הגרסה בתשלום מאפשרת ערפול מורכב יותר וגם מונעת פירוק עצמו. עם זאת, לערפול יש השפעות שליליות שונות ופוטנציאל להתרחש, ולכן כאשר ערפול מבוצע, יש צורך לעשות את זה תוך התחשבות אם זה יעבוד כראוי מתחילת העיצוב.