הרבה שאלות על CALL FAR

עמוד

תגיות: 

מוצגות 4 תגובות – 1 עד 4 (מתוך 4 סה״כ)
  • מאת
    תגובות
  • #81856
    ddt
    משתתף

    חיפשתי בכל הפורום בהודעות ממש ישנות ולא מצאתי מידע מסודר ומובן על 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? מה הוא עוזר לנו?

    #81857
    ddt
    משתתף

    ואיך עושים ש CALL FAR יהיה רציף או לא רציף?

    #81858
    ddt
    משתתף

    האם זה גם משנה לאיזה כיוון מבצעים את ההתקפה של CALL FAR?

    #82886
    Dave
    משתתף

    היי, יש לך הרבה שאלות אז אני אנסה לעזור לך ולתת לך כיוון ראשוני.
    ראשית, מה זה 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]'). תנסה להבין מה נזרק למסך ולמה. ותנסה להבין למה השורד הזה בדרך כלל הורג את עצמו.
    אחרי שתבין את זה, אתה תוכל לענות על השאלות האחרות בעצמך.

    אם יש לך עוד שאלות, אשמח לעזור.

מוצגות 4 תגובות – 1 עד 4 (מתוך 4 סה״כ)
  • יש להתחבר למערכת על מנת להגיב.