Reverse Engineering Model Handwritten Digits Recognition Aplikasi Mobile SIREKAP

Di tulisan ini saya akan melakukan reverse engineering aplikasi SIREKAP 2024, mengekstrak model TensorFlow Lite untuk inference, lalu membuat aplikasi Android untuk mengetes model tersebut. Saya bandingkan juga dengan model sederhana yang jadi contoh tutorial tensorflow lite.

Handwritten Digits Recognition

Persoalan pengenalan digit tulisan tangan merupakan hal paling dasar (semacam Hello World) di pelajaran AI modern. Ini merupakan subset dari OCR (optical character recognition), di mana scopenya hanya digit saja.

Ada data contoh standard yang jadi acuan yang dari database MNIST (Modified National Institute of Standards and Technology database) yang disebut MNIST dataset. Data ini terdiri dari puluhan ribu gambar digit, tiap gambar dibeli label apa digit yang ada di gambar itu, ukuran gambarnya 28×28 piksel monokrom.

Meski jadi acuan, menurut saya MNIST ini tidak 100% mencerminkan cara penulisan digit di dunia nyata, ada banyak cara penulisan digit yang tidak tercantum di dalam contoh datanya. Contoh: digit bisa dituliskan seperti display digital. Jika ingin melihat sendiri datanya, silakan klik di sini.

Sebagian Dataset MNIST
Lanjutkan membaca “Reverse Engineering Model Handwritten Digits Recognition Aplikasi Mobile SIREKAP”

Pengalaman Sertifikasi OSED

Setelah mendapatkan OSCP, OSWE, dan OSEP, berikutnya saya ingin mendapatkan OSED, karena akan sekalian mendapatkan OSCE3. Sebenarnya tidak ada pekerjaan yang menurut saya membutuhkan OSED saat ini, tapi karena ada waktu luang, ya kenapa nggak dicoba.

https://www.credential.net/4b346953-184f-49b4-9713-ccbe6ac91006#gs.43ryam

Dulu saya pernah sharing tentang Security Certification Roadmap. Ini adalah berbagai sertifikasi security yang bisa dipilih.

Lanjutkan membaca “Pengalaman Sertifikasi OSED”

Pengenalan dasar memakai Ghidra dan IDA

Tutorial ini sekedar memperkenalkan cara memakai Ghidra dan IDA (baik pro maupun free). Tadinya saya hanya ingin membahas Ghidra saja, tapi karena saya juga belum pernah menulis tutorial IDA, jadi sekalian saja, sekaligus bisa dibandingkan langsung.

Perlu dicatat bahwa mengajari orang memakai Microsoft Word atau Libre Office berbeda dengan mengajari orang menulis novel atau cerita pendek. Baik Ghidra maupun IDA hanya salah satu dari banyak tool reverse engineering. Sekedar bisa memakai Ghidra/IDA tidak bisa membuat Anda menjadi seorang reverse engineer, sama seperti bisa mengetik di Microsoft Word tidak akan menjadikan Anda tiba-tiba jadi penulis novel.

Versi IDA dan Ghidra dalam tulisan ini

Jika ingin belajar reverse engineering, maka pelajarilah dasar-dasarnya, saya memiliki FAQ mengenai reverse engineering yang bisa Anda baca.

Lanjutkan membaca “Pengenalan dasar memakai Ghidra dan IDA”

Flipper Zero

Flipper Zero merupakan tool hacking/pentesting serbaguna. Harganya tidak terlalu murah (169 Euro) tapi juga tidak terlalu mahal jika dibandingkan benda lain yang jadi saingannya, mengingat fungsionalitas nya banyak.

Saat ini Flipper Zero ini cukup populer di kalangan orang awam (terutama di Amerika) karena bisa digunakan untuk iseng misalnya melakukan bluetooth spamming attack untuk membuat semua iOS/Android di sekitar jadi restart.

Karena benda ini bisa dipakai untuk hacking, dan karena popularitasnya, Amazon sampai mem-ban penjualan benda ini dan pernah juga disita oleh agensi telekomunikasi Brazil.

Update Firmware Flipper Zero
Lanjutkan membaca “Flipper Zero”

Backup Android dan Akuisisi Forensik Android

Awalnya saya cuma ingin memahami kenapa tahun lalu gagal melakukan akuisisi data WhatsApp di Android yang memakai Android 12 (non-root), tapi ternyata eksplorasinya malah mendalam ke bagaimana sistem backup di Android bekerja. Saya melakukan berbagai eksperimen dan juga langsung membaca source code Android untuk memahami berbagai detail mengenai backup data di Android.

Dalam tulisan ini saya akan menuliskan nomor versi Android yang dikenal user (misalnya Android 6.0) dan kadang mencantumkan API Levelnya jika memang relevan (misalnya: Android 6.0 memiliki API Level 23). Menurut saya versi Android ini lebih mudah dipahami dibandingkan API Level yang biasanya hanya dikenal oleh developer.

Dialog Backup Android

