דילוג לתוכן
  • דף הבית
  • קטגוריות
  • פוסטים אחרונים
  • משתמשים
  • חיפוש
  • חוקי הפורום
כיווץ
תחומים

תחומים - פורום חרדי מקצועי

💡 רוצה לזכור קריאת שמע בזמן? לחץ כאן!
  1. דף הבית
  2. תכנות
  3. ארכיון code613m
  4. הגנת DLL ו EXE בדוט נט משיטת patch

הגנת DLL ו EXE בדוט נט משיטת patch

מתוזמן נעוץ נעול הועבר ארכיון code613m
11 פוסטים 3 כותבים 648 צפיות
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • רחמיםר מנותק
    רחמיםר מנותק
    רחמים מורחק
    כתב ב נערך לאחרונה על ידי
    #2

    עוד המון פרטים וקוד מקור של השיטה כאן:
    http://www.codeproject.com/KB/msil/reflexil.aspx

    יש למישהו רעיונות להגנה :?:

    פורסם במקור בפורום CODE613 ב05/08/2013 11:38 (+03:00)

    תגובה 1 תגובה אחרונה
    0
    • dovidD מחובר
      dovidD מחובר
      dovid ניהול
      כתב ב נערך לאחרונה על ידי
      #3

      קודם צריך להבין איך זה עובד,
      כל אסמבלי (DLL/EXE) דוטנטי כתוב בשפה די קריאה המכונה CLI.
      כשהאסמבלי מורץ מתבצע הידור (קומפילציה) שלו עד לשפת מכונה.

      ממילא, קל מאוד לצפות בקוד המקור ולדעת את סודותיו, ואף לערוך אותו.
      יש הרבה צופי/עורכי אסמבלי דוטנטי, חלקם חינמיים (לדוגמא http://www.jetbrains.com/decompiler).

      אז איך מתגוננים?
      הנה מאמר בנושא: http://www.underwar.co.il/15-DigitalWhisper/d577/

      מה שמוצע שם זה ערפול הקוד, באנגלית: obfuscators.
      איפה משיגים בחינם? אולי פה תמצאו: http://stackoverflow.com/questions/805549/free-obfuscation-tools-for-net

      יש אחד רשמי בתשלום של מיקרוסופט מובנה בVS האולטימייט כמדומני.

      בהצלחה.

      פורסם במקור בפורום CODE613 ב05/08/2013 13:27 (+03:00)

      מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

      בכל נושא אפשר ליצור קשר dovid@tchumim.com

      תגובה 1 תגובה אחרונה
      0
      • רחמיםר מנותק
        רחמיםר מנותק
        רחמים מורחק
        כתב ב נערך לאחרונה על ידי
        #4

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

        Build Statistics    Total  Renamed  Percent Renamed
        Types:                 70       13           18.57%
        Methods:              446       78           17.49%
        Fields:               558      148           26.52%
        

        וחוץ מזה יש עוד בעיה איתו שהוא בונה את כל הDLL מחדש ואז ה'האש' של ה DLL משתנה והוא כבר לא מתאים להאש שבמניפסט [מדובר על תוסף לוורד] ואי אפשר להתקין.

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

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

        פורסם במקור בפורום CODE613 ב06/08/2013 11:41 (+03:00)

        תגובה 1 תגובה אחרונה
        0
        • M מנותק
          M מנותק
          magicode
          כתב ב נערך לאחרונה על ידי
          #5

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

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

          לדעתי תוסיף זבל לתוכנה. כל מיני פונקציות לא קשורות או איזה מחלקה ענקית כמו zlib.
          תקודד מחרוזות בצורה כזאת

          "\u0053" + "\u0046"
          

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

          פורסם במקור בפורום CODE613 ב06/08/2013 12:22 (+03:00)

          תגובה 1 תגובה אחרונה
          0
          • רחמיםר מנותק
            רחמיםר מנותק
            רחמים מורחק
            כתב ב נערך לאחרונה על ידי
            #6

            @magicode

            זה היה הקש (או האבן) ששבר את גב הגמל ומאז אני ממעט לפתח בנט.

            אז במה אתה כן מפתח?

            @magicode

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

            זה סיפור מצמרר וגם אני שמעתי סיפורים על כמה מתכנתים שפירסמו את התוכנות שלהם ללא עירפול מינימלי.

            @magicode

            אבל אף פעם זה לא יהיה חסום הרמטי.

            אם אתה רוצה לראות מה זה ערפול כמו שצריך פתח ברפלקטור את הרפלקטור בעצמו....

            פורסם במקור בפורום CODE613 ב06/08/2013 12:59 (+03:00)

            תגובה 1 תגובה אחרונה
            0
            • dovidD מחובר
              dovidD מחובר
              dovid ניהול
              כתב ב נערך לאחרונה על ידי
              #7

              @magicode

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

              אלא בתוכנות קוד פתוח 🙂

              @magicode

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

              גם אם היו מתחכמים מאוד, חכם קטן היה עולה על הסיסמה.
              גם בC++.
              הטעות שלהם היא בהקצאת משתמש עם 1) הרשאות כתיבה 2) גישה למקומות שלא צריך.

              @magicode

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

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

              @magicode

              לדעתי תוסיף זבל לתוכנה. כל מיני פונקציות לא קשורות או איזה מחלקה ענקית כמו zlib.
              תקודד מחרוזות בצורה כזאת

              "\u0053" + "\u0046"
              

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

              פורסם במקור בפורום CODE613 ב06/08/2013 13:33 (+03:00)

              מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

              בכל נושא אפשר ליצור קשר dovid@tchumim.com

              תגובה 1 תגובה אחרונה
              0
              • dovidD מחובר
                dovidD מחובר
                dovid ניהול
                כתב ב נערך לאחרונה על ידי
                #8

                @רחמים

                לי יש בVS את מה שהזכרת שקוראים לו Dotfuscator
                אבל התוצאות שהוא נותן לא מספקות כלל

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

                לגבי שאלתך ראה אולי בקישורים תצא פיתרון:
                http://stackoverflow.com/questions/11596514/how-to-use-dotfuscator-with-vsto
                http://social.msdn.microsoft.com/Forums/windows/en-US/92ef0ad2-532a-41f1-ae11-3addbe9f0434/clickonce-deployment-issue-file-has-different-computed-hash-than-specified-in-manifest-urgent
                http://stackoverflow.com/questions/3416223/how-to-use-obfuscation-for-clickonce

                פורסם במקור בפורום CODE613 ב06/08/2013 13:43 (+03:00)

                מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

                בכל נושא אפשר ליצור קשר dovid@tchumim.com

                תגובה 1 תגובה אחרונה
                0
                • M מנותק
                  M מנותק
                  magicode
                  כתב ב נערך לאחרונה על ידי
                  #9

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

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

                  @דוד ל.ט.

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

                  אני מכיר את התוכנות האלו ולכן זה מה שהצעתי.

                  התוכנה הכי טובה בתחום לדעתי
                  http://www.eziriz.com/

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

                  פורסם במקור בפורום CODE613 ב06/08/2013 14:06 (+03:00)

                  תגובה 1 תגובה אחרונה
                  0
                  • dovidD מחובר
                    dovidD מחובר
                    dovid ניהול
                    כתב ב נערך לאחרונה על ידי
                    #10

                    @magicode

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

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

                    פורסם במקור בפורום CODE613 ב06/08/2013 17:28 (+03:00)

                    מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

                    בכל נושא אפשר ליצור קשר dovid@tchumim.com

                    תגובה 1 תגובה אחרונה
                    0
                    • רחמיםר מנותק
                      רחמיםר מנותק
                      רחמים מורחק
                      כתב ב נערך לאחרונה על ידי
                      #11

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

                      1. הקוד מקור ולזה ערפול סביר עושה את העבודה כי כבר לא שווה לפורץ הפוטנציאלי להתעסק איתו אלא לכתוב את הקוד לבד.
                      2. מניעת עריכת הDLL בשיטת patch הנ''ל ולזה כמעט שלא יכול לעזור הערפול כיון שהפורץ ניגש ישר לפונקציה שבה התוכנה מתחילה [ entrypoint ] ומשנה אותה או מוחק את הקוד הפנימי שלה. או שהוא ניגש לכל פונקציה אחרת שמזהה אותה כבודקת רשיון וכדומה.

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

                      פורסם במקור בפורום CODE613 ב07/08/2013 11:34 (+03:00)

                      תגובה 1 תגובה אחרונה
                      0

                      בא תתחבר לדף היומי!
                      • התחברות

                      • אין לך חשבון עדיין? הרשמה

                      • התחברו או הירשמו כדי לחפש.
                      • פוסט ראשון
                        פוסט אחרון
                      0
                      • דף הבית
                      • קטגוריות
                      • פוסטים אחרונים
                      • משתמשים
                      • חיפוש
                      • חוקי הפורום