דילוג לתוכן
  • חוקי הפורום
  • פופולרי
  • לא נפתר
  • משתמשים
  • חיפוש גוגל בפורום
  • צור קשר
עיצובים
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • ברירת מחדל (ללא עיצוב (ברירת מחדל))
  • ללא עיצוב (ברירת מחדל)
כיווץ
מתמחים טופ
  1. דף הבית
  2. מחשבים וטכנולוגיה
  3. עזרה הדדית - מחשבים וטכנולוגיה
  4. שיתוף | יכול להיות שכתבתי את התוכנה הכי קטנה בעולם?

שיתוף | יכול להיות שכתבתי את התוכנה הכי קטנה בעולם?

מתוזמן נעוץ נעול הועבר עזרה הדדית - מחשבים וטכנולוגיה
11 פוסטים 5 כותבים 230 צפיות 5 עוקבים
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
תגובה
  • תגובה כנושא
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • מתכנת חובבמ מתכנת חובב

    נחשפתי לאחרונה לעולם של התוכנות הזעירות - אמנות שבה דוחסים שדות בקובץ exe אחד על השני ומצמצמים את הקוד עצמו למינימום ו"עובדים" על ה loader של ווינדוס כמה שאפשר
    הגודל המינימלי של התוכנות האלו נכון להיום הוא 268 בתים בגלל דרישות יישור ולכאורה מבנה ה struct שה loader של ווינדוס מחפש לקרוא כשהוא פותח קובץ
    הקבצים שראיתי ברשת (האמת שלא חקרתי הרבה) - כל מה שהם עושים היה סך הכל לבצע return ל loader או סתם להגדיר ערך כלשהו ב EAX אבל לא באמת משהו מעניין
    אז ישבתי להכין תוכנת hello world שתשב באותו גודל מינימלי והצלחתי אפילו יותר - יש לי 2 בתים ריקים בסוף שהשארתי שם 00 בשביל הריפוד לגודל הנדרש ככה שסך כל הגודל של התוכנה הוא 266 בתים!
    הבניה של זה הייתה די מסובכת ולקחה לי כמה שעות של מלחמות עם ווינדוס ואסמבלי ובשלב מסויים גם עם הבינארי עצמו (וגיליתי שלא כזה מסובך לעשות patching ידני ל opcodes)
    ממה שבדקתי זאת תוכנת ה hello world הכי קטנה בעולם אבל אולי יש משהו שמנצל אפילו פחות או עושה דברים נוספים (ניסיתי לגרום לו גם לצפצף אבל זה דרש כבר שכתוב של כל ה opcodes וסדר הריצה ואין לי זמן \ כוח לזה עכשיו אבל זה נראה אפשרי) - אם מישהו ימצא משהו טוב יותר אשמח אם הוא יוכל ליידע אותי
    אם מעניינים פרטים טכניים על הקובץ והבניה שלו - תוכלו לבקש ואשמח לשתף
    בדקתי את הקובץ אצלי - גרסת build 26200.7840 אבל יכול להיות שבעדכוני ווינדוס הבאים זה יישבר
    מצורף הקובץ וה dump שלו למי שמתעניין
    smallest_hello_world.exe

    4D 5A 00 00 50 45 00 00 4C 01 00 00 68 65 6C 6C 6F 20 77 6F 72 6C 64 21 00 00 02 01 0B 01 FF FF FF FF FF 75 73 65 72 33 32 00 00 FF 8A 00 00 00 6D 69 74 6D 2E 74 6F 70 00 00 40 00 04 00 00 00 04 00 00 00 04 00 00 00 00 00 00 00 04 00 00 00 FF FF FF FF 5C 01 FF 00 6F 00 00 00 00 00 00 00 02 00 00 00 00 00 10 00 00 10 00 00 00 10 00 00 FF FF FF 00 FF FF FF FF 00 00 00 00 74 68 61 74 20 77 61 73 20 66 75 6E 21 00 64 A1 30 00 00 00 8B 40 0C 8B 40 14 8B 00 8B 00 8B 68 10 BF 8E 4E 0E EC E8 23 00 00 00 68 23 00 40 00 FF D0 95 BF A8 A2 4D BC E8 11 00 00 00 6A 00 68 7C 00 40 00 68 0C 00 40 00 6A 00 FF D0 C3 8B 55 3C 8B 54 15 78 01 EA 8B 4A 18 8B 5A 20 01 EB 49 8B 34 8B 01 EE 52 31 C0 99 AC 84 C0 74 07 C1 CA 0D 01 C2 EB F4 39 FA 5A 75 E5 8B 5A 24 01 EB 0F B7 0C 4B 8B 5A 1C 01 EB 03 2C 8B 89 E8 C3 00 00
    

    88d902aa-2db2-4f2b-9240-5af1784a1a8c-image.png

    ד מנותק
    ד מנותק
    דאבל
    כתב נערך לאחרונה על ידי
    #2

    @מתכנת-חובב כתב בשיתוף | יכול להיות שכתבתי את התוכנה הכי קטנה בעולם?:

    לאחרונה לעולם של התוכנות הזעירות - אמנות שבה דוחסים שדות בקובץ exe אחד על השני

    יפה, ככה היו כותבים פעם כשהיו תוכנות על דיסקטים?

    arcivaty@gmail.com

    מתכנת חובבמ תגובה 1 תגובה אחרונה
    0
    • מתכנת חובבמ מתכנת חובב

      נחשפתי לאחרונה לעולם של התוכנות הזעירות - אמנות שבה דוחסים שדות בקובץ exe אחד על השני ומצמצמים את הקוד עצמו למינימום ו"עובדים" על ה loader של ווינדוס כמה שאפשר
      הגודל המינימלי של התוכנות האלו נכון להיום הוא 268 בתים בגלל דרישות יישור ולכאורה מבנה ה struct שה loader של ווינדוס מחפש לקרוא כשהוא פותח קובץ
      הקבצים שראיתי ברשת (האמת שלא חקרתי הרבה) - כל מה שהם עושים היה סך הכל לבצע return ל loader או סתם להגדיר ערך כלשהו ב EAX אבל לא באמת משהו מעניין
      אז ישבתי להכין תוכנת hello world שתשב באותו גודל מינימלי והצלחתי אפילו יותר - יש לי 2 בתים ריקים בסוף שהשארתי שם 00 בשביל הריפוד לגודל הנדרש ככה שסך כל הגודל של התוכנה הוא 266 בתים!
      הבניה של זה הייתה די מסובכת ולקחה לי כמה שעות של מלחמות עם ווינדוס ואסמבלי ובשלב מסויים גם עם הבינארי עצמו (וגיליתי שלא כזה מסובך לעשות patching ידני ל opcodes)
      ממה שבדקתי זאת תוכנת ה hello world הכי קטנה בעולם אבל אולי יש משהו שמנצל אפילו פחות או עושה דברים נוספים (ניסיתי לגרום לו גם לצפצף אבל זה דרש כבר שכתוב של כל ה opcodes וסדר הריצה ואין לי זמן \ כוח לזה עכשיו אבל זה נראה אפשרי) - אם מישהו ימצא משהו טוב יותר אשמח אם הוא יוכל ליידע אותי
      אם מעניינים פרטים טכניים על הקובץ והבניה שלו - תוכלו לבקש ואשמח לשתף
      בדקתי את הקובץ אצלי - גרסת build 26200.7840 אבל יכול להיות שבעדכוני ווינדוס הבאים זה יישבר
      מצורף הקובץ וה dump שלו למי שמתעניין
      smallest_hello_world.exe

      4D 5A 00 00 50 45 00 00 4C 01 00 00 68 65 6C 6C 6F 20 77 6F 72 6C 64 21 00 00 02 01 0B 01 FF FF FF FF FF 75 73 65 72 33 32 00 00 FF 8A 00 00 00 6D 69 74 6D 2E 74 6F 70 00 00 40 00 04 00 00 00 04 00 00 00 04 00 00 00 00 00 00 00 04 00 00 00 FF FF FF FF 5C 01 FF 00 6F 00 00 00 00 00 00 00 02 00 00 00 00 00 10 00 00 10 00 00 00 10 00 00 FF FF FF 00 FF FF FF FF 00 00 00 00 74 68 61 74 20 77 61 73 20 66 75 6E 21 00 64 A1 30 00 00 00 8B 40 0C 8B 40 14 8B 00 8B 00 8B 68 10 BF 8E 4E 0E EC E8 23 00 00 00 68 23 00 40 00 FF D0 95 BF A8 A2 4D BC E8 11 00 00 00 6A 00 68 7C 00 40 00 68 0C 00 40 00 6A 00 FF D0 C3 8B 55 3C 8B 54 15 78 01 EA 8B 4A 18 8B 5A 20 01 EB 49 8B 34 8B 01 EE 52 31 C0 99 AC 84 C0 74 07 C1 CA 0D 01 C2 EB F4 39 FA 5A 75 E5 8B 5A 24 01 EB 0F B7 0C 4B 8B 5A 1C 01 EB 03 2C 8B 89 E8 C3 00 00
      

      88d902aa-2db2-4f2b-9240-5af1784a1a8c-image.png

      א מנותק
      א מנותק
      אלישע מואב 0
      כתב נערך לאחרונה על ידי
      #3

      @מתכנת-חובב 157d8dbd-6488-4eaa-9500-54a22771f854-image.png
      זה עובד???????

      מתכנת חובבמ 2 תגובות תגובה אחרונה
      0
      • מתכנת חובבמ מתכנת חובב

        נחשפתי לאחרונה לעולם של התוכנות הזעירות - אמנות שבה דוחסים שדות בקובץ exe אחד על השני ומצמצמים את הקוד עצמו למינימום ו"עובדים" על ה loader של ווינדוס כמה שאפשר
        הגודל המינימלי של התוכנות האלו נכון להיום הוא 268 בתים בגלל דרישות יישור ולכאורה מבנה ה struct שה loader של ווינדוס מחפש לקרוא כשהוא פותח קובץ
        הקבצים שראיתי ברשת (האמת שלא חקרתי הרבה) - כל מה שהם עושים היה סך הכל לבצע return ל loader או סתם להגדיר ערך כלשהו ב EAX אבל לא באמת משהו מעניין
        אז ישבתי להכין תוכנת hello world שתשב באותו גודל מינימלי והצלחתי אפילו יותר - יש לי 2 בתים ריקים בסוף שהשארתי שם 00 בשביל הריפוד לגודל הנדרש ככה שסך כל הגודל של התוכנה הוא 266 בתים!
        הבניה של זה הייתה די מסובכת ולקחה לי כמה שעות של מלחמות עם ווינדוס ואסמבלי ובשלב מסויים גם עם הבינארי עצמו (וגיליתי שלא כזה מסובך לעשות patching ידני ל opcodes)
        ממה שבדקתי זאת תוכנת ה hello world הכי קטנה בעולם אבל אולי יש משהו שמנצל אפילו פחות או עושה דברים נוספים (ניסיתי לגרום לו גם לצפצף אבל זה דרש כבר שכתוב של כל ה opcodes וסדר הריצה ואין לי זמן \ כוח לזה עכשיו אבל זה נראה אפשרי) - אם מישהו ימצא משהו טוב יותר אשמח אם הוא יוכל ליידע אותי
        אם מעניינים פרטים טכניים על הקובץ והבניה שלו - תוכלו לבקש ואשמח לשתף
        בדקתי את הקובץ אצלי - גרסת build 26200.7840 אבל יכול להיות שבעדכוני ווינדוס הבאים זה יישבר
        מצורף הקובץ וה dump שלו למי שמתעניין
        smallest_hello_world.exe

        4D 5A 00 00 50 45 00 00 4C 01 00 00 68 65 6C 6C 6F 20 77 6F 72 6C 64 21 00 00 02 01 0B 01 FF FF FF FF FF 75 73 65 72 33 32 00 00 FF 8A 00 00 00 6D 69 74 6D 2E 74 6F 70 00 00 40 00 04 00 00 00 04 00 00 00 04 00 00 00 00 00 00 00 04 00 00 00 FF FF FF FF 5C 01 FF 00 6F 00 00 00 00 00 00 00 02 00 00 00 00 00 10 00 00 10 00 00 00 10 00 00 FF FF FF 00 FF FF FF FF 00 00 00 00 74 68 61 74 20 77 61 73 20 66 75 6E 21 00 64 A1 30 00 00 00 8B 40 0C 8B 40 14 8B 00 8B 00 8B 68 10 BF 8E 4E 0E EC E8 23 00 00 00 68 23 00 40 00 FF D0 95 BF A8 A2 4D BC E8 11 00 00 00 6A 00 68 7C 00 40 00 68 0C 00 40 00 6A 00 FF D0 C3 8B 55 3C 8B 54 15 78 01 EA 8B 4A 18 8B 5A 20 01 EB 49 8B 34 8B 01 EE 52 31 C0 99 AC 84 C0 74 07 C1 CA 0D 01 C2 EB F4 39 FA 5A 75 E5 8B 5A 24 01 EB 0F B7 0C 4B 8B 5A 1C 01 EB 03 2C 8B 89 E8 C3 00 00
        

        88d902aa-2db2-4f2b-9240-5af1784a1a8c-image.png

        מ מנותק
        מ מנותק
        מויטיו
        כתב נערך לאחרונה על ידי
        #4

        @מתכנת-חובב אתה יכול בקלות להקטין אותה ב20 תווים


        אם במקום הלו וורד היא תכתוב h בלבד

        מתכנת חובבמ תגובה 1 תגובה אחרונה
        1
        • ד דאבל

          @מתכנת-חובב כתב בשיתוף | יכול להיות שכתבתי את התוכנה הכי קטנה בעולם?:

          לאחרונה לעולם של התוכנות הזעירות - אמנות שבה דוחסים שדות בקובץ exe אחד על השני

          יפה, ככה היו כותבים פעם כשהיו תוכנות על דיסקטים?

          מתכנת חובבמ מנותק
          מתכנת חובבמ מנותק
          מתכנת חובב
          מדריכים
          כתב נערך לאחרונה על ידי
          #5

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

          צריך עזרה בשחזור מידע? ייעוץ? egozkokus1@gmail.com

          תגובה 1 תגובה אחרונה
          0
          • א אלישע מואב 0

            @מתכנת-חובב 157d8dbd-6488-4eaa-9500-54a22771f854-image.png
            זה עובד???????

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

            @אלישע-מואב-0 כתבתי בפוסט שזה קורה לפעמים
            תנסה לפתוח עוד פעם ותראה אם זה הסתדר
            עוד לא בדקתי מה גורם לזה לקרוס ככה אבל אני משער שזה איזה שהוא race condition
            כשאבדוק אעדכן

            צריך עזרה בשחזור מידע? ייעוץ? egozkokus1@gmail.com

            תגובה 1 תגובה אחרונה
            1
            • מ מויטיו

              @מתכנת-חובב אתה יכול בקלות להקטין אותה ב20 תווים


              אם במקום הלו וורד היא תכתוב h בלבד

              מתכנת חובבמ מנותק
              מתכנת חובבמ מנותק
              מתכנת חובב
              מדריכים
              כתב נערך לאחרונה על ידי מתכנת חובב
              #7

              @מויטיו כתבתי שיש גודל מינימלי של 268 בתים אז אין עניין להקטין את הטקסט אם בין כה אני אצטרך להכניס אפסים ואדרבה - דחפתי אותו בשדה שבין כה תפוס ואי אפשר לצמצם אותו
              אם כבר הייתי מפנה את זה כדי להרוויח פונקציונליות אבל אז זה כבר לא היה hello world אלא סתם תוכנה שפותחת הודעה ומצפצפת (לדוגמה)

              ובאמת נראה לך שאני מסוגל לכתוב opcodes אבל לא לעלות על הטריק הגאוני הזה?

              צריך עזרה בשחזור מידע? ייעוץ? egozkokus1@gmail.com

              מ תגובה 1 תגובה אחרונה
              1
              • מתכנת חובבמ מתכנת חובב

                @מויטיו כתבתי שיש גודל מינימלי של 268 בתים אז אין עניין להקטין את הטקסט אם בין כה אני אצטרך להכניס אפסים ואדרבה - דחפתי אותו בשדה שבין כה תפוס ואי אפשר לצמצם אותו
                אם כבר הייתי מפנה את זה כדי להרוויח פונקציונליות אבל אז זה כבר לא היה hello world אלא סתם תוכנה שפותחת הודעה ומצפצפת (לדוגמה)

                ובאמת נראה לך שאני מסוגל לכתוב opcodes אבל לא לעלות על הטריק הגאוני הזה?

                מ מנותק
                מ מנותק
                מויטיו
                כתב נערך לאחרונה על ידי
                #8

                @מתכנת-חובב זה היה בשביל להבין
                והנה הסברת.....
                באמת שאפו

                מתכנת חובבמ תגובה 1 תגובה אחרונה
                1
                • מ מויטיו

                  @מתכנת-חובב זה היה בשביל להבין
                  והנה הסברת.....
                  באמת שאפו

                  מתכנת חובבמ מנותק
                  מתכנת חובבמ מנותק
                  מתכנת חובב
                  מדריכים
                  כתב נערך לאחרונה על ידי
                  #9

                  @מויטיו כתב בשיתוף | יכול להיות שכתבתי את התוכנה הכי קטנה בעולם?:

                  והנה הסברת.....

                  כתב בשיתוף | יכול להיות שכתבתי את התוכנה הכי קטנה בעולם?:

                  הגודל המינימלי של התוכנות האלו נכון להיום הוא 268 בתים בגלל דרישות יישור ולכאורה מבנה ה struct שה loader של ווינדוס מחפש לקרוא כשהוא פותח קובץ

                  צריך עזרה בשחזור מידע? ייעוץ? egozkokus1@gmail.com

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

                    פעם ראשונה שגיאה
                    פעם שניה עבד!

                    תגובה 1 תגובה אחרונה
                    0
                    • א אלישע מואב 0

                      @מתכנת-חובב 157d8dbd-6488-4eaa-9500-54a22771f854-image.png
                      זה עובד???????

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

                      @אלישע-מואב-0 @אביגדור-ברמן מתברר שדרסתי בטעות את ה data dirctory ומכיוון שזה קובץ קצת מוזר ווינדוס ניסה לתקן אותו בריצה הראשונה דרך קובץ dll שנקרא apphelp וספציפית בפונקציה SepRouterHookIAT שמשמשת כ hook לקריאה חיצונית של ה IAT ומכיוון שכתבתי עליו טקסט (הכותרת של החלון) שבקריאה שלו ככתובת יוצא כתובת של זיכרון רחוק שלא הוקצה קופצת שגיאת access violation בפעם הראשונה
                      בדרך כלל אחרי הקריסה הראשונה ווינדוס מסמן את הקובץ כקובץ שאין עניין לתקן והקובץ רץ
                      אפשר לנסות להגדיר Size Of Image לערך עצום שאולי יכלול בתוכו את אותה כתובת אבל אז זה עלול ליפול שם
                      בקיצור מה שעשיתי זה לאפס את השדה של הגודל של אותה כניסת IAT וכך ווינדוס לא מנסה לטעון אותה אבל זה עלה לי במחיר צמצום הכותרת
                      החלפתי את הקובץ לעיל בקובץ מתוקן

                      צריך עזרה בשחזור מידע? ייעוץ? egozkokus1@gmail.com

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

                      • התחברות

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

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