Sekte Pemuja Osha Oshi [unfinished]
Deskripsi
Harukaze pipit berhasil menangkap pesan rahasia dari sebuah sekte rahasia, ia juga mendapatkan bocoran yang dapat membantunya.
Author: AnYujin
Kita diberikan source code beserta outputnya.
chall.py
out
Jadi, intinya adalah sebagai berikut:
p
terdiri dari1024
digit dalam binary81
digit terakhir darip
dihapus dengan bitwise shifttapi,
37
digit terakhirnya di-preserve/tetap adajadi, sekarang di tengah ada (81-37 =
44
) digit yang berupa "0000..."pembagiannya kira2 seperti berikut
[943][44][37]
yang depan diketahui, yang tengah tidak diketahui, yang belakang diketahui
Kita bisa me-recover nilai p
dengan me-reverse fungsi encrypt()
dan memasukkan nilai leaked_p
. Tapi, andaikan sudah kita balik pun, nilai p
tersebut bukanlah nilai p
asli, melainkan nilai p
yang 44 digit-nya hilang. Oleh karena itu, tugas kita adalah me-recover p
asli dari p
yang nilai bit-nya hilang tersebut.
Sebelum itu, kita cari tahu dulu nilai p
yang nilai bit-nya hilang (setelahnya akan saya sebut sebagai p_new
) dengan membalikkan fungsi encrypt()
. Apabila kita membaca cara kerja fungsinya, tampak bahwa key-nya di-random lalu di-xor-kan dengan chunk2 dari nilai p_new
yang masing2 terdiri dari 16-bit. Mengingat ada 44 digit dari nilai p_new
yang berupa "0000...", maka setidaknya ada 2 chunk yang hasil pada leaked_p
-nya merupakan key nya itu sendiri. Dan benar saya, di leaked_p
, kita menemukan dua chunk beruntun yang memiliki nilai sama. Kemungkinan besar ini adalah key-nya.
Berikut adalah kode untuk mendapatkan nilai p_new
.
Nah sekarang, kita akan me-recover nilai p
asli dari p_new
.
Last updated