GPU Raspberry Pi

Salah satu kelebihan Raspberry Pi (RPI) dibandingkan Single Board Computer (SBC) lain adalah: harganya relatif murah dan memiliki GPU yang terdokumentasi resmi dan bisa dimanfaatkan dengan berbagai API low level. Beberapa SBC lain ada yang harganya lebih murah (misalnya Orange Pi) tapi dokumentasinya kurang, dan beberapa yang lain lebih powerful (misalnya NVidia Jetson) dengan dokumentasi yang cukup baik dari produsen (tapi masih kurang dari komunitas) tapi harganya 10x lipat dari RPi 3.

GPU Raspberry Pi cukup powerful, dan bisa melakukan beberapa hal menarik misalnya: tunelling dari kamera (dengan konektor CSI) langsung ke layar, colorspace conversion, video/image encoding and decoding,  resizing, dan overlay. Kita juga bisa meminta agar data dari kamera langsung dijadikan texture untuk OpenGL ES.

Secara praktis tunnelling artinya satu komponen ke komponen lain bisa bekerja langsung tanpa buffer. Contoh nyatanya begini: kita bisa membuat aplikasi yang kelihatan smooth karena data dari kamera tampil langsung di layar dengan kecepatan tinggi (30 fps) tanpa memakai CPU sama sekali. Sementara di latar belakang kita bisa mengambil gambar, memproses (misalnya face detection) dan menampilkan hasilnya.

Proses ini membypass windowing system, jadi bisa jalan bahkan tanpa X Window (mode teks sekalipun).

Video dari kamera bisa ditampilkan di mode teks

Fitur texture OpenGL ES artinya kita bisa menampilkan gambar kamera atau video (dari file atau jaringan) langsung di permukaan  misalnya kubus atau teko. Selain itu kita bisa menggunakan pixel shader untuk memproses data tanpa memakai CPU, contohnya membuat filter kamera secara real time, atau bahkan melakukan preprocessing untuk algoritma machine learning. Data yang sudah diproses bisa dibaca dan diproses lebih lanjut di CPU dengan glReadPixels. Lanjutkan membaca “GPU Raspberry Pi”

Membedah e-KTP

Posting ini sekedar membahas tentang kartu tanda penduduk elektronik (e-KTP). Sampai saat ini saya belum pulang ke Indonesia untuk mengurus e-KTP karena KTP lama masih berlaku. Waktu orang tua saya datang ke sini tahun lalu saya sudah sempat ngoprek e-KTP mereka sedikit, dan sekarang selagi mereka berkunjung saya teruskan dan tuliskan hasil eksplorasi saya.

Sebagian isi tulisan ini didapat dari reverse engineering, dan sebagian lagi dari berbagai informasi yang tersebar di Internet. Ada juga bagian yang merupakan spekulasi saya dari informasi yang ada.

Security sebuah smart card

Sebuah smart card adalah sebuah komputer kecil, di dalamnya ada CPU, RAM, dan juga storage. Smart card diakses menggunakan reader, secara umum ada dua jenis: contact (menggunakan konektor fisik seperti SIM card) dan contactless (tanpa konektor fisik seperti kartu e-Money berbagai bank saat ini). Dari sisi programming keduanya sama saja. Kartu smart card yang baru umumnya juga sudah tahan (immune) terhadap side channel attack (DPA/SPA/FI dsb). Lanjutkan membaca “Membedah e-KTP”

AlphaSmart Dana

AlphaSmart Dana adalah device Palm OS lama dengan form factor keyboard yang sudah tidak diproduksi lagi. Device ini dulu cukup populer di banyak sekolah di Amerika, terutama digunakan untuk anak-anak yang kesulitan menulis dengan pulpen/pensil. Device ini saat ini masih populer di kalangan penulis karena beberapa hal: keyboardnya enak dipakai untuk mengetik, minim gangguan (karena tidak bisa mengakses internet), relatif ringan (sekitar 1 kg), memakai 3 Batere AA biasa (atau yang rechargable) dan tahan beberapa puluh jam sebelum perlu mengganti batere lagi. Ada dua versi Dana, Wireless dan non wireless, yang akan dibahas di sini adalah versi wireless yang kami punya.

Stiker biru kecil di tengah Dana itu ditempelkan supaya gampang membedakan dari Dana yang lain.

Untuk mentransfer data ke komputer, ada beberapa opsi. Opsi pertama adalah menggunakan mode keyboard, dengan ini seolah-olah Alphasmart akan “mengetik ulang” isi file ke editor apapun yang terbuka di layar komputer. Dengan cara ini AlphaSmart Dana bisa terkoneksi ke device apa saja yang menerima input dari USB keyboard (termasuk juga tablet atau ponsel, asalkan bisa memberikan cukup daya). Kabel yang digunakan adalah kabel USB printer standar. Opsi kedua adalah dengan menggunakan jaringan WIFI (sayangnya yang disupport hanya WEP). Opsi terakhir adalah dengan menggunakan SD Card Lanjutkan membaca “AlphaSmart Dana”

Bulan Penuh Diskon

