Oleh: Imam Riyanto, Praktisi IT, Kepala Divisi Litbang Kemandirian Teknologi TANDEF
Dasar
Suatu sistem dapat digambarkan sebagai black box yang kita tidak tahu apa isinya. Namun kita dapat memperkirakan komponen yang menyusun sistem dalam black box tersebut dengan mempelajari output yang dihasilkan setelah mendapat input tertentu yang kita ketahui.
Mengurai Black Box
Black box yang akan kita urai tidak sepenuhnya “gelap” (black), karena secara sistem kita dapat analisa dari beberapa pendekatan tergantung dengan type rangkaian yang digunakan dalam black box tersebut. Bahkan kita dapat menentukan type black box tersebut dari fungsi, jika fungsinya menguatkan sinyal atau lainnya yang menggunakan sinyal analog kita dapat melakukan pendekatan analog, jika fungsinya adalah mengolah data atau menggunakan sinyal digital kemungkinan black box tersebut adalah sistem digital atau sistem microprocessor yang bisa kita analisa dengan pendekatan digital.
Pendekatan Analog
Analog sistem lebih mudah dalah hal penyusunan kembali rangkaian yang digunakan.
Dimisalkan f(x) adalah output yang dihasilkan setelah input f(y) dan komponen lain yang diperlukan diketahui dalam perhitungan:
F(x) =F(y) + c
Kita bisa memberikan satuan-satuan yang telah diketahui perhitungannya, misal kita dapat mengukur output arus terhadap input tegangan agar kita dapat mengetahui impendansi sistem.
R = V/I
Dengan memberikan input AC kita dapat menghitung komponen impendansi real (R) dan komponen reaktansi imajiner (L+C). Dari nilai-nilai tersebut kita dapat membangun sistem yang mempunyai karakteristik sama.
Untuk sistem lain misalnya suspensi kita dapat menganalogikan dengan komponen elektronik yang bersesuaian.
Untuk sistem dengan transistor kita dapat mengetahui karakteristik dengan memberikan input yang berbeda. Kebanyakan transistor berperan baik sebagai amplifier juga sebagai switch kecepatan tinggi. Untuk mengetahui daerah kerja transistor kita dapat menghitung output yang dihasilkan berdasarkan input dan dari komponen lainnya seperti resistor yang tersambung (yang dapat diukur). Setiap type transistor mempunyai karakteristik kerja sendiri. Kita dapat mengetahui type mana yang digunakan dengan menggambar karakteristik dan daerah kerja transistor tersebut kemudian dengan menggunakan subtitusi type transistor dengan karakteristik yang serupa.
Pendekatan Digital
Untuk sistem digital kita memerlukan bantuan digital tools seperti logic analyzer baik untuk mengetahui output maupun input. Kemudian kita bisa bandingkan input output tadi dengan skema digital berupa Karnaugh Maps sehingga kita dapat mengetahui operasi and atau or atau kombinasi keduanya atau operasi lain seperti xor. Lalu kita dapat menyusun suatu rangkaian berdasar skema tersebut. Analisa terhadap multiple input dan multiple output dapat kita kembangkan lebih lanjut.
System microprocessor adalah pengembangan lanjut dari sistem digital. Hampir semua sistem digital yang digunakan sekarang menggunakan microprocessor. Input dan ouput dari sistem microprocessor adalah data digital. Dari 1 bit hingga 64 bit (tidak menutup kemungkinan ukuran data dari processor yang lebih lanjut lebih besar dari 64 bit apalagi yang digunakan untuk keperluan militer). Besar data bit yang paling banyak digunakan adalah 8 bit, processor yang menggunakan ukuran data lebih besar tetap mempertahankan kompatibitas dengan processor 8 bit terdahulu dengan menerapkan indexing (misal processor intel). Setiap processor mempunyai bus data dan bus address atau general purpose port yang dapat berfungsi sebagai jalur data maupun address maupun jalur digital lainnya. Makin besar kemampuan processor makin besar pula ukuran data yang dapat diolah dan makin besar kapasitas memori yang dapat digunakan. Microprocessor untuk embedded sistem yang sekarang banyak digunakan adalah dari processor RISC 16 bit dan 32 bit (processor 64 bit sudah mulai umum digunakan untuk keperluan komersial misalnya pada processor quad core intel).
Umumnya sistem mikroprocesor sekarang melibatkan lebih dari 1 processor. Processor yang paling advance biasanya menjadi core sistem (master). Processor lain dengan unjuk kerja lebih subordinat biasanya menjadi slave processor. Slave processor bisa digunakan untuk mendigitalkan input analog seperti dari sensor-sensor dan switch. Ataupun digunakan untuk mengendalikan output seperti motor, relay ataupun LCD screen.
Untuk port sinyal yang diketahui, kita harus membuat sistem microprocessor sendiri yang dapat mengambil output dari sistem microprocessor lainnya, yang kemudian dapat ditampilkan dan diterjemahkan menjadi sesuatu yang kita mengerti. Yang paling mudah untuk di ambil adalah jalur komunikasi serial. Untuk jalur data parallel kita membutuhkan sistem microprocessor yang mampu melakukan parallel tap yang dapat menampilkan semua bit pada jalur data parallel dan jika diperlukan untuk mengkonversi data tersebut menjadi data serial. Kemudian data ini kita simpan dalam database untuk kita analisa kemudian.
Untuk type processor yang diketahui data hasil tersebut bisa kita bandingkan dengan instruction code dari processor tersebut. Sampai saat sekarang processor yang digunakan untuk keperluan militer mirip dengan yang digunakan untuk keperluan komersial maupun medis dengan standard electrical characteristic dan environment durability yang jauh lebih baik. Dengan menganalisa database dan instruction code yang digunakan kita dapat menyelediki perhitungan-perhitungan yang dilakukan. Untuk tipe microprocessor yang kita tidak ketahui memang akan lebih sulit menyusun instruction code nya, kita harus men tap semua jalur digital dari microprocessor tersebut. Jalur-jalur untuk power supply (Vcc, Vdd, Vee dan Gnd) dapat diketahui dari pengukuran. Umumnya jalur data dan address maupun general purpose port memiliki pull up resistor, dengan pengukuran kita dapat menentukan jalur data dan address dari processor. Selanjutnya data tersebut harus kita analisa lagi agar kita bisa menentukan yang mana jalur data dan yang mana jalur address baru kemudian kita dapat menyusun database yang memperkirakan instruction code dan data yang digunakan.
Tapi manufacturer dari sistem microprocessor tersebut tentu tidak menginginkan sistemnya terbuka dengan mudah. Mereka pasti akan menanamkan sistem security dalam sistem nya. Dari data enkripsi hingga firmware yang dikunci sehingga kita tidak dapat mengetahui isi memori programnya. Yang secara “normal” tidak akan dapat kita pecahkan, disinilah peran inteligen dibutuhkan. Kita bisa membangun sistem kita sendiri berdasarkan tapping informasi yang kita lakukan sebelumnya. Tentu saja ini akan jauh lebih sulit, tapi dengan research yang intens kita dapat mensintesis sendiri sistem microprocessor yang bisa jadi tidak sama namun dapat melakukan pekerjaan yang sama dengan sistem microprocessor yang ingin kita reverse engineering.
Kesimpulan
Tulisan ini hanya garis besar dari yang dapat kita lakukan. Engineer kita pada bidang masing-masing baik itu mesin, elektronik maupun computer cukup memiliki kapabilitas. Saya yakin jika resources tersebut bisa kita kumpulkan, kemandirian kita pada teknologi khususnya pada teknologi kemiliteran dapat lebih ditingkatkan. Reverse engineering bukan satu-satunya caranya untuk mendapatkan suatu teknologi, ada cara lain yang lebih “sopan” misalnya dengan pembelian lisensi seperti yang sudah pernah dilakukan untuk senjata SS1 dari FN Swedia oleh PT. Pindad dan desain SIGMA untuk kapal laut oleh PT. PAL, juga CN235 adalah lisensi CASA spanyol oleh PT. Dirgantara Indonesia.
Recent comments
1 day 6 hours ago
5 days 13 hours ago
5 days 20 hours ago
1 week 10 hours ago
1 week 4 days ago
2 weeks 3 days ago
2 weeks 3 days ago
2 weeks 5 days ago
2 weeks 6 days ago
3 weeks 16 hours ago