התגובות שלי בפורום
-
מאתתגובות
-
noyaloמשתתף
כשאני מנסה לפתוח את קובץ הזיפ של המנוע החדש, הוא נותן לי הודעה:
cannot open file: it does not appear to be a valid archive/
if you downloaded this file, try downloading the file again.אוז פותח לי קובץ זיפ ריק…
מישו יודע למה זה קורה? ואיך אני מתקן את זה?
תודה רבה!!
noyaloמשתתףתודה רבה!
ואפשר להעלות אותו בקובץ זיפ לגוגל דרייב ולשתף את הלינק פה, או להעלות לאתר של הורדות וכו'…יהיה עוד יותר מעולה אם גם הדיבגר של קיריל יקבל את הדברים בהתאם לדברים החדשים שהוספו למנוע הרגיל…
noyaloמשתתףזה מעולה תודה רבה!!
noyaloמשתתףצריכים גם לפתח דיסאסמבלי, שכשעושים דיסאסמבלי לשורד מסויים, שישאיר רק את הפקודות, ולא את כל המספרים והספרות, והאופקודים משמאל לפקודות עצמם..
זה נטו עבודה שחורה כדי שנוכל להשתמש במה שעשינו דיסאסמבלי עליו, ולמחוק את כל הדברים, ולהשאיר רק את הפקודות..
(אלא אם כן כבר יש אחד כזה, ואני לא יודע עליו..)
noyaloמשתתףאה רק עכשיו ראיתי את הכפתור הזה…
תודה!noyaloמשתתףהבעיה בתכנית שכתבת, היא שזה מסתמך על זה שה
CS = 1000
CS למרות שאפשר עקרונית לשנות את ה
למספר הגדול מ1000,ועדיין ירוץ בסדר לפי איך שהמיקום האבסולוטי עובד….
:
המקום שממנו המשחק מריץ את האופקוד הבאה של השורד מחושב כך:
IP + (CS * 0x10) = Absolute place in memory
כך שאם לדוגמא:
IP = 0x1234
CS = 0x1000
0x11234 אז המיקום האבסולוטי הוא
0x10000-0x1ffff מכאן כמובן נובע כי הזירה היא בתחום
וכל מי שיוצא מתחום זה נהרג על ידי המשחק.
השוויון הבא חשוב:
IP = 0x1234
CS = 0x1000
IP + (CS * 0x10) = 0x11234
ואם נגיד נעשה ש:
IP = 0x1224
CS = 0x1001
IP + (CS * 0x10) = 0x11234
שזה אותו מיקום אבסולוטי.
מה שאומר שניתן לייצג כתובת אבסולוטית על הזירה בהמון דרכים כמו בדוגמא למעלה.אז מה שאני רוצה להגיד – הקוד שפורסם פה שהוא נגד
call far
יעבוד רק אם
CS=1000.ומה שצריך לעשות זה במקום להשוות כל מיקום בזיכרון, בטווח CS ההגיוני שאולי אפשר שה
יהיה שווה אליו…אולי לבדוק אם הוא בזיכרון בין 950 ל1050 או משו כזה…
למרות שזה לא מחייב שיצליח, כי אפשר יהיה לעבוד על זה בכך שיכניסו מספר אחר, אבל זה לא ישפיע לרעה על הקוד, ורק יוכל להצליח נגד מי שיחשוב מלכתחילה להחליף את ה
CS
למספר אחר….noyaloמשתתףכן… עכשיו השאלה היא, *איך* בדיוק עושים את מה שאנחנו רוצים בכדי שיהיה יותר מהר ויעיל ויתר…
למרות שדי התרגלתי לעניין שעבודה שחורה נטו, היא פרמטר חשוב בתחרות….
noyaloמשתתףתודה רבה!
אקח הרבה ממה שאמרת עכשיו, תודה!רק שאלה:
אתה יכול להסביר קצת לגבי איך באמת סקריפטים יכולים לעזור?
אני לא כל כך מבין איך ואיפה ולמה זה יכול לעזור על כך….
אשמח אם תוכל להסביר קצת יותר..תודה
noyaloמשתתףבמידה כזו או אחרת, זה אומר כתיבת את אותו השורד, לפחות רעיונית, כמו שנים שעברו, אבל בגלל שמבינים את מה שהשורדים עשו – פשוט כותבים אחד חדש…
עם שינויים של הזומבים של אותה תחרות ספציפית..
כן?
noyaloמשתתףבכיף הייתי עושה את זה, אם רק הייתי יודע איך..
הרגיל עזר CPUאבל זה בהחלט משו שיוכל לעזור המון, כמו שהnoyaloמשתתףאתה יכול לתת דוגמא שאבין?
מתי אפשר לעשות את השינויים, ומתי לא? ממה להיזהר כשאני עושה את זה?ואיך אדע אם מה שאני עושה עובד, ואל יכול לגרום לבעיות?
האם השורדים האחרים יכולים להשפיע על השגיאה הזאת, או רק הקוד שאני עצמי מריץ?
noyaloמשתתףאז יש לי עוד שאלה בעניין:
.סגמנט CSמחפש את השורה הבאה ב IPה
ESגם ל CSאז אם אשנה את ה
?יורץ שם IPאז הכי אם כן – אי אפשר להפסיד אם עושים את זה – כי האייפי יהיה מוגן לגמרי…
?אז אני מנחש שזה לא נכון ולא מורשה ע"י המנוע
noyaloמשתתףסבבה תודה.
noyaloמשתתףסבבה. וכנ"ל גם להוציא משם קוד..
עכשיו אני חושב על זה, זה אולי יותר נוח וברור להבין מה אני עושה גכשאני יעשה את זה, אבל תכל'ס, הפעולה
MOVSW
DI SI הוא הרבה יותר יעיל, כי גם מעלה את
ב2, שזה המיקום המדוייק שאני רוצה..אבל אולי בהשתלטות על זומבים זה יוכל לעזור..
תודה רבה!
-
מאתתגובות