Bulan November merupakan bulan penuh diskon, karena ada 11/11 (singles day) dan ada banyak diskon dari berbagai situs di China, lalu diikuti dengan Black Friday dan Cyber Monday yang penuh dengan diskon global.

Dibandingkan tahun lalu, tidak terlalu banyak diskon yang diberikan oleh AliExpress, benda mahal yang saya beli  hanya Proxmark3 versi paling sederhana (tidak memiliki konektor batere) dengan harga 66 USD (termasuk ongkos kirim). Proxmark3 ini adalah tool untuk eksplorasi RFID/NFC.

Sebenarnya dalam banyak kasus berbagai penstest dan hacking NFC bisa dilakukan dengan reader sederhana yang harganya kurang dari 5 USD, tapi proxmark ini diperlukan untuk sniffing dan juga untuk mengakses berbagai kartu yang tidak standar.

Texas Instruments baru saja meluncurkan board MSP43  baru (Launchpad dengan FRAM), dengan harganya 9.9 USD belum termasuk ongkos kirim, tapi saat ini  diskon menjadi 4.30 USD (sudah termasuk ongkos kirim). Diskonnya masih ada sampai Desember 2017. Development board dari TI ini bisa dipakai juga memprogram chip MSP430 lain. Lanjutkan membaca “Bulan Penuh Diskon”

Hacking dan Reverse engineering hardware

Saat ini di jaman IOT, makin banyak orang yang tertarik untuk hacking dan reverse engineering (RE) hardware. Karena sudah cukup banyak orang menanyakan topik ini, maka di artikel ini akan saya bahas dasar-dasarnya, plus tools apa saja yang dibutuhkan jika ingin memulai.

Dalam artikel ini RE hanya bertujuan memahami software dan hardware dalam sebuah sistem. Hacking hardware bermakna lebih luas misalnya menambah atau mengubah sesuatu di hardware, misalnya menjalankan Doom di printer, membuat hardware baru, atau oprekan apapun yang berhubungan dengan hardware.

Supaya bisa mengubah sebuah hardware yang tidak terdokumentasi, kita perlu melakukan dulu reverse engineering untuk memahami cara kerjanya, baru setelah itu kita bisa melakukan perubahan. Untuk hardware open source atau yang dokumentasinya sangat baik, proses RE ini tidak perlu.

Tujuan melakukan Hacking Hardware

Ada banyak tujuan RE dan hacking hardware, misalnya:

  • Mencari key enkripsi untuk mengakses konten gratis atau untuk membuat konten baru (misalnya game homebrew), atau bahkan membajak, contohnya dalam kasus Game Console
  • Memperbaiki, menambah atau menghilangkan fungsionalitas , misalnya menambah SD Card di router
  • Mengekstraksi firmware dengan berbagai tujuan: mencari bug di firmwarenya, mengclone firmwarenya (membuat produk tiruan), mencari key dalam firmwarenya

Perlu dicatat bahwa dalam 99% kasus, ujung dari reversing hardware adalah melakukan reversing software yang berjalan di hardware tersebut. Lanjutkan membaca “Hacking dan Reverse engineering hardware”

Kesibukan dan Oprekan Agustus 2017

Seperti biasa, jika sudah lama tidak posting, ceritanya digabung. Posting ini campuran cerita mengenai SIM Card Hologram, RHME3, perjalanan ke Singapore dan cerita mengenai tablet Android.

SIM Card Hologram

Tanggal 26 Juli 2017 saya melihat posting mengenai program developer untuk Hologram dan saya segera mendaftar untuk mendapatkan SIM Card gratis.

Secara singkat, dengan SIM card Hologram dan kerjasama mereka dengan jaringan GSM di (hampir) seluruh dunia, kita bisa membuat produk IOT (Internet of Things) yang bekerja secara internasional dan relatif murah.  Tidak perlu memikirkan roaming data dan tarif yang berbeda di tiap negara.

SIM card hologram ini bukan untuk dipakai di handphone dan browsing, tapi ditujukan untuk dipakai di embedded system yang butuh konektivitas data yang ukurannya relatif kecil dan di luar jangkauan WIFI, walau bisa juga sebagai komplemen atau cadangan WIFI.

Khusus untuk developer plan, diberikan jatah 1 MB/bulan gratis untuk development. Jika dipakai untuk browsing, satu megabyte itu bahkan tidak cukup untuk membuka halaman depan blog ini, tapi untuk keperluan pengiriman data dari sensor ini sudah cukup.

Tanggal 11 Agustus SIM Cardnya sudah sampai, dan saya test menggunakan modem HSDPA murah (kurang dari 9 USD, sudah termasuk ongkir). Percobaan saya lakukan di Linux dengan wvdial, dan koneksi bisa mudah dilakukan.

IP yang didapatkan adalah IP private. Device bisa mengakses IP eksternal, dan waktu saya coba asal IP nya dari Saint Helier, Jersey. Untuk koneksi kebalikannya (dari eksternal ke device), kita bisa memakai API yang disediakan hologram (atau membeli nomor supaya bisa dikirimi SMS).

