הפתרון שלי לחידה של יחידת מצו"ב, שפורסמה בראש השנה.
בהתחלה זיהיתי שמדובר בהופמן, ואז בדקתי מה הקשר בין המשפט rosh not tail
לטקסט lo olhottnisatnr ioohtrsltoi nh arsat
.
הסתכלתי והשוותי את העצים של שני המשפטים וזיהיתי שהאותיות זהות והערכים של האותיות זהים, ושההבדל הוא המספר של האותיות (פי 3).
לאחר מכן לקחתי את הטקסט lo olhottnisatnr ioohtrsltoi nh arsat
והפכתי אותו להופמן לפי הערכים המתאימים ואז סידרתי כדי לקבל את זה בסידור של המספר מתחת לתמונה (0101010111110010001101010010000111011111101).
אותו דבר עשיתי במשפט השני וכך קיבלתי את ההודעה הסודית.
פתרתי את השלב הראשון כמה שעות לאחר שפורסם באתר צה"ל.
לאחר פתרון החלק הראשון, קיבלתי במייל את החלק השני והאחרון של החידה
לגרום לקוד לקרוא לפונקציה מסויימת, מאזור אחר בקוד.
כפי שניתן לראות במייל, הייתה לי בסך הכל יממה לפתור את החידה. במהלך היום הזה למדתי המון על מנגנון SEH
וגם C++ Exceptions
לבסוף פתרתי את התרגיל בעזרת Stack Overflow Attack
שמכונה בעברית גלישת חוצץ
גלישת חוצץ היא שגיאת תכנות המתבטאת בכך שתוכנית מחשב כותבת לאזור בזיכרון המחשב יותר מידע מאשר אותו אזור מסוגל להכיל. כתוצאה מכך "גולש" חלק מהמידע אל מחוץ לגבולות החוצץ, ומשנה נתונים שלא היו אמורים להשתנות.
וזוהי תגובת מצו"ב...
באופן אישי למדתי המון מהחידה ונהניתי מההצלחה, אז תודה למצו"ב :)