progrez.cloud

IT RACE 6/7 - Move Me!

10 Maret 2023

Move Me!



Di soal ini, kita di suruh untuk menghitung berapa kali sebuah tombol "Move Me!" berpindah dari satu tempat ke tempat lain [link].

Setelah melakukan Inspect Element, dan masuk ke tab Source, saya menemukan sebuah file moveme.js [Source Code]


Di sana saya sedikit lama, terpukau dengan framework cantik buatan bang @jmozac. Lanjut saya berpatok pada sebuah variabel idx = 0; dan beberapa function seperti berikut:


a = input text

g = tombol kirim jawaban

f = tombol yang berpindah (Move Me!)


setelah membaca kode sedikit "wah ini gampang nih :)", saya langsung masuk ke Tab Console dan menulis perintah javascript seperti ini:


f.onmouseleave = () => {a.value = idx; kirim_jawaban()}


lalu ketika saya mengarahkan mouse saya ke "f" dan "Salah. Coba lagi ya!"



Oke, saya mulai serius. Dengan menggulung lengan baju saya, walaupun saya lagi ngk pake baju, saya kembali membuka file moveme.js dan kembali membaca secara seksama complite source code di atas, karena saya tidak mau menjadi warga indonesia yang miskin membaca.


OK CUKUP SERIUS, mari kita inisial satu persatu variabel dan fungsi


idx; adalah index untuk lokasi posisi tombol f

r; yang merupakan data lokasi

di baris selanjutnya lat f,l,a,g; draw element di halaman

dalam function onmouseover:

rndm; random angka kurang dari 100

eits(m,n); fungsi memindahkan f dengan koordinat r yang di tentukan dari m dan n. ada interval waktunya yaitu 50 milidetik ya


oke sekarang kita pake interval 53 di kalikan dengan jumlah index


f.onmouseleave = () => {a.value = idx; setTimeout( () => { kirim_jawaban() }, 53*idx )}


anjir masih salah


Fungsi yang terakhir adalah kirim_jawaban(), dalam fungsi ini terdapat 3 komponen yang di kirim

1; posisi kiri tombol "f" dari layar

2; posisi atas tombol "f" dari layar dan

3; nilai input text


1 dan 2 di gunakan untuk mendapatkan nilai index dari r(), lalu di cocokan dengan 3, jika sama maka mendapatkan flag, hmm terus apa yang salah?


awkwa i seeeee..

karena array tambahin -1 aja..


f.onmouseleave = () => {a.value = idx-1; setTimeout( () => { kirim_jawaban() }, 55*idx )}


FLAG: ITRACE{0K_y0u_g0t_Me}