Skip to content

Latest commit

 

History

History
58 lines (31 loc) · 3.63 KB

README.md

File metadata and controls

58 lines (31 loc) · 3.63 KB

Matzov RoshNotTail | חידת מצו"ב

הפתרון שלי לחידה של יחידת מצו"ב, שפורסמה בראש השנה.

First Part | חלק ראשון

IDF site

תהליך הפתרון

בהתחלה זיהיתי שמדובר בהופמן, ואז בדקתי מה הקשר בין המשפט rosh not tail לטקסט lo olhottnisatnr ioohtrsltoi nh arsat.

הסתכלתי והשוותי את העצים של שני המשפטים וזיהיתי שהאותיות זהות והערכים של האותיות זהים, ושההבדל הוא המספר של האותיות (פי 3).

לאחר מכן לקחתי את הטקסט lo olhottnisatnr ioohtrsltoi nh arsat

והפכתי אותו להופמן לפי הערכים המתאימים ואז סידרתי כדי לקבל את זה בסידור של המספר מתחת לתמונה (0101010111110010001101010010000111011111101).

אותו דבר עשיתי במשפט השני וכך קיבלתי את ההודעה הסודית.

My solve

פתרתי את השלב הראשון כמה שעות לאחר שפורסם באתר צה"ל.

Second Part | חלק שני

לאחר פתרון החלק הראשון, קיבלתי במייל את החלק השני והאחרון של החידה

Second Part

מטרת התרגיל

לגרום לקוד לקרוא לפונקציה מסויימת, מאזור אחר בקוד.

תהליך הפתרון

כפי שניתן לראות במייל, הייתה לי בסך הכל יממה לפתור את החידה. במהלך היום הזה למדתי המון על מנגנון SEH וגם C++ Exceptions

לבסוף פתרתי את התרגיל בעזרת Stack Overflow Attack

שמכונה בעברית גלישת חוצץ

גלישת חוצץ היא שגיאת תכנות המתבטאת בכך שתוכנית מחשב כותבת לאזור בזיכרון המחשב יותר מידע מאשר אותו אזור מסוגל להכיל. כתוצאה מכך "גולש" חלק מהמידע אל מחוץ לגבולות החוצץ, ומשנה נתונים שלא היו אמורים להשתנות.

Second Part

וזוהי תגובת מצו"ב...

מתוך 46,008 ניסיונות, רק 21 הצליחו

IDF site

סיום

באופן אישי למדתי המון מהחידה ונהניתי מההצלחה, אז תודה למצו"ב :)