ברוכים הבאים לאתר תחרויות קודגורו! › פורומים › אקסטרים › שינוי הסגמנטים
- This topic has 7 תגובות, 4 משתתפים, and was last updated לפני 11 שנים, 9 חודשים by
Yoav.
-
מאתתגובות
-
8 במרץ 2014 בשעה 13:39 #76736
noyalo
משתתףרעיון שעלה לי, לא בטוח אם זה חוקי/לא עובד במנוע המשחק, אז לכן אשאל אותו פה:
ES אני רוצה לכתוב לסגמנט
MOVSW LODSW בקלות יותר, בלי להסתבך עם הפעולות
וכו'…
אז חשבתי על הרעיון הזה:אם אכתוב את השורה
mov [1234h], ax
[1234H] זה תא זיכרון
DS – ולכן זה יהיה בסגמנט של התאי זיכרון
mov DS:[1234h], ax
מצביע עליו ES יצביע לאיפה שה DS אבל אם אגיד שהסגמנט
ע"י הקוד הבא:
push ds
push es
pop ds
(כביכול – mov ds, es )mov [1234h], ax – אז בעצם כשאני כותב
mov ES:[1234h], ax – אני בעצם עושה ככההאם התאוריה שלי נכונה? או שזה לא באמת עובד ככה?
8 במרץ 2014 בשעה 13:56 #77853Yoav
משתתףבדיוק
8 במרץ 2014 בשעה 14:08 #77850noyalo
משתתףסבבה. וכנ"ל גם להוציא משם קוד..
עכשיו אני חושב על זה, זה אולי יותר נוח וברור להבין מה אני עושה גכשאני יעשה את זה, אבל תכל'ס, הפעולה
MOVSW
DI SI הוא הרבה יותר יעיל, כי גם מעלה את
ב2, שזה המיקום המדוייק שאני רוצה..אבל אולי בהשתלטות על זומבים זה יוכל לעזור..
תודה רבה!
8 במרץ 2014 בשעה 14:13 #77848noyalo
משתתףאז יש לי עוד שאלה בעניין:
.סגמנט CSמחפש את השורה הבאה ב IPה
ESגם ל CSאז אם אשנה את ה
?יורץ שם IPאז הכי אם כן – אי אפשר להפסיד אם עושים את זה – כי האייפי יהיה מוגן לגמרי…

?אז אני מנחש שזה לא נכון ולא מורשה ע"י המנוע
8 במרץ 2014 בשעה 14:31 #77847Yoav
משתתףניחוש טוב – אם תנסה להריץ פקודה מחוץ לגבולות הזירה
0x10000 – 0x1ffff
השורד יחטוף שגיאה וימות9 במרץ 2014 בשעה 14:09 #77845Idan Dor
משתתףאני רק רוצה להוסיף שברגע שאתה באמת מתחיל לשנות סגמנטים במספר גדול, לא משנה סגמנט של מה, כדי לך להיות מאוד בטוח שאתה לא תקבל
memory exception
כי ממש ממש קל לקבל את זה אם אתה יוצא מתחום הזירה או ניגש בטעות למקום בזיכרון שאין לך גישה אליו.9 במרץ 2014 בשעה 15:51 #77843noyalo
משתתףאתה יכול לתת דוגמא שאבין?
מתי אפשר לעשות את השינויים, ומתי לא? ממה להיזהר כשאני עושה את זה?ואיך אדע אם מה שאני עושה עובד, ואל יכול לגרום לבעיות?
האם השורדים האחרים יכולים להשפיע על השגיאה הזאת, או רק הקוד שאני עצמי מריץ?
9 במרץ 2014 בשעה 17:45 #77840Son
משתתףהעצה הכי טובה שלמדתי בחיים:
כל אחד מהדברים האלה היית יכול פשוט לנסות ולראות מה קורה. אם כל פעם שיהיה לך רעיון כזה תנסה אותו ואז תספר לפורום אם הוא עבד או לא, תלמד מזה כל כך הרבה כל כך מהר שדי מהר תהיה בליגה אחרת לגמרי.
-
מאתתגובות
- יש להתחבר למערכת על מנת להגיב.