ברוכים הבאים לאתר תחרויות קודגורו! › פורומים › אקסטרים › נצחון ודאי עם 2 הוראות ואחד עם 6 הוראות
- This topic has 7 תגובות, 8 משתתפים, and was last updated לפני 20 שנים by ירון.
-
מאתתגובות
-
20 בנובמבר 2004 בשעה 13:32 #77605old_smokerמשתתף
8086 איננו מכיל הוראות מוגנות –
CLI – נקה דגל הפרעות
JMP $-2 – קפוץ לעצמך. ($ = CURRENT OFFSET ).
התוכנית הנ"ל דואגת שאף אחד לא יקבל זמן מעבד כבר על ההוראה הראשונה – ולעולם לא תגיע להוראה לא חוקית – אחרי 200,000 הרצות – יש לנו מנצח!!!!!דרך 2:
לדחוף למחסנית את ההוראות EA (אופקוד של JMP ),
את SS ואת SP – RELATIVE VALUE, ולבצע קפיצה. ע"פ החוקים איזור המחסנית הוא מוגן ממתקפה. כל עוד התוכנית לא מותקפת ב 6 הריצות הראשונות (שזה הסיכוי הנמוך ביותר האפשרי וזה מספר ההוראות הדרוש ע"מ לארגן את המחסנית עם ההוראות הדרושות)- היא לנצח תישאר קיימת.דרך 1 – על 8086 תוביל לניצחון וודאי ע"פ החוקים.
דרך 2 – זהו הניצחון עם ההסתברות הכי גבוהה שתוביל לניצחון וודאי ע"פ החוקים.
מסקנה: שכחו מלהתקיף – תברחו!20 בנובמבר 2004 בשעה 15:59 #79899יותםמשתתףכותרת: אתה יוכל להסביר את זה לאלו שלא מכירים asm כ"כ?
מה זה CLI?, ואיך קפיצה עצמית מבטיחה הישארות במשחק ?
הרי אתה קופץ חזרה, אבל התוכנה שאחראית על המשחק ממשיכה לקודים של שאר האנשים, פשוט בתור הבא היא תחזור אצלך על אותה פקודה …את הדרך השנייה בכלל לא הבנתי, איך תוכן המחסנית גורם לקוד שלך להישאר בחיים ?
21 בנובמבר 2004 בשעה 01:32 #79900old_DLמשתתףכותרת: רעיונות נחמדים, אבל …
האופקוד CLI הוא אופקוד "לא נתמך", בדיוק מהסיבה שתיארת.
כיוון שהמשחק רץ על אמולציה, ולא על המעבד עצמו – אין למתחרה שום אפשרות "למנוע" זמן ריצה מהמתחרים האחרים. נסה ותווכח.לגבי הרעיון השני – במקרה הזה מדובר על "נקודה חלשה" ידועה במימוש הנוכחי. בגירסה הבאה של המנוע, איזור המחסנית האישי של כל מתחרה יוגדר כמותר ל-קריאה/כתיבה בלבד, ולא להרצה. או כמאמר הפתגם המפורסם: you can run, but you can´t hide.
21 בנובמבר 2004 בשעה 05:12 #79901זיו ברברמשתתףכותרת: ביטול שינוי של ה-CS הוא לא הוגן
לפי החוקים אף אחד לא אוסר עלי להוסיף למשל 1 ל-CS.21 בנובמבר 2004 בשעה 07:41 #79902שחרמשתתףכותרת: יש דרך יותר טובה לחסום את זה
למה שלא פשוט תמנעו שינוי של CS? זה ימנע ריצה מחוץ לזירה.שחר
21 בנובמבר 2004 בשעה 11:41 #79905חייםמשתתףכותרת: מותר ואסור
לא ברור למה CLI אסור.
הרי הקוד שלך לא רץ על ה-CPU של המחשב ישירות אלא על ידי unterpreter של מארגני התחרות.מצד שני, לא ברור, במקרה זה, מה שונה CLI מ- NOP.
ניסיתי כבר את הרעיון של לרוץ מהמחסנית.
עם דיבגר זה רץ, אבל עם האינטרפטר זה עף.
כנראה שכבר חשבו על זה
או אולי יש לי באג …21 בנובמבר 2004 בשעה 13:54 #79906יונימשתתףכותרת: אני עדיין לא מבין את החוקים …
מה התנאי להישארות בחיים ?
האם התוכנית המקורית שלך צריכה לשרוד, או שמא כל פיסת קוד שהשארת על המסך משאירה אותך בחיים ? …
אם האופציה הראשונה היא הנכונה , אני לא ממש מבין איך אפשר להגן על התוכנית שלך מתקיפה בסגנון הbomber …21 בנובמבר 2004 בשעה 15:43 #79907ירוןמשתתףכותרת: פשוט ביותר
התנאי היחיד הוא שבתורך, אוגר ה-IP שלך לא יצביע על הוראה שאינה חוקית. גם אם לא ישאר זכר לקוד המקורי שלך, אבל יהיה לך המון מזל וה-IP שלך תמיד יצביע על הוראות חוקיות — אתה עדיין בפנים. -
מאתתגובות
- יש להתחבר למערכת על מנת להגיב.