Dual SIM + MicroSD di Ponsel Xiaomi

Kebanyakan ponsel Xiaomi sekarang memiliki slot dimana kita harus memilih antara: dua simcard, atau satu sim card dan micro SD. Sekarang ini saya memilih dual sim card dan membeli ponsel dengan storage yang cukup besar. Saat ini 128 GB masih cukup buat saya karena saya memakai fitur backup foto dari Google Photos dan One Drive (saya mengupload ke kedua layanan tersebut sekaligus).

Dulu saya pernah membaca ada orang yang mengakali masalah dual sim card dan micro SD dengan cara menggerus bagian bawah microSD dan sim card agar keduanya menjadi tipis dan bisa dipakai bersamaan. Tentunya cara ini berbahaya dan repot sekali jika perlu ganti micro SD.

Beberapa waktu yang lalu saya melihat ada adaptor agar kita bisa memakai keduanya sekaligus di aliexpress. Karena harganya hanya 0.87 USD, saya coba saja pesan. Sudah beberapa hari bendanya sampai dan baru sekarang dicoba.

Pemasangan benda ini agak ribet, tapi juga tidak terlalu sulit. Saya cuma khawatir bendanya akan nyangkut dan tidak bisa dikeluarkan. Setelah berhasil dipasang, semuanya berjalan dengan baik: kedua SIM card terdeteksi, dan Micro SD juga terdeteksi. Saya juga bisa memasang casing HP dan tidak terlalu terlihat dari luar.

SIM card jadi menjuntai di luar

Saya sendiri ragu ini solusi yang baik untuk jangka panjang. SIM card yang berada di luar berarti akan lebih mungkin korosi. Jika sering ganti-ganti card, kemungkinan benda ini juga akan mudah rusak. Tapi untuk seseorang yang sangat butuh space dan dual sim card, solusi ini cukup praktis.

Dengan casing, jika dilihat seksama terlihat menggembung sedikit

Kesan kembali memakai iOS

Selama beberapa tahun terakhir saya memakai iOS hanya untuk pentesting (dan juga ikut pelatihan iOS security di Hong Kong). Tadinya meskipun punya iPad dan iPhone, keduanya usianya cukup tua (keduanya > 5tahun). iPhone 5S sudah terasa sangat lambat, sementara iPad lebih sering dipakai untuk main oleh Joshua (dan sesekali oleh saya jika ada pentest aplikasi iPad). Sebelum iPhone 5S saya memakai iOS di iPod touch dan iPod touch 2nd generation.

Bulan Januari saya membeli iPhone XR (ini yang termurah yang mendukung prosessor A12) dan bulan ini saya membeli iPad (yang biasa bukan yang mini ataupun Pro). Pembelian iPhone tujuannya untuk pentesting (dan sudah terpakai), sementara iPad untuk membaca buku dan melihat materi Coursera (sekaligus hadiah untuk diri sendiri sudah menyelesaikan 6 Course di Coursera).

Sekarang saya ingin menuliskan kesan memakai kedua benda tersebut. Saya awali dengan iPhone. Hal yang saya suka sejauh ini adalah: kameranya bagus dan cepat, kadang merasa agak menyesal nggak sekalian beli XS yang kameranya lebih bagus lagi tapi perbedaan harganya cukup tinggi. iPhone XR juga waterproof sehingga bisa dipakai untuk berfoto di kolam renang.

Dari sisi software, saya tidak melihat sesuatu yang menarik di banding Android. Kebanyakan aplikasi memang lebih indah, tapi karena keterbatasan yang diberikan Apple, fungsionalitasnya kurang. Contoh: ingin ssh tunelling? koneksinya terbatas sekian menit saja.

Contoh lain: Pythonista merupakan implementasi Python yang bagus (berbayar, cukup mahal 9.99 usd) dan bisa dipakai untuk membuat program dengan antarmuka yang cantik. Tapi Pythonista tidak bisa dipakai untuk belajar machine learning (contoh: tidak ada package tensorflow).

Ketika memakai keyboard Google, sering kali keyboardnya kembali ke default keyboard (default keyboard memang akan selalu dipakai untuk input password, tapi dalam kasus ini switching ke keyboard default terjadi secara random). Akhirnya masalah ini selesai setelah menghapus keyboard default.

