pada challenge ini kami menerima sebuah file .jar >< unch unch java, pada saat dijalankan javanya akan terlihat seperti game snake kayak biasamemang sungguh bukan ular biasa, bercanda gan, kemudian seperti yang terlihat di gambar diatas file tersebut akan membuka sebuah game snake yang terlihat biasa biasa saja, dari deskripsi soal terlihat bahwa jika kita […]
Category: Reverse Engineering
[Joints2020] – crackme
Diberikan sebuah binary 64 bit not stripped. Pseudocode dari fungsi main adalah sebagai berikut:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
int __cdecl main(int argc, const char **argv, const char **envp) { char v4; // [rsp+0h] [rbp-30h] _BYTE v5[3]; // [rsp+5h] [rbp-2Bh] _BYTE v6[6]; // [rsp+Ah] [rbp-26h] int v7; // [rsp+14h] [rbp-1Ch] char v8; // [rsp+19h] [rbp-17h] unsigned __int64 v9; // [rsp+28h] [rbp-8h] v9 = __readfsqword(0x28u); __isoc99_scanf("%5c-%5c-%5c-%5c-%5c", &v4, v5, v6, &v6[5], &v7); v8 = 0; if ( checker(&v4) ) unlock(); else printf("Invalid serial key"); return 0; } |
Dilihat program meminta input sepanjang 25 karakter dan kemudian input akan diproses oleh fungsi checker() dan bila hasil dari checker() adalah true maka fungsi unlock() akan dipanggil. Berikut pseudocode dari fungsi unlock():
1 2 3 4 5 6 7 8 9 10 |
int unlock() { char i; // al FILE *stream; // [rsp+8h] [rbp-8h] stream = fopen("flag.txt", "r"); for ( i = fgetc(stream); i != -1; i = fgetc(stream) ) putchar(i); return fclose(stream); } |
Fungsi tersebut akan membuka file flag.txt pada server nc. Berikut pseudocode dari fungsi checker():
[noxCTF 2018] – Guess The String
Challenge Description : Would you like to test your luck? Let’s see if you can guess the correct string. Diberikan File ELF-64 bit bernama GuessTheString, ketika dijalankan maka hasilnya adalah sebagai berikut : Selanjutnya, dengan menggunakan IDA, saya mencoba untuk melakukan disassemble file tersebut, dengan hasil sebagai berikut : dari hasil disassemble tersebut, terdapat function […]
[OverTheWire] – Behemoth3
behemoth3 dapat diakses menggunakan : “ssh behemoth3@behemoth.labs.overthewire.org” dengan password yang didapatkan pada behemoth2 yaitu ‘nieteidiel’. disclaimer : writeup ini dibuat dengan bahan bacaan dari writeup : https://github.com/USCGA/writeups/tree/master/overthewire/behemoth/level3 pada level ini, terdapat file bernama behemoth3. Ketika file tersebut dieksekusi, maka hasilnya adalah sebagai berikut : selanjutnya saya menggunakan ltrace untuk melihat garis besar proses […]
[OverTheWire] – behemoth2-3
Untuk mengerjakan behemoth2, dapat menggunakan ssh “ssh behemoth2@behemoth.labs.overthewire.org” dan memasukkan password yang telah didapatkan sebelumnya dari behemoth1. Terdapat sebuah file ELF yang bernama behemoth2, ketika dijalankan akan maka hasilnya adalah sebagai berikut : terlihat bahwa dijalankan perintah touch, di mana perintah touch merupakan command yang digunakan untuk membuat file kosong. Tetapi, pada eksekusi file […]
[KKSI 2019] – siapGRAAK
Soal ini dapat kalian download disini Pada kita diberikan soal berupa ELF 64-bit.
1 2 |
root@kali:~# file siapGRAAK siapGRAAK: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 3.2.0, BuildID[sha1]=a8680e08d2a4cd7f23306ac67459036c1f914f7e, not stripped |
kita coba jalankan program ini terlebih dahulu,
1 2 3 4 |
root@kali:~# ./siapGRAAK Flag nya apa nih Kang ?: iWantThatFLagg SALAH NIH |
kita coba lihat program ini menggunakan IDA pro 64-bit, dan pada mainnya terdapat psudeocode seperti ini,
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
int __cdecl main(int argc, const char **argv, const char **envp) { int result; // eax size_t i; // [rsp+0h] [rbp-C0h] size_t v5; // [rsp+8h] [rbp-B8h] char s2[8]; // [rsp+10h] [rbp-B0h] __int64 v7; // [rsp+18h] [rbp-A8h] __int64 v8; // [rsp+20h] [rbp-A0h] int v9; // [rsp+28h] [rbp-98h] __int16 v10; // [rsp+2Ch] [rbp-94h] char s[136]; // [rsp+30h] [rbp-90h] unsigned __int64 v12; // [rsp+B8h] [rbp-8h] v12 = __readfsqword(0x28u); *(_QWORD *)s2 = -821479746076235608LL; v7 = -4697167109371201534LL; v8 = -6839456764105678448LL; v9 = 1520982160; v10 = 61; puts("Flag nya apa nih Kang ?:"); fgets(s, 128, stdin); s[strlen(s) - 1] = 0; v5 = strlen(s); for ( i = 0LL; i < v5; ++i ) s[i] = get_tbl_entry((unsigned int)s[i]); if ( v5 == 29 ) { if ( !strncmp(s, s2, 0x1EuLL) ) { puts("YESSS BERHASIL"); result = 0; } else { puts("SALAH NIH"); result = 1; } } else { puts("SALAH NIH"); result = 1; } return result; } |
dapat dipahami bahwa inputan kita dilakukan pengolahan pada fungsi get_tbl_entry() pada setiap char inputan kita. Mari kita lihat isi […]
[OverTheWire] – Behemoth 0-2
Behemoth 0 -> 1 Behemoth 0 dapat diakses dengan “ssh behemoth0@behemoth.labs.overthewire.org” dengan password default behemoth0. Tujuan dari setiap level pada wargame ini adalah untuk mengakses shell dan mendapatkan password untuk melanjutkan ke level berikutnya. Pada Behemoth0, terdapat sebuah file ELF bernama behemoth0 pada folder /behemoth. Ketika file tersebut dijalankan, maka outputnya adalah sebagai berikut : […]
Protected: Cracking cracked IDA Pro 7 for macOS
There is no excerpt because this is a protected post.
[CSAW CTF Qualification Round 2019] – Beleaf
Langkah awal yaitu check file dengan file “filename” (rev type) / pwn checksec ” filename”(pwn type) Setelah itu , kita buka ida untuk melihat keseluruhan function pada file “beleaf”. Ini adalah seluruh function yang terdapat pada file beleaf. Dan saya mendapat 2 funcion menarik pada file beleaf. pertama adalah : main function kedua : […]
[SlashRoot CTF 2019] – Android
Diberikan sebuah file ‘CrackMe102.apk‘. Namun untuk mengetahui Algoritma dari apk tersebut, ada 2 cara, yaitu extract dengan menggunakan Apktool atau dengan JADX (http://www.javadecompilers.com/apk). Pada kasus ini, saya memilih untuk mengextract apk tersebut menggunakan JADX, agar source code yang dipakai untuk membuat apk tersebut berkemungkinan dapat dibaca. Berbeda ketika kita menggunakan Apktool, maka extract yang yang […]