Dari keyboard ditekan sampai muncul karakter di layar (bagian 2)

Meneruskan dari tulisan sebelumnya, sekarang kita ke bagian aplikasi. Pertama aplikasi perlu menerima “event” dari Desktop/Window environment. Event ini bermacam-macam, misalnya permintaan untuk meminimize Window, event gerakan mouse, dan event tombol keyboard ditekan. Setelah tombol ditekan, maka aplikasi akan melakukan update pada struktur datanya. Sebagai pengingat, contoh aplikasi yang saya berikan ada Word Processor. Ini […]

Dari keyboard ditekan sampai muncul karakter di layar (bagian 1)

Seri tulisan ini akan mencoba menjelaskan apa yang terjadi dari sejak kita menekan tombol di keyboard sampai muncul huruf di layar. Untuk mempersingkat, saya akan mengambil beberapa asumsi: Keyboard ditekan di sebuah aplikasi yang terbuka (jadi sudah selesai booting) Sistem operasi yang dipakai modern (bukan DOS, tapi Windows/Linux/OS X) Aplikasi yang akan saya contohkan adalah […]

Membaca Source Code

Ada beberapa pertanyaan yang ditujukan ke saya yang jawabannya mudah jika sang penanya bisa membaca source code. Sayangnya skill membaca source code ini sering kali tidak dimiliki, padahal sangat diperlukan oleh programmer dan juga para reverse engineer. Saat ini mungkin sekitar 90% pertanyaan programming bisa dicari jawabannya dengan Google, dan biasanya jawabannya akan ditemukan di […]

Mengenal Bahasa Pemrograman Forth

Di posting ini saya ingin memperkenalkan bahasa pemrograman Forth. Bahasa Forth sudah ada selama 50 tahun dan cukup menarik walaupun saat ini sudah cukup jarang dipakai. Forth memakai notasi postfix, berbasis stack, dan merupakan contoh dari concatenative programming language. Forth merupakan bahasa yang sangat sederhana dan dapat diimplementasikan di sistem dengan spesifikasi sangat rendah, bahkan […]

Code Obfuscation

Code Obfuscation adalah salah satu bentuk proteksi agar kode sulit dibongkar orang lain. Inti dari obfuscation adalah menyamarkan/membuat kode sulit dibaca. Obfuscation bisa dilakukan manual atau dengan tool yang disebut “obfuscator”. Sementara itu dari sisi reverse engineering, proses mengembalikan dari bentuk samar ini disebut “deobfuscation”. Meskipun kata “samar” sepertinya cukup berpadanan dengan “obfuscated” saya akan […]

Mendalami Bahasa C

Saya memberikan saran agar seseorang “mendalami bahasa C” jika ingin belajar reverse engineering. Ada pertanyaan menarik yang diajukan ke saya: sedalam apa belajarnya pak? apa yang harus dipelajari. Sesuai KBBI mendalami di sini berarti: meresapi; menyelami; mempelajari (menelaah, menyelidiki) dalam-dalam. Saya tidak akan membahas dalam mengenai kenapa seseorang perlu memahami bahasa C, singkatnya: saat ini […]

Matematika dan Programming

Di kala senggang saya masih menjawab pertanyaan via Facebook/Email/Telegram dan banyak calon programmer yang sudah takut sebelum belajar programming: apakah akan butuh matematika? Jawabannya singkatnya tergantung. Tergantung ingin memprogram apa dan sedalam apa. Matematika dasar tentunya sangat diperlukan, misalnya perkalian, pembagian, penjumlahan pengurangan. Hampir di semua bidang diperlukan ilmu dasar geometri. Misalnya tentang sistem koordinat […]

Signature email jaman kuliah

Dulu waktu kuliah, saya punya signature email seperti ini: Ternyata masih ada beberapa orang yang ingat, dan masih banyak yang penasaran apa artinya (cuma satu kata: Yohanes) danĀ  kok bisa muncul seperti itu?. Pertama, menurut standar C lama, sebuah fungsi tanpa kembalian akan mengembalikan sebuah int, dan parameter yang tanpa tipe juga adalah sebuah int, […]

Modifikasi Aplikasi Android

Ada banyak alasan kenapa kadang kita ingin memodifikasi aplikasi Android, dan ada banyak cara untuk melakukannya. Beberapa alasan saya pernah memodifikasi Android di antaranya: untuk pentest, untuk membuat aplikasi bisa berjalan lagi, dan untuk mencurangi game. Untuk pentesting, modifikasi yang sering perlu dilakukan adalah: mematikan certificate pinning, mematikan root checking, dan juga menambahkan tracing untuk […]

Memprogram Apa Saja

Saya punya hobi memprogram benda apa saja dengan bahasa apa saja. Pertama saya contohkan dulu benda-benda yang saya program, lalu saya akan berusaha menjelaskan kenapa saya punya hobi ini, dan kenapa menyukai hobi ini. Saya belajar memprogram otodidak waktu kelas 2 SMP dengan komputer Apple II/e dengan bahasa Basic. Waktu itu semuanya masih ngasal karena […]