Mungkin hanya kebetulan saja, tapi berbagai aplikasi yang saya pakai semuanya memiliki banyak masalah kecil. Contohnya Quiz di Coursera kadang gagal terload (padahal berjalan baik di Android). WordPress untuk iOS juga lebih sering error dibanding WordPress for Android (tapi secara umum aplikasi ini emang agak kurang stabil di kedua platform). Aplikasi Alkitab yang ada juga kurang bagus di banding Android. Bahkan yang berjalan baik di Android seperti Bible.is sering crash di iOS.

Fitur face unlock di iPhone XR sangat bagus dan akurat serta sangat nyaman digunakan. Tapi saat ini di Chiang Mai sedang polusi berat, dan fitur face unlock yang bagus ini jadi tidak bisa dipakai ketika saya memakai dust mask. Dalam saat seperti ini sangat terasa bahwa fingerprint di Poco F1 lebih berguna.

Beberapa aplikasi lain menurut saya sama saja baik di Android dan iOS, tidak terasa bedanya sama sekali. Contoh aplikasinya: AliExpress, Facebook, Telegram, Netflix, Reddit, Twitter, Instagram, dan berbagai aplikasi Google (Youtube, Photos, Maps, Translate). Game yang saya mainkan hanya Pokemon Go dan ini loadingnya sedikit lebih cepat di iPhone XR dibanding Poco F1.

Saya hanya memakai iPad untuk membaca dan rasanya cukup nyaman. Saya belum membeli Apple Pencilnya, jadi belum tahu apakah akan terpakai atau tidak. Di banding iPad 3, iPad yang baru ini lebih ringan jadi lebih enak dipegang. Kecepatannya sekarang juga sudah bagus sehingga tidak lambat membuka PDF. Batere iPad juga tahan lama, lebih lama dari berbagai tablet Android yang pernah saya pakai.

Setelah mencoba lebih dari sebulan, saya kembali lebih sering memakai ponsel Android saya dan akan terus memakai iPad. Jika bukan karena memakai ponsel iPhone XR untuk pentesting (dan saya mendapatkan uang pembelian iPhone XR ini dari reward menemukan bug), saya merasa manfaat iPhone ini kurang sepadan dengan harganya untuk pemakaian sehari-hari (not worth the price).

Buku Baru: Seri Secret Coders

Masih cerita soal buku yang di beli di Big Bad Wolf Desember lalu. Jonathan gak sengaja memilih 1 buku Secret Coders. Sebenarnya beli buku ini awalnya tertarik karena judulnya saja, dan saya malah gak tau isinya berupa komik. Ceritanya mengenai seorang anak usia 12 tahun yang pindah sekolah dan menemukan beberapa misteri yang ternyata bisa dipecahkan dengan pemrograman. Buku ini sejenis pengenalan pemrograman juga buat Jonathan.

Buku yang kami beli di BBW itu hanya buku nomor 2. Waktu kami kembali ke BBW lagi untuk mencari nomor lainnya, kami gak berhasil menemukannya. Akhirnya karena Jonathan sudah baca buku ke-2 itu berkali-kali, kami memutuskan untuk memnbeli buku lainnya dari Amazon.

Buku ini tersedia dalam format Kindle juga. Waktu kami mau beli akhir Februari lalu, Joe baru tahu kalau buku ke-6 baru akan terbit, dan versi kindlenya belum akan langsung ada. Setelah dibanding-bandingkan harganya, beli versi kindle 1 bukunya 7.6 USD, beli 5 buku kindle 39 USD, nah beli buku fisik 6 buku 40.84 USD, plus ongkos kirim ke Chiang Mai sekitar 10 USD totalnya 50.84 USD, jadi harga bukunya lebih mahal sedikit saja daripada versi kindlenya. Akhirnya rasanya masih tetap lebih murah beli buku fisik. Pertimbangan lainnya, baca komik itu lebih enak pakai buku fisik, jadilah kami beli complete box setnya.

Hari ini bukunya tiba, mengingat kami baru memesan sekitar 22 Februari, dan buku ke-6 nya baru terbit akhir Februari, buku ini tergolong cepat sampainya ke Chiang Mai. Sore ini Jonathan langsung menyelesaikan membaca 5 buku yang belum dia baca dalam waktu beberapa jam saja. Saya yakin, besok-besok dia masih akan mengulang-ulang baca buku ini, seperti halnya buku -buku seri lainnya yang dia punya.

