ברוכים הבאים לאתר תחרויות קודגורו! › פורומים › אקסטרים › שאלות על הפצצה חכמה.
- This topic has 3 תגובות, 3 משתתפים, and was last updated לפני 10 שנים, 5 חודשים by Idan Dor.
-
מאתתגובות
-
1 ביוני 2014 בשעה 10:52 #80350ddtמשתתף
רוצה לוודא גם כמה נקודות בהקשר של הפצצה חכמה.
1) מה המשפט הבא אומר: "הפצצה זו תחפש רצף של ארבע בתים (אשר יכולים להיות ארבע בתים של השורד המותקף) על גבי הסגמנט (64 קילו בית) הראשון"?
החלק של ה"סגמנט (64 קילו בית) הראשון" הוא ממש לא ברור.2) מאיפה מתחילים לחפש את ה 4 בתים? מתחילת הזירה? מכתובת כלשהי? האם אפשר להשפיע איפה להתחיל את החיפוש?
3) האם הפצצה חכמה עובדת על תוכן התא (מחפשת מופע ראשון בתוך התוכן שנמצא בתא) או לפי כתובת (מפציצה כתובת ספציפית)?
לפי מה שהבנתי זה מחפש מופע ראשון בתוכן התא כלומר פקודות של שורדים שנמצאות בתוכן התאים בזיכרון של הזירה.4 ביוני 2014 בשעה 02:51 #80824CodeGuruמנהל בפורוםהדרך לענות על שאלות כאלה היא לקרוא את קוד המקור של המנוע.
אם לא הבנת מהתיעוד – הוא כנראה לא מוצלח. אתה מוזמן להבין מקוד המקור (הוא תמיד חד ערכי) ולהציע ניסוח יותר מוצלח.
פצצה חכמה מחפשת מכתובת אפס ופרט לכיוון (קדימה או אחורה) אי אפשר להשפיע עליה
5 ביוני 2014 בשעה 11:26 #81127ddtמשתתףלגבי הפצצה חכמה –
הסתכלתי במנוע ועל פניו אתה צודק לגבי מאיפה מתחיל החיפוס (כתובת אפס): for (int i = 0; i <= 0xFFFF; ++i) {
אבל הדוגמה הבאה אומרת ששמים ב DI אפס כדי להגיד שמתחילים לחפש מאפס אז ייתכן וצריך לבדוק את הנקודה האם זה מתחיל תמיד באפס.push cs
pop es
xor di,di
mov ax, 39d8h
mov dx, 7405h
mov cx, 0cccch
mov bx,cx
int 87hאז לא ברור לי למה שמו ב DI אפס ומה התפקיד שלו בהפצצה החכמה.
8 ביוני 2014 בשעה 19:56 #81475Idan Dorמשתתף<p style="text-align: right;">מאיפה קטע הקוד הזה?</p>
<p style="text-align: right;">בכל מקרה לאחר בדיקה מהירה עם שתי השורדים הבאים ודיבאגר ניתן לראות כי</p>
<p style="text-align: right;">DI</p>
<p style="text-align: right;">אינו משפיע על ה 87 אתה מוזמן לבדוק בעצמך.</p>
<p style="text-align: right;">שורד א:</p>
<p style="text-align: right;">mov word [0x10], 0x5050</p>
<p style="text-align: right;">@Here:</p>
<p style="text-align: right;">jmp @Here</p>
<p style="text-align: right;">שורד ב:</p>
<p style="text-align: right;">push cs</p>
<p style="text-align: right;">pop es</p>
<p style="text-align: right;">mov di, 0x100</p>
<p style="text-align: right;">mov ax, 0x5050</p>
<p style="text-align: right;">mov dx, 0xcccc</p>
<p style="text-align: right;">mov cx, dx</p>
<p style="text-align: right;">mov bx,cx</p>
<p style="text-align: right;">int 87h</p>
<p style="text-align: right;">@Here:</p>
<p style="text-align: right;">Jmp @Here</p>
<p style="text-align: right;">(הסיבה שזה בשתי שורדים שונים זה בשביל שיהיה ניתן לראות הבדל צבע)</p>
<p style="text-align: right;">מה שנובע מזה כמובן זה שמי שכתב את קטע הקוד הזה התבלבל קצת, או שהוא סתם לא מיהר להשתמש ב 87 והחליט לאפס את האוגר.</p>
<p style="text-align: right;">דבר נוסף שנובע מהניסוי – תוכנות עושות בדיוק מה שכתוב להם בקוד לעשות ולא דברים מוזרים…</p> -
מאתתגובות
- יש להתחבר למערכת על מנת להגיב.