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

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

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

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

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

    כידוע יש שיטה של עריכה לקבצים בינאריים של דוטנט שמוחקים כמה שורות של בדיקת רשיון וכדומה וכך פורצים את התוכנה, מישהו התנסה בלהקשות או למנוע דבר כזה?
    קצת על שיטה:
    http://stackoverflow.com/questions/5731857/how-to-patch-a-line-of-code-in-a-dll

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

    תגובה 1 תגובה אחרונה
    0
    • רחמיםר מנותק
      רחמיםר מנותק
      רחמים מורחק
      כתב ב נערך לאחרונה על ידי
      #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
                        • דף הבית
                        • קטגוריות
                        • פוסטים אחרונים
                        • משתמשים
                        • חיפוש
                        • חוקי הפורום