Saya juga jadi ikut-ikutan membaca bukunya, dan ya ternyata ceritanya cukup menarik. Buku pertama menjelaskan konsep bilangan biner dengan mengenalkan istilan buka tutup. Kalau terbuka merepresentasikan 1 dan kalau tertutup merepresentasikan 0. Selain mengenalkan konsep biner, buku pertama ini juga mengenalkan pemrograman dengan mengenalkan instruksi Forward sekian langkah, Right or Left sekian derajat, dan sampai pada instruksi Repeat untuk mengulang-ulang instruksi sebanyak angka didepan instruksi Repeat.

Oh ya, cara menjelaskan suatu konsep di buku ini dibuat dalam bentuk percakapan antara 2 orang anak sekolah. Walau dalam cerita ini tokohnya berumur 12 tahun dan Jonathan masih 8 tahun, tapi Jonathan tidak kesulitan mengerti penjelasan dalam buku ini, mungkin karea dia udah mengenal apa itu bilangan biner dan juga udah sering mengganggu papanya minta diajari beberapa dasar pemrograman. Tapi saya merasa membaca buku ini tidak seperti membaca buku pelajaran pemrograman, semuanya dijelaskan dengan cukup sederhana. Ah andaikan saya baca buku ini sebelum kuliah dulu, mungkin saya akan lebih cepat ngerti pemrograman waktu tingkat 1 dulu hahaha.

Kalau melihat Jonathan selalu senang membaca buku-buku seperti ini, rasanya senang banget membelikan dia berbagai buku. Mudah-mudahan saja dia gak bosan dengan buku-buku seperti secret coders ini dan ya siapa tahu nanti besarnya bisa lebih jago mrogram dari papanya hehhehe.

Oh ya, kalau ada yang punya rekomendasi buku lainnya seri belajar pemrograman untuk anak-anak, tuliskan di komentar ya, supaya nambah bahan bacaan Jonathan hehehe.

Seri Buku Murderous Math

Murderous Math adalah seri buku edukasi matematika yang kami beli di Big Bad Wolf book sale. Isi bukunya adalah cerita ngalor ngidul kocak dengan banyak fakta matematika disisipkan di dalamnya. Buku ini juga memiliki banyak ilustrasi yang menarik.

Membahas Fibonacci

Pembahasan matematikanya dalam berbagai serinya cukup luas, dari mulai konsep bilangan (termasuk juga basis bilangan), geometri (konsep pengukuran, pythagoras, 2 dimensi dan 3 dimensi), uang, probabilitas dsb.

Saya tidak tahu apakah anak-anak yang tidak suka matematika akan suka buku ini atau tidak, tapi Jonathan (usia 8 tahun) sudah menyelesaikan membaca kesepuluh buku yang kami beli dan dia sangat menyukainya dan bahkan sering dibaca ulang. Saya yakin jonathan belum mengerti semuanya, tapi itu tidak membuat dia berhenti membaca bukunya karena lucu. Contohnya di dalam salah satu buku ada konsep mengenai persamaan kuadrat. Materi ini terlalu berat untuk anak umur 8 tahun.

Selain terhibur Jonathan jadi penasaran dengan berbagai konsep matematika. Jonathan sempat tertarik dengan Fibonacci, lalu beberapa hari terakhir ini Jonathan sangat penasaran dengan faktorial. Dia mengalikan sendiri sampai faktorial yang cukup besar di kertas. Dia juga penasaran berkali-kali: kenapa 0! = 1, kenapa bukan 0?. Untuk pertanyaan-pertanyaan seperti itu kadang saya harus ngecek dulu ke Google supaya yakin bisa memberi jawaban yang benar.

Dari buku ini saya bisa melihat bahwa meskipun Jonathan masih sering tidak teliti mengerjakan soal-soal penjumlahan dan perkalian di materi home schoolingnya, tapi dia memiliki minat dalam bidang matematika.
Saya juga berusaha memberikan trick question misalnya dalam kasus faktorial: berapa 2 digit terakhir 100! (jawabannya sangat mudah, ini hanya sekedar mengetes logika saja) . Meskipun belum diajarkan di materi homeschoolnya sekarang Jonathan sudah tahu apa itu bilangan pi.

Sebagian isi bukunya membuat Jonathan terlalu excited dan ingin mengajari semua orang trik tertentu. Contohnya mengenai perkalian 1089. Perkalian dengan bilangan ini memiliki properti yang menarik: digit pertama dan kedua menaik, sementara digit ketiga dan keempat menurun.

