טשטש את יישום Silverlight שלך עם Dotfuscator

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

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

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

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

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

דוטפוסקטור

קוד מנותח

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

解析されたコード

הליך ערפול

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

Release ビルド

בתיקיה Bin\Release של התיקיה שבה ממוקם הפרוייקט, הקלד . xap" הוא קובץ חבילה המסכם את התוכניות והקבצים המשמשים ביישומי Silverlight.

XAP ファイル

למעשה, קובץ זה דחוס ומהודר כקובץ ZIP, ולכן הסיומת היא ". רוכסן".

拡張子を .zip に変更

הוא השתנה לקובץ ZIP.

ZIP ファイル

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

אגב, קובץ ה- DLL ממוקם גם בתיקייה שחרור כאשר הוא בנוי, אז הפעם נוכל לטשטש את הקובץ הזה.

ZIP ファイルの中身

מתפריט Visual Studio, בחר כלים ולאחר מכן בחר Dotfuscator וניתוח מונעים.

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

PreEmptive Dotfuscator And Analytics を選択

ה- Dotfuscator וה- Analytics CE מתחיל.

PreEmptive Dotfuscator And Analytics CE

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

入力の追加

בחר את קובץ ה- DLL שיצרת במהלך הבנייה.

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

בחר את קובץ ה- DLL שהוספת ובטל את סימון מצב הספריה > המרת XAML.

אם "מצב ספרייה" מסומן, שיעורים ושיטות המוגדרים בפומבי לא יטשטשו.

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

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

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

難読化の除外

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

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

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

プロジェクトのビルド

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

プロジェクト保存確認ダイアログ

הפרויקט נקרא ". xml" קובץ. קבצים מבלבלים נשמרים באותו מיקום.

プロジェクト保存

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

שדה ההודעה מציג את התקדמות הבנייה ותוצאה קצרה כגון עד כמה היא הייתה מטושטשת.

ビルド完了

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

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

難読化結果

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

難読化したファイル

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

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

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

難読化したコードの解析

Silverlight אינו משתמש בקבצי DLL כפי שהם, ולכן הם ארוזים כקבצי XAP. כפי שצוין בהתחלה, קובץ XAP הוא רק שינוי בסיומת של קובץ ה- ZIP, כך שהוא יוצר קובץ ZIP על-ידי איסוף הקבצים הכלולים בקובץ XAP וקבצי ה- DLL המבלבלים.

יצירת קובץ ZIP יכולה להיעשות באמצעות תכונות סטנדרטיות של מערכת ההפעלה.

ファイルを ZIP 化

נוצר קובץ ZIP.

ZIP ファイル

ההרחבה משתנה ל-'. xap" ואם שם הקובץ שונה, שנה אותו לשם הקובץ המקורי של החבילה.

מקם את קובץ ה- XAP במיקום הפצה.

XAP ファイルに変更

אנא בדוק את הפעולה ובדוק אם היא פועלת כראוי.

אם זה לא מתחיל, לבדוק עד שזה עובד כרגיל על ידי הפחתת קוד מטושטש. שים לב ש- Silverlight נתקע לעתים קרובות בעניינים הקשורים ל- XAML.

動作確認

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

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