[RingZer0 CTF] – HeapAllocator

 

Sesudah Mendownload filenya, kita lihat tipe filenya terlebih dahulu.

 

Setelah mengetahui type filenya, barulah kita coba menjalankan program tersebut.

 

 

 

DIgambar terlihat seperti adanya alokasi memori dan gagal menampilkan flag.

Maka dari itu saya mencoba untuk melihat code program dengan lebih detail lagi dengan objdump -d “NamaProgram”.

 

0xcc = !!! ( Pertanda penting)

0x46 = F

0x4c = L

0x4741 = A dan G

terlihat semacam kata kunci FLAG.

Namun bagian code ini (at0x4005ef) bisa dieksekusi jika kondisi pada 0x4005d8 benar.
Untuk itu kondisi byte pada “0x4007d0” + 5 harus sama dengan “0xcc”.

“0x4007d5” adalah alamat dalam kode program (__libc_csu_init routine) dan “0xcc” adalah nilai yang sangat istimewa: ini adalah opcode Intel untuk INT3, instruksi yang digunakan untuk mengatur breakpoint perangkat lunak.

Maka dari itu saya akan mencoba untuk breakpoint pada 0x4007d5 dan mencoba untuk menjankan program itu lagi.

 

dan setelah dijalankan dan di continue , program tersebut jalan dan menampilkan sebuah message yang menampilan kata kunci “FLAG” yaitu

” Continuing.
FLAG-Allocating 1024 bytes 0x602670…
Freeing buffer 0x602670…
Heap is working perfectly! No Flag then
[Inferior 1 (process 29600) exited normally] “.

 

 

 

Leave a comment

Your email address will not be published. Required fields are marked *