Waktu Big Bad Wolf book sale kami langsung membeli satu kotak (isi 10) bukunya. Dan kami tidak menyesal membeli langsung sekotak, tapi bagi yang anaknya mungkin tidak suka matematika bisa dicoba dulu membeli satu atau dua buku.

Ralph Breaks the Internet

Sudah lama gak nonton ke bioskop, film ini release tahun 2018 tapi baru bisa nonton film ini sekarang di rumah. Ceritanya masih seputar persahabatan Ralph dan princess Vanellope. Untuk baca plotnya bisa liat di sini. Film ini merupakan sequel dari film Wreck-It Ralph. Tapi kalaupun belum nonton film pertamanya, kita bisa menonton film ini tanpa merasa ada yang kurang. Film pertama kesimpulannya terciptanya persahabatan antara Ralph tokoh permainan arcade Wreck-It Ralph dan Vanellope tokoh pembalap dari game arcade Sugar Rush. Cerita film ke-2 ini cukup menarik menjelaskan mengenai internet. Pertama digambarkan mereka menginstal WiFI di Arcade Center, dan disitulah asal mula Ralph dan Vanellope bisa menjelajahi dunia Internet.

poster Ralph Breaks the Internet, sumber dari internet

Penggambaran Internet yang cukup menarik adalah adanya Mr. KnowsMore untuk tempat bertanya banyak hal. Ada e-bay tempat orang-orang berbelanja dengan sistem lelang dan harus membayar dengan kartu kredit, ada TubeBuzz dimana orang-orang berusaha mendapatkan heart sebanyak-banyaknya dan bisa di monetize. Selain itu ada juga keliatan gedung-gedung dengan lambang Amazon, Google, Pinterest, dan Instagram.

Selain menggambarkan apa saja yang ada di internet, termasuk bagaimana sebuat video viral untuk sesaat dan kemudian digantikan oleh yang lain, ada juga penggambaran bagaimana agen-agen bekerja untuk mengundang orang lain mengklik video yang dipromosikan dengan harapan mendapatkan heart (atau like). Jumlah heart itu bisa dikonversi menjadi sejumlah uang yang bisa dipakai untuk membeli benda beneran. Misi Ralph dan Vanellope adalah membeli spare part untuk Gamenya Vanellope dari e-bay, dan untuk mendapatkan uang untuk membelinya mereka berusaha membuat video yang bisa menghasilkan uang.

Selain bagian menghasilkan uang dari konten video, di film ini juga digambarkan adanya virus yang bisa menginfeksi internet. Namanya virus, tentu saja membuat internet sempat kacau. Virusnya digambarkan karena adanya insecurities dari Ralph yang kemudian insecuritiesnya diduplikasi. Cara film ini menceritakannya tentu saja lebih menarik daripada apa yang saya tuliskan di sini, jadi jangan pikir film ini film teknikal ya, ini film anak-anak hehehe.

Bagian lain yang menarik dari film ini adalah ketika Ralph membaca komen-komen yang ada tentang videonya. Lalu ada yang bilang begini: Rule no 1 di Internet: jangan pernah baca bagian komen. Ya walaupun begitu banyak orang yang memberikan like, di internet akan selalu ada orang yang tidak suka dengan apa yang kita share dan memberi komentar yang negatif. Kalau saya sih menerapkan prinsip lebih baik gak komen daripada ngasih komentar negatif. Godaan untuk menuliskan hal-hal berupa kritik negatif sering ada sih, tapi kalau memang ada hal yang perlu dikritik, lebih baik menyampaikan langsung daripada komentar yang di set publik lalu mengundang orang lain menambah komentar negatif lainnya. Oops jadi curcol, oke balik lagi ke cerita film ya.

Satu hal yang bikin saya terhibur ketika melihat princess dari film-film Disney juga ada di film ini. Cinderella, Rapunzel, Mulan, Elsa, Anna, Snow White dan beberapa tokoh lain yang saya tidak kenal. Awalnya saya pikir putri-putri ini cuma sekedar supaya film ini menarik penonton yang udah menonton film-film Disney sebelumnya, tapi ternyata mereka cukup punya peranan. Lucu ketika melihat mereka berganti baju dengan kaos biasa dan tanpa gaun, lalu bilang ah kenapa baru tau sekarang mengenai baju begini yang sangat nyaman. Saya juga merasa lucu ketika mereka tidak percaya Vanellope seorang putri lalu memberikan beberapa pertanyaan untuk meyakinkan kalau dia putri.