Sebenarnya saat ini saya nggak punya proyek khusus yang ingin saya lakukan, tapi ini bisa saya pakai untuk melakukan koneksi ke server rumah jika koneksi internet sedang mati.

CTF RHME3

Karena waktu saya semakin terbatas, sekarang ini saya hanya sempat mengikuti CTF jangka panjang, bukan CTF 2 hari di akhir pekan. Saat ini sudah ada beberapa yang rutin: Flare-On, Labyrenth, dan RHME.

Saya mulai ikut CTF RHME tahun lalu, dan tahun ini sudah dimulai lagi: The world first automotive CTF, begitu slogan RHME tahun ini. Registrasinya kemarin dibuka tanggal 7 Agustus dan ditutup tanggal 28 Agustus. Ada tiga soal yang cukup sulit, mereka mengalokasikan 500 device, tapi hanya 486 orang yang menyelesaikan minimal 1 soal.

Dari Indonesia cuma teman saya Deny yang berhasil mendaftar (padahal dah beberapa kali saya umumkan di group RE Indonesia yang anggotanya ratusan). Dari Thailand ada 7 orang yang mendaftar.  Device akan dikirimkan ke peserta mulai 1 November nanti.


Sekarang ini Joshua sedang sangat senang nempel ke saya, kadang minta dipangku nonton Youtube padahal bisa nonton di TV yang besar atau di tablet, sementara saya coding (split screen). Sepertinya sudah saatnya beli dua monitor.

HITB Singapore

Tahun ini saya mencoba lagi HITB ke Singapore, walau hasilnya kurang memuaskan (peringkat 14 offline dari 28 team). Pesertanya jauh lebih kompetitif dari terakhir kali kompetisi beberapa tahun yang lalu. Soal-soalnya juga jauh lebih sulit.

Meski tidak menang, tapi saya senang bisa bertemu lagi dengan teman-teman yang sudah lama tidak saya temui, dan juga bertemu teman baru.

Buat orang-orang yang meng-add saya di Facebook: segala macam hal-hal menarik saya buat jadi public di timeline saya atau di blog. Hal-hal yang sifatnya hanya untuk teman saja, saya publish untuk “Friend” (seperti misalnya foto teman-teman yang saya temui di Singapore), jadi sebenarnya nggak seru nge-add saya jadi friend di Facebook.

Bug Bounty

Meski sudah banyak bug yang saya laporkan ke berbagai pihak, biasanya balasannya cuma: makasih mas. Ada juga bahkan yang gak pake terima kasih, terus diem-diem benerin. Ada beberapa yang nawarin kerjaan/proyek, tapi kemudian nggak ada kabarnya lagi.

Setelah tahun lalu menemukan bug di payment gateway Master Card (dan menerima 8500 USD), tahun ini saya coba-coba lagi dan menemukan lagi bug di beberapa payment gateway. Sayangnya yang sangat tanggap cuma satu: Fusion Payments. Di bulan ini saya sudah menemukan 2 critical level bug di sana, yang pertama 400 USD dan berikutnya 500 USD.

Sebagai catatan: bug-bug yang saya temukan akan saya tuliskan detailnya, tapi saat ini masih belum bisa/boleh.

Tablet Android

Beberapa waktu yang lalu saya mendapatkan pekerjaan testing aplikasi Android yang hanya berjalan di versi tablet (layar besar). Ternyata aplikasinya berisi form yang banyak sekali sehingga perlu layar lebar. Biasanya saya memakai tablet Samsung Note 8 yang sudah bertahun-tahun umurnya, tapi sekarang ini tabletnya sudah rusak (mati/tidak bisa boot lagi). Karena aplikasinya selalu hang di emulator, akhirnya saya memakai Android di Pinebook.

Semua bisa berjalan dan testing bisa selesai, tapi ada yang mengganggu: Pinebook tidak punya touch screen, dan aplikasinya hanya mau jalan di mode landscape. Jadi saya terpaksa memakai laptop dalam posisi miring, dengan menggunakan keyboard eksternal.

Akhirnya saya beli Android murah dari AliExpress. Ratingnya bagus, katanya CPUnya 8 core, memorinya 4 GB dengan ROM 32 GB. Setelah sampai, kenyataannya CPUnya cuma 4 core, RAM nya cuma 2GB dan ROM cuma 16 GB. Ternyata kernelnya diakali sehingga jika memakai software dari play store pun, akan muncul kalau memorinya 4 GB, CPUnya 8 core, dan ROM-nya 32 GB.

Waktu mau coba root dengan langsung flash recovery partition baru, ternyata malah error, tidak bisa boot sama sekali dan nggak bisa dicharge juga. Akhirnya saya charge baterenya dengan cara membuka soldernya lalu memakai modul charger Lithium. Setelah mendapatkan file ROM asli dari sellernya, akhirnya bisa jalan normal lagi. Tapi benda ini sangat ringkih, jadi saya simpan saja untuk pentest berikutnya.

 

Sebenarnya masih banyak cerita dan detail lain bulan ini, tapi akan saya geser ceritanya ke bulan depan.