ברוכים הבאים לאתר תחרויות קודגורו! › פורומים › אקסטרים › שאלות על הפצצה כבדה.
- This topic has 3 תגובות, 3 משתתפים, and was last updated לפני 10 שנים, 5 חודשים by Idan Dor.
-
מאתתגובות
-
1 ביוני 2014 בשעה 10:50 #80348ddtמשתתף
שלום,
יש לי כמה שאלות על הפצצה כבדה.. תודה לעונים..
1) מה קשורה הכתובת ב ES להפצצה הכבדה?
בדקתי בדיבאגר ולמשל הכתובת שיש לי ב ES לפני ההפצצה היא 1000
לכן אם יש לי ב DI את הערך 0000
אז זה מתחיל להפציץ מ 1000:0000
איזו כתובת זה בזירה?
לא ברור לי מה הכוונה שמתייחיסם לכתובת בתור ES:DI כי כל אחד מהם הערך שלו זה כתובת אז מה זה אומר כתובת שלהם ביחד?
אני יכול לראות שזה מתחיל להפציץ מתחילת הזירה (0000) – לכן איזה התייחסות או השפעה יש לערך שנמצא באוגר ES?
נקודה נוספת – לאיזה ערך ערכו של ES ישתנה לאחר ההפצצה הכבדה?
את DI ראיתי שהוא מעדכן ל 00FF שזה 256 כלומר כתב 255 בתים בזירה אבל שוב אין בכלל קשר ל ES.
אני מדבר על ES מבחינת ההשפעה שלו על הכתובות בהפצצה.2) לגבי ES ונקודה שקשורה לנקודה הקודמת אבל בהיבט אחר.
הבנתי שצריך לעדכן את האוגר es לאותו ערך הנמצא באוגר cs כי אחרת יש exception אחרי שמפציצים.
למה יהיה excpetion כזה?
כתובת בזירה זאת כתובת – האם זה באג או תכנון לא נכון של המנוע?
למה יכול לקרות אם אין סנכרון בין אוגר ES לאוגר CS?3) אם זה לא מוזכר לאיזה כיוון כותבים? ימינה? עולים בכתובות? איזה כיוון הוא ברירית המחדל?
4) מה אני יכול להפציץ בהפצצה כבדה? האם סתם קוד לא טוב כדי שימותו או שאפשר לשים לאורך כל הטווח הכתובת משהו יותר מתוחכם שנדחוף ל AX ו DX?
5) באופן תיאורטי – כמה הפצצות כבדות נדרשות כדי לכסות את כל הזירה?
4 ביוני 2014 בשעה 03:06 #80829cgxמנחה1) פצצה חכמה פועלת על אוגר המקטע
ES
והוא צריך להצביע לזירה: 1000, כמו
CS
אחרת אתה כותב למקום אחר (למשל למקטע המוגן המשותף לקבוצת השורדים) וזה יעיף אותך. האוגר לא משתנה עקב הפצצה
3) אתה יכול לשנות את הכיוון על ידי
STD
CLD
5) זו שאלה נחמדה. לכאורה 256, כי הזירה היא בגודל 65536 וכל פצצה חכמה פוגעת ב-256 מתוכם. בפועל אתה יכול לחסוך כי יש את הכתובת שלך, יש את הרווחים שמובטח שאף אחד לא יטען לתוכם, ואתה יכול גם להשאיר קצת רווחים קטנים בין הפצצות.
השאלה, כמו שאמרת, היא תיאורטית כי אין לך כל כך הרבה פצצות.
5 ביוני 2014 בשעה 11:27 #81128ddtמשתתףלגבי 1 – אז DI זה ה OFFSET של הכתובת שמצוינת ב ES שאותה מפציצים? לא מסתדר לי.
אם אני רוצה להפציץ מתחילת הזירה אני צריך שיהיה ב ES את הערך 0000?
אז למה צריך גם את DI אם הכתובת מצוינת ב ES ויש מספר ידוע של תאים שמהכתובת הזו מפציצים?
אני אשמח אם מישהו יכול להשלים ולענות על 3 ו 4.
ואם
לגבי 5 – זה יכול להיות אם כל האחרים גם לא מעתיקים את עצמם בזמן הזה.6 ביוני 2014 בשעה 14:24 #81169Idan Dorמשתתף<p style="text-align: right;">כפי שרשמתי בעבר על מיקום אבסולוטי, מחשבים אותו כך:</p>
<p style="text-align: right;">segment * 0x10 + address</p>
<p style="text-align: right;">והזירה היא במיקום:</p>
<p style="text-align: right;">0x10000 – 0x1ffff</p>
<p style="text-align: right;">ולכן אם es = 1000</p>
<p style="text-align: right;">ו di = 0</p>
<p style="text-align: right;">אתה תפגע בשורה הראשונה בזירה במיקום:</p>
<p style="text-align: right;">0x10000 – 0x100ff</p> -
מאתתגובות
- יש להתחבר למערכת על מנת להגיב.