GammaCyber

כתיבת קוד — שיעור 27

Assembly Jumps ולולאות

כל 2 משימות הקוד שנשמרו מהשיעור מופיעות כאן, עם דרישות, דוגמאות וקוד פתיחה. אפשר לכתוב פתרון בעורך המקומי וללחוץ על „בדיקת AI” לקבלת ציון, רמזים והערות.

T4 · מתקדם550 נק'~40 דק'reverse
Crackme — מצא את ה-Serial
מסופק בינארי crackme. הרץ אותו — הוא מבקש serial. הפוך את הבינארי (objdump/Ghidra/gdb), הבן את בדיקת ה-check, ומצא את ה-serial (6 תווים) שגורם לו להדפיס 'Correct!' ולחשוף את ה-flag. המקור אינו מסופק.
דוגמאות
הרצת הבינארי + serial שגוי → Wrong.
פתרון-ייחוס Crackme — מצא את ה-Serial ›
# התנאי: (s[i] + (7*i+3)) & 0xFF == target[i] -> s[i] = (target[i] - (7*i+3)) & 0xFF target = [0x4a,0x3e,0x7e,0x85,0x53,0x7e] serial = ''.join(chr((target[i] - (7*i+3)) & 0xFF) for i in range(6)) print(serial) # G4mm4X -> flag{gamma_re_G4mm4X}
הפתרון נשמר מקומית אוטומטית.
T3 · בינוני300 נק'~18 דק'analysis
פענוח XOR (מפתח יחיד)
מחרוזת הוצפנה ב-XOR עם מפתח בית-יחיד. ה-ciphertext (hex): 4c 0b 4b 4d 51 12 1a 45 04 5e 04 5a. ידוע שהטקסט הפתוח מתחיל ב-'flag{'. שחזר את המפתח ופענח — הגש את הטקסט הפתוח המלא.
דוגמאות
cipher[0] ^ 'f' → = המפתח
פתרון-ייחוס פענוח XOR (מפתח יחיד) ›
key = 0x4c ^ ord('f') = 0x2a. XOR כל בית ב-0x2a → flag{x0r_ez}
הפתרון נשמר מקומית אוטומטית.