טשטש את יישום Silverlight שלך עם Dotfuscator
אודות דוטפוסקטור
Dotfuscator הוא מבלבל המקשה על קריאת קוד המקור כאשר יישומים שנכתבו עם .NET Framework מפורקים. Dotfuscator זמין הן בגרסאות קמעונאיות בחינם והן בתשלום שמגיעות עם Visual Studio.
הגירסה החינמית זמינה רק עם תכונות מוגבלות רבות וההנחה ש- Visual Studio פועל, אך כל מי שמותקן בו Visual Studio יכול להשתמש בה. לגרסה בתשלום יש תכונות ערפול רבות עוצמה שאינן זמינות בגרסה החינמית, אך זה עשוי להיות מעצבן שהיא מוצעת במחיר שקשה לציבור הרחב להרשות לעצמו.
ל- Dotfuscator עשויות להיות תכונות, מחירים ומהדורות שונות בהתאם לגרסה, לכן עיין באתר האינטרנט הבא לקבלת פרטים.
קוד מנותח
כפי שצוין לעיל, יישומים שנוצרו באמצעות .NET Framework יכולים לקרוא בקלות את קוד המקור המקורי על-ידי פירוק, אך מה שקורה בפועל הוא שכאשר אתה מפרק קובץ הרכבה כפי שמוצג באיור, ניתן לשכפל את רוב קוד המקור המקורי כגון מרחבי שמות, שמות מחלקות ושמות שיטות.
הליך ערפול
התחל על-ידי יצירת היישום Silverlight כרגיל וביצוע גירסת Build של הפצה. כאן, אנו יוצרים יישום שמציב רק שני לחצנים.
בתיקיה Bin\Release של התיקיה שבה ממוקם הפרוייקט, הקלד . xap" הוא קובץ חבילה המסכם את התוכניות והקבצים המשמשים ביישומי Silverlight.
למעשה, קובץ זה דחוס ומהודר כקובץ ZIP, ולכן הסיומת היא ". רוכסן".
הוא השתנה לקובץ ZIP.
בעת פתיחת הקובץ, הוא מכיל קובץ מניפסט ו- DLL. DLL זה הוא הגירסה המהודרת של התוכנית הפועלת כיישום.
אגב, קובץ ה- DLL ממוקם גם בתיקייה שחרור כאשר הוא בנוי, אז הפעם נוכל לטשטש את הקובץ הזה.
מתפריט Visual Studio, בחר כלים ולאחר מכן בחר Dotfuscator וניתוח מונעים.
כאשר מתחילים בפעם הראשונה, תיבת הדו-שיח "הסכם רישיון" תוצג, לכן קרא את התוכן בעיון, סמן "כן, אני מקבל את הסכם הרישיון." ולחץ על הלחצן "אישור".
ה- Dotfuscator וה- Analytics CE מתחיל.
בחר "כניסות" מהעץ בצד שמאל ולחץ על הלחצן "הוסף קלט".
בחר את קובץ ה- DLL שיצרת במהלך הבנייה.
בחר את קובץ ה- DLL שהוספת ובטל את סימון מצב הספריה > המרת XAML.
אם "מצב ספרייה" מסומן, שיעורים ושיטות המוגדרים בפומבי לא יטשטשו.
אם האפשרות "המרת XAML" מסומנת, מחלקות המוגדרות ב- XAML יוסתעלו, אך בהתאם לאופן היצירה שלהן, הדבר יגרום לשגיאת אתחול, כך שאם היא מתרחשת, בטל את הסימון שלה.
בעיקרון, כל המחלקות, השיטות, המאפיינים ושמות המשתנים מטושטשים, אך אם אינך רוצה לטשטש מרחב שמות או מחלקה ספציפיים עקב סידור, בחר "שנה שם" מהעץ בצד שמאל, בחר בכרטיסייה "אל תכלול" ובדוק את מרחב השמות או המחלקה של היעד.
תחת כללים מוכללים, ודא ששדות עבור Silverlight ו- WPF UserControls מסומנים. בדיקה זו תהפוך את השדה 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.
ההרחבה משתנה ל-'. xap" ואם שם הקובץ שונה, שנה אותו לשם הקובץ המקורי של החבילה.
מקם את קובץ ה- XAP במיקום הפצה.
אנא בדוק את הפעולה ובדוק אם היא פועלת כראוי.
אם זה לא מתחיל, לבדוק עד שזה עובד כרגיל על ידי הפחתת קוד מטושטש. שים לב ש- Silverlight נתקע לעתים קרובות בעניינים הקשורים ל- XAML.
למרות שההוראות אינן מפורטות כאן, אם ברצונך לחתום על תוכנית, בנה אותה במצב חתום על עיכוב, טשטש את ההרכבה ולאחר מכן חתום מחדש. גם אם תטשטש אותו בזמן שהוא חתום, קוד החתימה המצורף בזמן הבנייה וקוד החתימה לאחר הערפול לא יתאימו, כך שלא תוכל להפעיל אותו.
במאמר זה, פירטתי את השלבים עבור הגרסה החינמית, אבל אם אתה משתמש בגרסה בתשלום, אתה יכול לבצע ערפול מורכב יותר ולמנוע פירוק עצמו. עם זאת, ערפול יש פוטנציאל לגרום לתופעות לוואי שונות, ולכן כאשר ערפול נעשה, יש צורך לשקול אם זה יעבוד כראוי מתחילת העיצוב.