Vanellope: Hi.
[The Princessess all assume attack postions, each with holding an item, specific to their character, as a weapon]
Vanellope: Woah, woah, ladies! I’m a…princess too!
Pocahontas: What kind of a princess are you?
Vanellope: Uh…
Rapunzel: Do you have magic hair?
Vanellope: No.
Elsa: Magic hands?
Vanellope: No.
Cinderella: Do animals talk to you?
Vanellope: No.
Snow White: Were you poisoned?
Vanellope: No.
Aurora, Tiana: Cursed?
Vanellope: No!
Rapunzel, Belle: Kidnapped or enslaved? 
Vanellope: No! Are you guys okay? Should I call the police?
Rapunzel: Do people assume all your problems got solved because a big strong man showed up?
Vanellope: Yes! What is up with that?
Pocahontas, Merida, Rapunzel, Elsa, Aurora, Moana: She is a princess!
[Snow White pokes her head in and sings a few happy notes]

percakapan Vanellope dengan putri-putri Disney

Selain percakapannya putri ini, ada banyak bagian lain yang cukup menarik. Tapi dari keseluruhan film ini yang paling saya suka adalah persahabatan antara Ralph dan Vanellope. Mereka tidak memaksakan bersahabat itu harus selalu bersama-sama, dan walaupun tidak berada di arcade yang sama, mereka tetap menjalin komunikasi dan bertukar cerita secara rutin. Saya jadi agak merenung, mengingat teman-teman yang dulu terasa sangat dekat tapi sekarang saya bahkan gak tahu kabarnya karena walaupun mereka punya akses ke Internet, tapi saya merasa setelah gak ngobrol sekian lama jadi gak tau juga mau mulai bertanya dari mana. Kalau saya nanya kebanyakan ntar saya disangka interogasi lagi hehehe.

Anyway, film ini hiburan menarik untuk mengisi akhir pekan di tonton dengan anak-anak. Kalau anaknya sudah agak besar, setelah nonton bisa dilanjutkan pelajaran pengenalan internet dan bagaimana supaya tetap aman di Internet hehehe.

FreeBSD di Laptop

Sudah sebulan saya memakai FreeBSD di Laptop Thinkpad X230 dan sepertinya sebentar lagi akan saya ganti menjadi Linux. Secara umum FreeBSD di laptop sudah cukup baik, tapi ada banyak juga kelemahan FreeBSD untuk dipakai sehari-hari.

Ada banyak hal yang menurut saya bagus di FreeBSD: Filesystem ZFS sangat mudah digunakan dan untuk kasus laptop, fitur kompresinya berguna untuk menghemat disk space. Berbagai konfigurasi di FreeBSD sangat mudah dilakukan (mengingatkan pada Linux, terutama sebelum adanya systemd).

Untuk kasus programming: tergantung apa yang ingin Anda lakukan, supportnya bisa benar-benar bagus sampai tidak bisa sama sekali. Contohnya: NodeJS versi terbaru bisa dijalankan dengan mudah (walau tidak dijamin juga masalah modul-modul yang mengandung native code), tapi JDK terbaru (JDK 11) belum diporting ke FreeBSD. Bahkan terakhir yang diporting adalah JDK 9.

Teorinya FreeBSD bisa menjalankan berbagai program Linux tanpa perlu compile ulang. Kenyataannya banyak sekali binary Linux yang tidak jalan, termasuk juga JDK 11 untuk Linux. Alternatif jika ingin menjalankan program Linux adalah dengan Virtual Machine. Sayangnya support terhadap teknologi virtualisasi juga terbatas di FreeBSD.

Support untuk menjadi Xen Host masih terbatas (sampai ada warning mengenai error di dokumentasi resminya). Untungnya masih ada Virtual Box yang bisa dipakai untuk menjalankan Virtual Machine Linux di dalam FreeBSD.

Awalnya saya ingin memahami hal-hal apa saja yang masih kurang bagus di FreeBSD dan kontribusi apa yang bisa saya berikan. Sekitar 10 tahun yang lalu saya pernah berkontribusi, tapi merasa perlu memakai lagi FreeBSD karena tidak tahu state terbaru.

