סכום סדנא - פריצת הצפנה שבניתי לבד

קוד התוכנית Simpe Crypt נמצא כאן:
https://wiki.qt.io/Simple_encryption_with_SimpleCrypt

הקובץ שהוצפן עם Simple Crypt:

shells.enc.txt (203 בתים)

השורה הראשונה מהקובץ שדלפה:
leak.txt (43 בתים)

התוכנית שמפענחת את הקובץ:

leak = IO.read('leak.txt').bytes
enc = IO.read('shells.enc.txt').bytes

k = (0..8).map do |i|
  enc[i + 4] ^ enc[i + 5] ^ leak[i]
end

(4..enc.size - 2).each do |i|
  print((enc[i] ^ enc[i + 1] ^ k[(i - 4) % 8]).chr)
end

print("\n")