ברוכים הבאים לאתר תחרויות קודגורו! › פורומים › אקסטרים › נצחון ודאי עם 2 הוראות ואחד עם 6 הוראות
- This topic has 7 תגובות, 8 משתתפים, and was last updated לפני 20 שנים, 4 חודשים by
ירון.
-
מאתתגובות
-
20 בנובמבר 2004 בשעה 13:32 #77605
old_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 שלך תמיד יצביע על הוראות חוקיות — אתה עדיין בפנים. -
מאתתגובות
- יש להתחבר למערכת על מנת להגיב.