ברוכים הבאים לאתר תחרויות קודגורו! › פורומים › אקסטרים › הרבה שאלות על CALL FAR
תגיות: call far
- This topic has 3 תגובות, 2 משתתפים, and was last updated לפני 10 שנים, 4 חודשים by Dave.
-
מאתתגובות
-
18 ביוני 2014 בשעה 18:11 #81856ddtמשתתף
חיפשתי בכל הפורום בהודעות ממש ישנות ולא מצאתי מידע מסודר ומובן על CALL FAR
יש לי הרבה שאלות אז אם יש למישהו סבלנות לענות לי באופן מלא ולאחרים שבטח יסתכלו על זה בעתיד אני אשמח להבין מה זה בדיוק.
השאלות שלי
מה זה עוזר לנו שאנחנו מריצים קוד שלא נמצא ב CODE SEGMENT? אם זה הרצה של קוד ב CODE SEGMENT אז זה CALL NEAR?
הבנתי שכאשר אנחנו עושים כזה דבר אז השורד שלנו מבוסס CALL FAR . זאת ההגדרה הנכונה?
האם יש איזה פקודה שרושמים כדי לעשות התקפה של CALL FAR או שצריך לרשום כמה פקודות?
הבנתי שהפקודה הזאת היא בעצם מורכבת משלושה חלקים. האם הם קורים באופן אוטומטי כשמבצעים פקודה שמפעילה CALL FAR כמו שקורה בהפצצה החכמה או הכבדה?
איך מעדכנים את הזירה להיות המחסנית האישית?
אם השורד שלי משתמש ב CALL FAR האם השורדים האחרים יכולים לדעת שהוא עושה את זה? הבנתי שיש בעיה עם כתובות שלו שנשארות בזירה לא הבנתי למה ואיך זה קורה ומה עושים כדי לפתור את זה
האם כל שורד שזכה בתחרות השתמש ב CALL FAR? יש סיבות לא להשתמש ב CALL FAR?
מה קצב ההתקפה של CALL FAR?
יש דוגמה לשורד הכי פשוט שיש שמשתמש בהתקפה של CALL FAR? אני חושב שזה יעזור מאוד
האם CALL FAR זה משהו שקורה רקורסיבית או שאני צריך לקרוא לו בלולאה כדי לשכפל את הפעולות שהוא עושה?
איזה פרמטרים ה CALL FAR מקבל ומה ה OUTPUT שלו?
האם CALL FAR יכול לשנות את מיקום השורד? זה עוזר לי באיזושהי צורה? אני יכול להמנע מהשינוי או שזה קורה באופן אוטומטי?
מה הקשר בין MOVSW ל CALL FAR? מתי אני צריך להשתמש ב MOVSW?
איך משתמשים עם CALL FAR כדי להתקיף בכל פעם במקום אחר?
הכי חשוב, למה צריך בכלל להשתמש ב CALL FAR? מה הוא עוזר לנו?18 ביוני 2014 בשעה 18:33 #81857ddtמשתתףואיך עושים ש CALL FAR יהיה רציף או לא רציף?
18 ביוני 2014 בשעה 18:41 #81858ddtמשתתףהאם זה גם משנה לאיזה כיוון מבצעים את ההתקפה של CALL FAR?
6 ביולי 2014 בשעה 13:26 #82886Daveמשתתףהיי, יש לך הרבה שאלות אז אני אנסה לעזור לך ולתת לך כיוון ראשוני.
ראשית, מה זה call far בכלל?
http://ece425web.groups.et.byu.net/stable/labs/8086InstructionSet.html#call
כשאתה קורא לפקודת call אתה בעצם דוחף את IP למחסנית וקופץ לכתובת שציינת. ההבדל בין call far לcall near הוא האם הכתובת נמצאת בסגמנט הנוכחי. אם כן, הרי שהכתובת שלך תהיה של 2 בתים, ואם היא תהיה בסגמנט אחר, הרי שהכתובת תהיה של 4 בתים.
ההבדל הזה יוצר את החוזק של המתקפה הזו. כאשר אתה עושה שורד מבוסס call far (זאת הטרמינולוגיה שאני משתמש בה) אתה תעביר את סגמנט המחסנית אל הזירה (דוגמה בהמשך), וכך בכל פעם שתשתמש בcall far אתה תזרוק לזירה (שהיא המחסנית שלך) את IP שהוא בגודל של 4 בתים. כלומר בכל תור אתה יכול לכתוב 4 בתים על המסך. אם כן, קצב התקיפה שלך הוא 4 בתים בתור!עכשיו איך אנחנו ממש משתמשים בהתקפת call far? הנה שורד דוגמה שאני וחברי לצוות כתבנו.
push ds push es pop ds pop es push cs pop ss mov sp,ax mov bx, 243h;Random number mov cx,ax add cx,call_far mov word [bx+2], cs mov word [bx], cx call_far:call dword [bx]
אני ממליץ לך להריץ אותו בדיבאגר של קיריל, לראות מה הוא עושה, ולשפר אותו.
תנסה לשים לב מה השינויים בסגמנטים בהתחלה (רמז, סגמנט הזירה הוא תמיד 1000). תנסה להבין מה השימוש בBX (רמז: יש הבדל בין לכתוב 'BX' לבין '[BX]'). תנסה להבין מה נזרק למסך ולמה. ותנסה להבין למה השורד הזה בדרך כלל הורג את עצמו.
אחרי שתבין את זה, אתה תוכל לענות על השאלות האחרות בעצמך.אם יש לך עוד שאלות, אשמח לעזור.
-
מאתתגובות
- יש להתחבר למערכת על מנת להגיב.