Ternyata hal-hal yang masih bisa diperbaiki sangat banyak sekali, sampai tidak tahu harus mulai dari mana. Di sisi kernel contohnya hibernation belum bisa dilakukan. Di awal saya bisa hidup cukup dengan:

  • emacs
  • browser Firefox dan Chromium
  • telegram
  • octave (untuk mengerjakan beberapa soal Machine Learning Coursera)

Tapi ketika perlu mengerjakan beberapa proyek yang mudah dilakukan di Linux (misalnya mengkompilasi sesuatu untuk ESP32 atau sekedar menginstall tensorflow), hal ini jadi sulit di FreeBSD. Secara umum: untuk hal-hal yang masuk dalam sistem FreeBSD, biasanya supportnya sangat bagus, tapi untuk hal-hal yang di luar FreeBSD (contohnya ESP32 itu) maka supportnya biasanya kurang bagus.

Mungkin di masa depan saya akan mencoba lagi memakai FreeBSD di laptop, tapi saat ini saya berencana untuk menggantinya dengan Linux.
Sekarang ini waktu saya di dalam VM Linux dalam FreeBSD cukup banyak, jadi daripada menghabiskan batere menjalankan VM lebih masuk akan kembali ke Linux. Eksperimen memakai FreeBSD ini cukup menyenangkan, dan kemungkinan besar saya akan menginstall FreeBSD di server saya, sepertinya saat ini FreeBSD memang masih lebih cocok di server dibanding Desktop.

Ghidra Tools Reverse Engineering dari NSA

Baru-baru ini NSA (National Security Agency) Amerika merilis tools RE baru bernama Ghidra yang gratis. Rencananya ini akan open source, tapi saat ini repositorynya masih kosong. Ghidra ini merupakan saingan IDA Pro yang saat ini harganya sangat mahal. Sebagai informasi: harga license IDA Pro paling murah ratusan USD (versi starter edition), sampai totalnya puluhan ribu USD jika kita ingin paket lengkap (IDA Pro dengan semua plugin decompilernya).

Ghidra

Tulisan kali ini merupakan kesan pertama memakai Ghidra. Perlu dicatat bahwa pekerjaan utama saya bukan reversing. Ini sekedar hobi buat saya. namun demikian saya sudah melakukan reversing beraneka hal baik yang populer seperti Windows/Linux/Mac/Android/iOS maupun berbagai target yang unik, misalnya hardware Pokemon Go Plus (berbasis ARM), berbagai challenge Flare-On (campuran), Challenge BEVX (Arm), dan RHME (AVR).

Sebelum memakai Ghidra ini saya sudah mencoba berbagai tool disassembler/decompiler, termasuk juga: IDA Pro, retdec, radare (dan interface GUI-nya: Cutter), Hopper, Binary Ninja. Bahkan untuk menyelesaikan challenge RHME, saya memakai objdump + editor teks karena tidak ada tool yang bagus untuk reversing AVR. Secara singkat: fitur Ghidra ini sangat bagus dibandingkan berbagai tool yang sudah pernah saya coba.

Ghidra ditulis dalam bahasa Java dengan GUI Swing dan tentunya memakai beberapa library native juga. Perlu diperhatikan: Ghidra ini butuh JDK11, jadi ketika mendownload Ghidra, jangan lupa sambil download JDK-nya dari Oracle.

Daftar prosessor yang didukung Ghidra. IDA Pro mendukung lebih banyak prosessor, tapi tidak semuanya bisa dekompilasi, sedangkan Ghidra bisa mendekompilasi apa saja

Hal pertama yang akan saya bahas adalah decompilernya. Ada banyak tool decompiler di dunia ini, tapi selain IDA Pro, hasilnya banyak yang kacau dan sangat menyesatkan. Hasil dekompilasi Ghidra ini sangat bagus, dan dibandingkan IDA Pro: dia mendukung dekompilasi semua arsitektur yang disupport (IDA hanya mendukung: X86 32/64 bit, ARM 32/64 bit, PowerPC 32/64 bit). Contohnya jika kita ingin melakukan reverse engineering router (banyak yang memakai MIPS) maka dekompilasi bisa dilakukan.

Dekompilasi kode MIPS dengan struktur flow-control yang kompleks

Untuk arsitektur 8 bit yang saya coba, dekompilasi bisa dilakukan, tapi sering kali tetap sulit dibaca manusia. Jadi dengan adanya decompiler ini tidak berarti seorang pemula tiba-tiba akan bisa melakukan RE apa saja.

Dekompilasi challenge AVR Secret Sauce dari RHME

