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”

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”

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”

Cheating Game Android yang dibuat dengan Unity

Setelah tulisan saya mengenai Cheat dan AntiCheat pada game, banyak yang bertanya ke saya tentang cheating game. Kebanyakan adalah pemula yang tidak tahu programming, dan hanya sekedar memakai tool yang sudah jadi. Biasanya mereka mentok jika gamenya crash, atau jika modifikasinya tidak berhasil.

https://twitter.com/bambenek/status/1365800872786157571

Tulisan ini bertujuan untuk menginspirasi: ada begitu banyak hal yang bisa dipelajari dari sekedar keisengan untuk mencurangi game. Tapi tentunya jangan sekedar cuma bisa mengikuti tutorial dan mentok di situ. Dari cheating game ini ada banyak hal tingkat lanjut dalam bidang programming dan security yang bisa dipelajari.

Di tulisan lalu, saya sudah memberi tahu bahwa ada begitu banyak game engine, dan ada banyak tool, banyak proteksi pada sebuah game. Di tulisan sebelumnya saya membahas game secara umum, jadi sekarang saya ingin mengambil contoh yang lebih konkrit: game yang dibuat dengan game engine Unity dan hanya pada Android.

Lanjutkan membaca “Cheating Game Android yang dibuat dengan Unity”

SSL Pinning dan Pentester Ngawur

Tulisan ini saya buat untuk mengkritik para pentester yang nggak paham apa tujuan SSL pinning dan menyusahkan programmer. Kasusnya adalah SSL Pinning yang bisa dibypass dianggap sebagai bug, sedangkan cara bypassnya memerlukan Magisk dan Frida. Ibaratnya di dunia fisik begini: kalau ada jendela terbuka, itu bug. Tapi setelah jendelanya ditutup, dilaporkan lagi begini: pak, ini ada celah keamanannya: kalau kita masuk ke dalam rumah, ternyata jendelanya bisa dibuka dari dalam pak. Logikanya: kalau seseorang sudah bisa masuk, ngapain lagi buka jendela?

Maksud dan Tujuan SSL Pinning

Mari kita mundur sejenak, sebenarnya apa sih tujuan SSL Pinning? Saya sudah membuat artikel yang lebih detail di sini, tapi sekarang saya akan membahas versi sederhananya saja: tujuan SSL pinning adalah memastikan kita terhubung ke server yang memang kita tuju. Ini untuk mencegah MITM (Man In the Middle Attack) jika attacker dapat membuat certificate baru yang dipercaya oleh aplikasi/sistem operasi.

Jika aplikasi mengecek tidak melakukan SSL Pinning maka ada dua kelemahan yang bisa dieksploitasi. Pertama adalah melakukan attack terhadap ponsel spesifik, dan kedua adalah membuat certificate yang dipercaya secara default oleh sistem operasi.

Lanjutkan membaca “SSL Pinning dan Pentester Ngawur”

Protokol Penelusuran Kontak Google/Apple

Dalam masa pandemi ini, Google dan Apple bekerja sama dalam proyek untuk penelusuran kontak yang tetap menjaga privasi. Ini merupakan salah satu dari beberapa protokol tracing yang saat ini sedang bersaing di berbagai negara. Sebagian protokol yang direncanakan di berbagai negara sifatnya tersentralisasi, dan sebagian terdesentralisasi. Apple dan Google membuat protokol terdesentralisasi dan menyerahkan masalah pembuatan aplikasi untuk end user ke masing-masing negara.

Saat ini hampir semua ponsel sudah memiliki fitur Bluetooth Low Energy (BLE). BLE ini sekarang digunakan untuk koneksi berbagai device yang sudah sangat populer, misalnya jam pintar dan timbangan pintar. Dengan protokol contact tracing, BLE bisa digunakan untuk menyiarkan data yang mengumumkan keberadaan kita dan sekaligus mencatat keberadaan ponsel-ponsel di sekitar kita. Jika ada orang yang kemudian hari didapati positif, kita bisa diberi tahu jika pernah berdekatan dengan orang tersebut.

Protokol Google/Apple Privacy-Preserving Contact Tracing Project  dibuat diilhami oleh protokol DP-3T (Decentralized Privacy-Preserving Proximity Tracing). Salah satu alasan Google dan Apple mengimplementasikan ini di level sistem operasi karena berbagai batasan aplikasi biasa ketika mengakses bluetooth di latar belakang. Dengan implementasi dari Apple dan Google, kendali bluetooth ini bisa dilakukan di level sistem operasi dan akan lebih mulus dan hemat batere. Google dan Apple juga merupakan dua penguasa sistem operasi mobile saat ini dan jika keduanya membuat protokol yang kompatibel, maka dipastikan bisa berjalan lancar untuk hampir semua orang.

Lanjutkan membaca “Protokol Penelusuran Kontak Google/Apple”

Buku-buku Sesame Street di Google Playbooks

Ada yang anak-anaknya suka dengan Elmo dari Sesame Street? Ada yang masih kekurangan bacaan selama di rumah saja ini? Nah ini, saya mau berbagi info soal buku-buku Sesame Street yang sedang gratis di Google Play Books.

Udah dibacain berkali-kali tetep aja pada nempel begini

Ada banyaaaak buku-bukunya, dan sampai hari ini yang jelas masih gratis. Gak tahu juga sampai kapan gratisnya, jadi kalau suka sebaiknya segera download.

Lanjutkan membaca “Buku-buku Sesame Street di Google Playbooks”