Latar Belakang

Untuk keperluan tertentu kadang kita ingin mengekstrak data dari sebuah aplikasi Android. Beberapa contoh: untuk keperluan forensik, untuk recovery data, atau untuk riset security.

Sebuah aplikasi bisa menyimpan data di lokasi yang dengan mudah diakses karena berada di lokasi publik. Contoh lokasinya: galeri foto, direktori Downloads, dan SD Card. Informasi yang disimpan di sini sifatnya publik dan untuk bisa dikonsumsi aplikasi lain. Contoh: media (foto, video, file) dari aplikasi chat seperti WhatsApp bisa disimpan di direktori publik.

Lanjutkan membaca “Backup Android dan Akuisisi Forensik Android”

Mengenal Hacking UEFI

Dalam tulisan ini saya akan membahas UEFI (Unified Extensible Firmware Interface) dari mulai dasarnya, securitynya, dan sekilas cara reverse engineeringnya, dan hal-hal apa yang perlu diperhatikan ketika berurusan dengan UEFI (misalnya ketika melakuan cloning komputer).

Meskipun tulisan ini cukup panjang, tapi ini hanya perkenalan saja. Ada banyak topik yang tidak saya bahas. Ada beberapa topik yang penjelasannya saya sederhanakan sehingga mungkin kurang akurat. Silakan baca berbagai website yang saya link dari artikel ini jika ingin mendapatkan penjelasan lebih dalam. Jika ingin belajar langsung dari sumbernya, spesifikasi UEFI dan source code dari Intel bisa dibaca.

Setting UEFI

Secara awam UEFI adalah pengganti BIOS (Basic Input Output System). BIOS sendiri adalah software yang sudah tertanam di komputer yang menyediakan akses dasar ke hardware. Sebagai informasi: BIOS hanya ada di arsitektur x86, sedangkan di arsitektur lain, fungsi BIOS ini digantikan oleh software lain. Software low level yang menempel ke hardware ini disebut juga sebagai firmware.

Ketika sebuah komputer dinyalakan, perlu ada firmware yang bisa meload sistem operasi dari suatu media, entah itu dari disk (macam-macam, bisa flash disk, micro sd, harddisk, SSD, NVME, dsb) dari network, atau mungkin dari sumber lain. Di dunia PC, firmware ini dulunya adalah BIOS, tapi sudah belasan tahun ini digantikan oleh UEFI.

Sedikit Sejarah

BIOS untuk x86 usianya sudah sangat tua (dari jaman PC XT), dan memiliki banyak keterbatasan (misalnya hanya bisa berjalan di mode 16 bit). Jadi untuk sistem operasi 32 atau 64 bit, boot loader atau sistem operasi perlu beralih mode dari 16 ke 32/64 bit setelah diload oleh BIOS.

Proses Boot BIOS (Sumber: Wikipedia)

Saya dulu pernah membuat sendiri OS sederhana dari nol, dan proses bootnya cukup panjang: mengimplementasikan kode MBR (yang otomatis diload oleh BIOS, ukurannya maksimal 512 byte), yang akan meload boot loader (memanggil fungsi/interrupt BIOS untuk mengakses disk), lalu boot loadernya meload kernel, switch ke mode 32 bit, lalu baru melakukan jump ke mode 32 bit. Detail proses booting klasik bisa dibaca di sini.

Lanjutkan membaca “Mengenal Hacking UEFI”

Hooking Aplikasi Android di 2022: Magisk, Zygisk, LSPosed dan JShook

Artikel ini ditujukan untuk para reverse engineer dan pentester yang ingin mengetahui situasi terbaru hooking Android pada awal tahun 2022. Hooking Android artinya kita menulis kode untuk mengintercept fungsi yang ada dan menggantinya dengan milik kita. Tujuan hooking ada banyak, misalnya: bypass SSL Pinning, security testing, cheating game, dsb.

Di tahun 2019 saya pernah menuliskan tentang Magisk, Frida, dan XPosed Framework. Artikel ini merupakan update situasi terkini. Untuk Frida, saya pernah menulis lebih detail di sini (2019), dan XPosed pernah saya tulis di sini (2016).

Zygisk

Setelah capek kucing-kucingan dengan Google dalam hal Safety Net, akhirnya Magisk Hide dihapus. Selain Magisk Hide, Magisk memiliki banyak modul. Modul Magisk sifatnya low level, seperti menyembunyikan, memindahkan, menggantikan atau menambahkan file tertentu di Android.

Modul Magisk yang saya pakai

Sekarang ini ada modul magisk baru bernama Zygisk. Ini sekedar untuk meload sebuah .so di setiap proses (dan otomatis dipanggil ketika proses dimulai). Dengan ini, developer Magisk hanya ingin bilang: ini saya sediakan akses untuk hook low level, silakan dimanfaatkan untuk apapun.

Lanjutkan membaca “Hooking Aplikasi Android di 2022: Magisk, Zygisk, LSPosed dan JShook”