Challenge Flare On kadang memberikan soal DOS (X86) 16 bit. IDA Pro tidak mendukung dekompilasi kode 16 bit, tapi Ghidra bisa melakukannya. Sayangnya tool ini tidak memahami parameter untuk interrupt. Untungnya decompilernya memiliki kelebihan lain: jika kita mengklik pada sebuah instruksi, maka instruksi yang bersangkutan akan dihighlight di bagian disassembly, jadi kita bisa melihat secara manual parameter untuk sebuah interrupt.

Ghidra ini mendukung sistem plugin, jadi menambahkan support processor baru dapat dilakukan dengan relatif mudah, setidaknya itu kesan pertama ketika membaca dokumentasinya. IDA Pro juga memiliki SDK, tapi SDK-nya sangat ribet. Di masa depan sepertinya akan ada semakin banyak prosessor baru yang didukung.

Salah satu kelemahan besar IDA Pro adalah tidak adanya kemampuan Undo/Redo. Artinya jika kita salah menekan “U” (undefine) di satu blok kode yang sudah kita beri komentar atau kita ubah tipe datanya, tiba-tiba kita bisa kehilangan semuanya. Menekan “C” lagi bisa mengembalikan data menjadi kode, tapi semua perubahan lain sudah hilang. Dalam kasus tertentu bahkan ini membuat semua jadi error. Jadi biasanya flow kerja memakai ida pro adalah: jika kita sudah puas dengan sesuatu kita harus save, dan jika membuat kesalahan: load ulang. Ghidra mendukung Undo/Redo, jadi tidak ada masalah ini.

Membahas mengenai shortcut “U” dan “C” di atas mengingatkan saya pada masalah shortcut: berbagai shortcut Ghidra berbeda dengan IDA Pro. IDA Pro karena muncul pertama kali, maka shortcutnya ditiru berbagai tool lain. Tapi Ghidra ini memakai shortcut yang berbeda yang membuat saya harus berpikir keras. Contoh yang mengganggu: di IDA Pro “C” adalah untuk mengubah menjadi kode dan “D” untuk mengubah menjadi data. Di Ghidra “D” dipakai untuk melakukan disassembly (mengubah menjadi kode) dan “C” dipakai untuk Clear Code bytes (mengubah menjadi undefined).

Contoh kecil lain: X untuk cross reference di berbagai tool menjadi Control-Shift-F. Sebenarnya ini semua bisa diubah (ada opsinya) tapi defaultnya terasa membingungkan.

Ada fitur yang akan berguna untuk team: shared project. Ini sesuatu yang tidak bisa dilakukan oleh IDA Pro ataupun tools disassembler/decompiler lain. Karena saya tidak pernah mengerjakan reverse engineering bersama orang lain, maka saya tidak mencoba fitur ini.

Dalam mode debug, ada sedikit kecerobohan dalam skrip startup yang mensetup JDWP (Java Debug Wire Protocol) sehingga listen ke * (semua interface) dan bukan ke 127.0.0.1. Dengan ini orang yang berada di jaringan yang sama bisa mengeksekusi kode di mesin kita melalui port itu. Ini mudah diperbaiki, hanya perlu edit skrip launchernya saja. Sebagian orang menyebut ini backdoor, tapi menurut saya ini sekedar kecerobohan karena lupa untuk setup debugging (gunanya JDWP adalah untuk mendebug program Java). Perhatikan sekali lagi: ini hanya akan terbuka dalam mode debug, defaultnya mode ini tidak aktif, kita harus secara manual menjalankan dari command line dengan parameter tertentu untuk masuk mode debug ini.

Meskipun Dalvik tercantum dalam daftar prosessor, tapi saya tidak berhasil meload classes.dex dari file APK (walaupun saya malah bisa membuka berbagai library native yang ada di dalam APK). File JAR bisa dibuka, tpai tool ini tidak lebih baik dari decompiler khusus untuk Java. Jadi secara umum: untuk tujuan khusus, Ghidra ini masih kurang bagus dibandingkan tool lain.

Demikian review singkat tool Ghidra ini. Saya berencana akan lebih banyak lagi memakai tool ini untuk menggantikan berbagai tool yang saya pakai saat ini. Saya berharap source code lengkap Ghidra segera dirilis sehingga akan ada banyak kontribusi dari banyak pihak agar Ghidra lebih nyaman dipakai dan mendukung lebih banyak arsitektur.