Pengantar Embedded Reverse Engineering

advertisement
Pengantar Embedded Reverse Engineering
Drubicza
Indonesian Research and Development Center
March 19, 2015
Abstract
Tutorial ini ditujukan kepada rekan-rekan yang berminat untuk mempelajari hal yang berkaitan dengan embedded device reverse engineering
mulai dari pengenalan perlengkapan yang dapat digunakan untuk membantu proses reverse engineering, beberapa protokol komunikasi dan antarmuka yang sering digunakan pada perangkat embedded serta beberapa
hal penting lainnya. Reverse engineering terhadap perangkat embedded
itu sendiri bertujuan untuk mengetahui cara kerjanya, mencari kemungkinan celah keamanan serta kemungkinan mengaktifkan atau menambahkan
fitur yang terdapat pada perangkat tersebut.
1
1
Disclaimer
Tutorial ini hanya untuk tujuan pembelajaran semata, penulis tidak bertanggungjawab atas penggunaan maupun penyalahgunaan tutorial ini. Perlu dicatat
bahwa penulis tidak memiliki latar belakang pengetahuan elektronika, dan semua yang ada pada tulisan ini hanya merupakan rangkuman dari pengalaman
dan pelajaran yang penulis dapatkan secara otodidak jadi kemungkinan banyak
penjelasan yang kurang tepat atau bahkan salah.
2
2
Tools of Trade
Berikut ini adalah beberapa perlengkapan yang dapat membantu dalam proses
embedded reversing:
Multimeter
Seperti namanya, alat ini digunakan untuk berbagai jenis pengukuran,
diantaranya kuat arus, voltase (AC/DC), tahanan, dan ada juga yang
menyediakan fitur untuk melakukan pengecekan transistor. Jika Anda
berniat untuk membeli multimeter, ada baiknya Anda membeli multimeter jenis digital dan akan lebih baik lagi jika Anda membeli tipe autorange
karena Anda tidak perlu mengatur lagi batas yang ingin Anda ukur. Multimeter profesional biasanya harganya relatif cukup mahal dan ada beberapa merk terkenal yang sering digunakan, yaitu Fluke, Gossen, Agilent,
UNI-T dan lain sebagainya. Anda tidak perlu menggunakan multimeter profesional jika tujuan Anda hanya untuk hobby yang tidak terlalu
serius. Untuk entry level multimeter, Anda dapat menggunakan produk
dari UNI-T, Extech, dan lain-lain.
Solder
Solder digunakan untuk menghubungkan komponen menggunakan timah
solder. Dalam proses embeded reversing, terkadang kita perlu untuk menyolder kabel jumper ataupun melepaskan komponen dari papan rangkaian (PCB), untuk itu dibutuhkan solder. Ada berbagai macam solder,
namun sebaiknya gunakan solder yang memiliki pengatur suhu untuk
memudahkan proses penyolderan. Untuk mata solder, sebaiknya gunakan
sesuai kebutuhan, namun perlu diingat bahwa mata solder lancip (tajam)
lebih lambat dalam mengantarkan panas dibandingkan mata solder pipih
(chisel). Demikian pula jika Anda menggunakan timah solder bebas timbal (lead free), maka Anda membutuhkan solder dengan suhu yang lebih
tinggi dibandingkan jika Anda menggunakan timah solder biasa. Untuk
tahap awal, Anda dapat menggunakan solder yang mudah dijumpai dipasaran seperti merk goot, dekko dan lain-lain yang tidak memiliki pengatur suhu. Namun, jika Anda memiliki dana lebih, ada baiknya menggunakan soldering station yang telah dilengkapi dengan blower (solder uap)
untuk memudahkan jika Anda harus berurusan dengan komponen Surface
Mount Technology(SMT/SMD) yaitu komponen elektronika yang metode
pemasangannya cukup dengan diletakkan pada papan sirkuit tanpa harus
melubangi papan sirkuit tersebut. Untuk hal tersebut, Anda dapat menggunakan solder seperti Atten seri 8586. Adapun untuk keperluan profesional, Anda dapat menggunakan solder dengan kualitas lebih baik pula,
misalnya merk JBC, Hakko, Metcal, Weller, Ersa dan lain sebagainya.
3
Timah Solder
Ada 2 jenis timah solder yang sering digunakan, yaitu timah solder bebas timbal (lead free) dan timah solder yang mengandung timbal. Selain
itu, ukuran diameter timah solder juga beragam, dan yang umum ditemui
adalah timah solder yang memiliki diameter 0,8 mm. Untuk kebutuhan
sehari-hari, Anda dapat menggunakan tipe 60/40 (60 persen timah, 40
persen timbal) rosin core, artinya pada bagian tengah timah solder terdapat rosin flux yang fungsinya untuk mempermudah proses penyolderan
dengan hasil yang lebih bagus. Selain menggunakan rosin core solder, ada
juga rosin flux yang dijual terpisah dan sangat membantu proses penyolderan dan kini tersedia dalam bentuk yang mudah terlarut dalam air
(water soluble flux) yang memudahkan dalam membersihkan residunya.
Solder Wick
Solder wick fungsinya untuk membantu membersihkan sisa-sisa solder
yang berlebihan atau mengangkat solder dari komponen sehingga komponen elektronik dapat diangkat/dilepas dengan mudah dari papan sirkuit
(PCB). Selain menggunakan solder wick, Anda juga dapat menggunakan
vacuum khususnya jika Anda mengerjakan komponen-komponen throughhole.
Bus Pirate
Bus pirate adalah perangkat yang dapat digunakan untuk mengamati dan
berinteraksi menggunakan berbagai protokol komunikasi yang umum digunakan oleh perangkat elektronik, misalnya UART, SPI, I2C dan lain
sebagainya. Anda dapat membaca secara lengkap dokumentasi mengenai
bus pirate pada situs dangerous prototypes.
Oscilloscope
Oscilloscope adalah perangkat yang dapat digunakan untuk mengamati
perubahan sinyal dalam jangka waktu tertentu. Sinyal pada oscilloscope
ditampilkan dalam bentuk perbandingan voltase terhadap waktu. Saat
ini ada berbagai jenis oscilloscope yang beredar, untuk tahap awal, Anda
dapat menggunakan USB oscilloscope, yaitu oscilloscope yang terhubung
dengan komputer dan Anda menggunakan aplikasi pada komputer untuk
menampilkan sinyal yang dikirimkan oleh USB oscilloscope. Selain itu,
ada pula bench oscilloscope, yaitu oscilloscope yang memiliki monitor yang
terintegrasi.
4
Logic Analyzer
Logic analyzer digunakan untuk melakukan analisis terhadap sinyal logic
pada sebuah sistem digital. Secara sederhana, sinyal yang akan dianalisa terlebih dahulu disimpan (capture/sampling), baru kemudian dapat
dilakukan decoding sesuai dengan protokol yang digunakan oleh sample
tersebut. Sample yang disimpan oleh logic analyzer ada yang bersifat sequential (uncompressed) yaitu tersimpan dalam kondisi apa adanya dan
ada pula yang melalui proses kompresi (compressed samples) dan untuk melakukan sampling, logic analyzer menggunakan trigger yang akan
menentukan kapan harus mulai menangkap sinyal yang akan dijadikan
sample untuk dianalisa. Ada 2 buah mode trigger yang digunakan oleh
logic analyzer yaitu mode timing dan mode state. Trigger yang umum digunakan adalah trigger menggunakan timing mode. Logic analyzer yang
umum digunakan diantaranya Saleae Logic, Open Bench Logic Sniffer,
Asix Sigma2, USBee-SX dan lain sebagainya. Sedangkan pada sisi front
end client software, terdapat beberapa pilihan alternatif dan bersifat open
source diantaranya OLS dan sigrok.
JTAG Adapter
Sebenarnya Anda dapat menggunakan bus pirate sebagai jtag adapter
disertai dengan openOCD. Namun, jika Anda tidak memiliki bus pirate,
Anda dapat menggunakan jtag adapter lainnya untuk melakukan komunikasi/debugging melalui protokol JTAG. Ada banyak jenis JTAG adapter
yang dapat Anda gunakan diantaranya GoodFET, jtagulator, Die Datenkrake,
Flyswatter2, Bus Blaster dan lain-lain. Untuk memahami lebih lanjut
mengenai JTAG, Anda dapat membaca referensi berupa standard yang
digunakan yaitu IEEE 1149.1.
Binwalk (Software)
Binwalk adalah aplikasi opensource yang dapat digunakan untuk melakukan
analisa dan mengekstrak firmware yang terdapat pada perangkat embedded. Analisa firmware dilakukan untuk mencari tahu fungsi-fungsi yang
kadang tidak terdapat pada dokumentasi, termasuk kemungkinan adanya
backdoor yang disisipkan oleh pembuat perngkat embedded.
Flashrom (Software)
Flashrom adalah aplikasi opensource yang dapat digunakan untuk membaca, menulis dan melakukan verifikasi terhadap data yang terdapat pada
flash chip (EEPROM). Flash chip pada umumnya berisi firmware dan contoh yang umum ditemukan adalah chip BIOS pada komputer. Flashrom
itu sendiri sifatnya sangat fleksibel dan mendukung banyak jenis flash chip
5
dan beragam hardware programmer, serta dapat digunakan pada beberapa jenis sistem operasi.
Datasheet
Datasheet berisi informasi mengenai suatu komponen dan biasanya disertai dengan schematic yang direkomendasikan untuk komponen tesebut.
Datasheet merupakan sumber informasi yang sangat penting dalam proses
embedded reversing. Contoh sederhana, datasheet mengenai suatu Integrated Circuit (IC) pada umumnya berisi informasi mengenai fungsi dari
setiap pin yang ada pada IC tersebut. Misalnya sebuah IC memiliki pin
untuk komunikasi menggunakan serial, biasanya kita dapat memperoleh
informasi untuk memudahkan proses debugging dari pin Tx (transmit)
yang ada pada IC tersebut dengan cara sniffing. Pin lain yang umum
digunakan oleh IC saat ini adalah pin JTAG. Pin JTAG memiliki banyak
fungsi, diantaranya adalah untuk debugging, menulis dan mengekstrak
firmware yang berada di dalam IC, dan dapat pula digunakan untuk enumerasi komponen-komponen lain yang terhubung dengan IC tersebut.
Perlengkapan Lain
Perlengkapan lain yang sebaiknya Anda miliki adalah seperangkat obeng,
tang potong, tang jepit, pinset, kaca pembesar, breadboard, kabel jumper,
hot glue gun, LCR meter, frequency counter, dremel dan masih banyak
perangkat pendukung lainnya. Selain itu, Anda wajib memiliki pengetahuan mengenai elektronika dasar, khususnya fungsi dari komponen diskrit
seperti transistor, resistor, kapasitor dan lain-lain, serta pengetahuan mengenai arsitektur mikrokontroller/mikroprosesor yang umum digunakan pada
perangkat embedded.
6
3
Pengetahuan Dasar Elektronika
Sebagai tahap awal, Anda perlu mengenali beberapa komponen dasar elektronika berupa komponen pasif dan fungsinya masing-masing:
Resistor
Resistor atau tahanan adalah komponen elektronika yang fungsi dasarnya
untuk menghambat arus pada suatu rangkaian. Secara sederhana, fungsi
resistor dapat diandaikan seperti ketika Anda minum teh botol menggunakan sedotan, dimana sedotan tersebut kemudian Anda jepit menggunakan jari sehingga teh yang sampai ke mulut Anda jumlahnya menjadi
sedikit. Resistor yang umum digunakan untuk hobby adalah tipe through
hole dan tipenya adalah carbon film dan metal film. Perbedaan mendasar
antara resistor carbon film dan metal film adalah nilai toleransinya. Resistor carbon film secara umum memiliki nilai toleransi 5% sedangkan
resistor metal film nilai toleransinya lebih kecil yaitu 1%. Keuntungan
menggunakan resistor metal film adalah nilai tahanannya lebih akurat
dibandingkan resistor carbon film. Dari segi penampakan pun, kedua jenis resistor tersebut dapat dibedakan dari warna dasarnya, dimana resistor
carbon film memiliki warna dasar cokelat muda sedangkan resistor metal
film memiliki warna dasar biru muda. Untuk menghitung nilai tahanan
resistor, dapat Anda lakukan secara manual yaitu dengan membaca strip
lingkaran yang ada pada permukaan resistor. Resistor berhubungan erat
dengan hukum Ohm yaitu persamaan:
V =I ×R
Dimana V adalah tegangan listrik atau voltase yang memiliki satuan Volt.
I adalah kuat arus, satuannya Ampere. R adalah tahanan yang satuannya
adalah ohm. Hambatan yang dihasilkan oleh resistor jika dipasang secara
seri adalah jumlah tahanan tiap resistor dengan persamaan:
Rtotal = R1 + R2 + R3 + ... + Rn
sedangkan hambatan yang dihasilkan oleh resistor yang dipasang secara
paralel adalah jumlah dari satu dibagi tahanan tiap resistor dengan persamaan sebagai berikut:
Rtotal =
1
1
1
1
+
+
+ ... +
R1
R2
R3
Rn
Pemahaman mengenai fungsi resistor akan sangat membantu Anda dalam
proses embedded reverse engineering, misalnya dengan mengamati letak
pull-up resistor pada sebuah rangkaian, maka Anda bisa mendapatkan
sedikit gambaran mengenai cara kerja komponen yang berada di sekitarnya.
7
Kapasitor
Kapasitor adalah komponen diskrit yang secara sederhana fungsinya adalah
untuk menyimpan energi dalam bentuk medan listrik. Ukuran kapasitor
dihitung dengan menggunakan satuan Farad. Kapasitor ada yang memiliki polaritas dan ada pula yang tidak memiliki polaritas. Memiliki polaritas artinya pin atau kaki pada kapasitor tersebut terdiri atas pin positif dan pin negatif, sehingga tidak boleh dipasang secara terbalik pada
rangkaian elektronik. Pada umumnya kapasitor yang memiliki polaritas
adalah kapasitor tipe elektrolit sedangkan kapasitor tanpa polarisasi pada
umumnya berupa kapasitor keramik. Kapasitor mempunyai banyak fungsi
pada rangkaian elektronik, misalnya untuk mengurangi noise pada jalur
yang dilalui oleh tegangan/arus listrik dan biasanya disebut dengan istilah kapasitor bypass/decoupling dimana kapasitor yang umum digunakan
memiliki ukuran 10 F, 1 F dan 100 nF. Selain itu kapasitor juga banyak
digunakan pada rangkaian filter sinyal, misalnya pada rangkaian yang
berkaitan dengan sinyal audio dan frekuensi radio. Beberapa jenis filter
yang umum digunakan antara lain: low pass filter yang berfungsi untuk
meneruskan sinyal yang memiliki frekuensi rendah, sedangkan high pass
filter fungsinya untuk meneruskan sinyal yang memiliki frekuensi tinggi,
ada pula band pass filter yang digunakan untuk menyaring sinyal dengan
batasan tertentu. Sebagai catatan, Anda perlu berhati-hati dengan kapasitor yang memiliki nilai tegangan besar karena dapat mengakibatkan
kejutan listrik yang dapat membahayakan jiwa Anda. Sebelum melakukan
kegiatan yang berkaitan dengan kapasitor bertegangan tinggi tersebut, sebaiknya Anda melakukan shorting, yaitu menghubungkan kedua pin/kaki
kapasitor misalnya menggunakan obeng yang memiliki isolator.
Diode
Secara sederhana, salah satu fungsi utama dioda adalah sebagai penyearah
arus yaitu mengubah arus bolak-balik menjadi arus searah. Jadi diode itu
ibarat katup yang akan menyebabkan fluida mengalir ke satu arah dan
menahan aliran dari arah yang sebaliknya, namun pada komponen elektronik, fluida tersebut adalah arus yang mengalir. Selain itu, ada juga
jenis dioda yang digunakan untuk menstabilkan tegangan yang biasanya
disebut dengan istilah dioda zener. Adapun cara kerja dioda zener adalah
membiarkan arus mengalir selama tegangannya berada pada jangkauan
operasionalnya dan jika melebihi tegangan operasionalnya maka diode
zener tersebut akan memastikan bahwa arus yang keluar tidak melebihi
jangkauan operasionalnya. Dioda juga terdapat dalam bentuk lain, misalnya sensor cahaya atau lazim disebut photodiode dan kebalikannya yaitu
dalam bentuk lampu yang sering disingkat LED (Light Emitting Diode).
8
Transistor
Transistor jika diandaikan secara sederhana, ibarat keran air. Jika Anda
memutar keran, maka air akan mengalir. Transistor memiliki 3 buah kaki.
Pada transistor jenis BJT (Bipolar Junction Transistor), ketiga kaki tersebut diberi nama base, collector dan emitter. Sedangkan pada transistor jenis FET (Field Effect Transistor), ketiga kakinya diberi nama gate, source
dan drain. Salah satu perbedaan antara transistor BJT dan FET adalah
transistor tipe BJT bersifat aktif.
Crystal Oscillator
Crystal oscillator atau biasa disingkat xtal adalah komponen yang umum
digunakan untuk membangkitkan clock signal pada rangkaian elektronik
serta untuk menstabilkan frekuensi pada perangkat yang berhubungan
dengan gelombang radio (RF). Crystal oscillator pada rangkaian elektronik biasanya memiliki dua buah kapasitor pada tiap kakinya yang berfungsi
sebagai beban (load). Ada beberapa alternatif selain menggunakan crystal oscillator, diantaranya ceramic resonator yang pada prinsipnya mirip
dengan crystal oscillator namun memiliki kapasitor load internal, dan selain itu ada juga PLL (Phase-Locked Loop) synthesizer IC yang dalam
kehidupan nyata biasanya menjadi target para overclocker untuk menjalankan processor melampaui batas yang dianjurkan oleh produsen.
9
4
Protokol dan Antarmuka
UART/USART
UART/USART (Universal Asynchronous/Synchronous Receiver-Transmitter)
atau biasa juga disebut komunikasi serial adalah antarmuka yang umum
ditemukan pada perangkat embedded. Protokol yang umum digunakan
pada antarmuka ini adalah RS-232, dan juga RS-485 yang sering digunakan untuk kebutuhan perangkat industrial. Ada 2 buah jalur sinyal
penting yang digunakan untuk berkomunikasi pada antarmuka ini, yaitu:
• Tx (Transmit). Seperti namanya, pin Tx (Transmit) berfungsi untuk
mengirimkan data.
• Rx (Receive). Pin Rx (Receive), berfungsi untuk menerima data.
Kecepatan komunikasi pada antarmuka UART dihitung dengan menggunakan satuan baud yaitu jumlah sinyal per detik, namun seiring perkembangan jaman, rata-rata perangkat yang menggunakan antarmuka UART
sudah memiliki fitur untuk mendeteksi baud rate secara otomatis (automatic baud rate detection). Hal yang perlu diperhatikan untuk protokol
UART/USART adalah koneksi antara perangkat master dan slave, pin Tx
pada master dihubungkan dengan pin Rx pada slave, dan demikian pula
sebaliknya pin Tx pada slave terhubung dengan pin Rx pada perangkat
yang berfungsi sebagai master. Saat ini, komunikasi serial pada perangkat
embedded umumnya menggunakan adapter antara serial dan USB, dan IC
yang umum digunakan sebagai adapter adalah buatan FTDI, misalnya seri
FT232.
SPI
SPI atau Serial Peripheral Interface adalah protokol komunikasi yang
cukup banyak digunakan oleh perangkat elektronik selain UART. Protokol SPI dapat menghubungkan beberapa periferal, dimana satu periferal
berfungsi sebagai master dan periferal lainnya berfungsi sebagai slave.
Koneksi antara master dan slave menggunakan jalur SCLK, MISO dan
MOSI yang sama, namun jalur CS untuk setiap periferal berbeda. Protokol komunikasi ini menggunakan 4 buah jalur untuk sinyal. Jalur-jalur
tersebut adalah:
• SCLK (Serial Clock) adalah jalur yang digunakan oleh perangkat
master untuk membangkitkan clock yang akan digunakan mengatur
aliran data ketika terjadi komunikasi antara perangkat master dan
slave.
• MISO (Master In Slave Out) adalah jalur yang digunakan utuk mengirimkan data dari perangkat slave ke perangkat master.
10
• MOSI (Master Out Slave In) merupakan jalur yang digunakan untuk
mengirimkan data dari perangkat master ke perangkat slave.
• SS (Slave Select) / CS (Chip Select) berfungsi mengaktifkan periferal slave yang akan diajak berkomunikasi oleh master dan menonaktifkan periferal lain yang tidak digunakan. Namun demikian, ada
kondisi dimana hal tersebut tidak berfungsi demikian. Hal tersebut
disebabkan oleh slave yang jalur outputnya (MISO) tidak dilengkapi
dengan logika tri-state.
I2 C
I2 C (Inter Integrated Circuit) adalah protokol yang ditemukan oleh perusahaan Philips Semiconductor (kini namanya NXP). Protokol ini sering
juga disebut dengan TWI (Two Wire Interface) karena dulu nama I2 C
adalah merupakan hak paten dari NXP. Kelebihan dari protokol komunikasi ini adalah karena hanya membutuhkan dua buah jalur sinyal untuk
pengiriman data yaitu:
• SCL (Serial Clock Line). Perangkat yang bertugas sebagai master berfungsi untuk membangkitkan clock yang akan dikirim melalui
jalur SCL (Serial Clock Line) sedangkan perangkat yang bertugas sebagi slave berfungsi menerima clock dari master dan kemudian memberikan respon dalam bentuk menerima atau mengirimkan data.
• SDA (Serial Data Line) adalah jalur yang digunakan untuk pertukaran data antara perangkat master dan slave.
Sama dengan SPI, beberapa perangkat dapat dihubungkan menggunakan
protokol I2 C, dan batasannya adalah jumlah maksimum alamat perangkat
yang terhubung serta kapasitansi total koneksi antar perangkat yaitu 400pF.
Perangkat yang umum menggunakan protokol komunikasi I2 C misalnya
EEPROM, sensor IMU (Inertial Measurement Unit), Real Time Clock
(RTC) dan lain sebagainya.
JTAG
JTAG adalah metode pengujian komponen elektronik yang diatur oleh
standar IEEE 1149.1 dan pada awalnya merupakan rekomendasi oleh kelompok yang terdiri dari produsen komponen elektronik yang tergabung dalam
Joint Test Action Group. Kelebihan dari JTAG adalah, kemampuannya
dalam melakukan pengujian komponen elektronik tanpa melakukan kontak langsung secara fisik dengan pin yang ingin diubah ataupun dibaca
nilainya. Hal tersebut sangat penting, mengingat komponen elektronik
saat ini ukurannya semakin kecil dengan pin yang sangat susah dijangkau,
misalnya pin yang terdapat pada komponen yang menggunakan packaging BGA/WLCSP. JTAG memiliki antarmuka yang dikenal dengan nama
Test Access Port (TAP), dan berikut ini adalah jalur sinyal yang digunakan oleh antarmuka tersebut:
11
• TMS (Test Mode Select) adalah jalur sinyal yang mengatur state
machine antarmuka TAP.
• TCK (Test Data Clock) adalah jalur sinyal yang mengirimkan clock
untuk mengatur aliran data pada antarmuka TAP.
• TDI (Test Data In) adalah jalur sinyal yang digunakan untuk menerima data oleh komponen yang sedang diuji.
• TDO (Test Data Out) adalah jalur sinyal yang digunakan mengirimkan data keluar dari komponen yang sedang diuji pada perangkat
embedded.
• TRST (Test Reset) adalah pin yang bersifat opsional, dimana fungsinya
adalah melakukan reset pada antarmuka TAP.
Perlu diperhatikan bahwa antarmuka JTAG sifatnya hanya berupa standard, dan setiap produsen komponen boleh melakukan implementasi sesuai
dengan yang mereka inginkan. Oleh karenanya, Anda harus terlebih dahulu
mencari informasi mengenai implementasi JTAG yang digunakan oleh produsen untuk perangkat embedded yang akan menjadi target reverse engineering.
Protokol dan antarmuka yang dijelaskan di atas hanya sebagian dari protokol yang terdapat pada perangkat embedded. Masih banyak protokol dan
antarmuka lainnya yang dapat Anda pelajari, diantaranya Inter Integrated Circuit Sound(I2 S) yang digunakan untuk sinyal audio, Serial Wire Debug(SWD)
yaitu protokol yang dikembangkan oleh ARM, Spy-bi-Wire (SBW) yang dikembangkan oleh Texas Instruments, Camera Serial Interface (CSI) Digital Serial Interface (DSI) yang dikembangkan oleh MIPI Alliance, CANBUS yang
pada umumnya digunakan pada kendaraan, Low Voltage Differential Signalling
(LVDS) yang biasanya digunakan pada display misalnya LCD, dan lain-lain.
12
5
Tips & Tricks
• Rangkaian elektronik pada umumnya memiliki titik kontak yang memiliki
identifikasi TP dan diikuti dengan angka, misalnya TP1, TP2, ..., titik
kontak tersebut adalah Test Point yang digunakan ketika proses Quality
Control untuk menguji apakah perangkat tersebut dapat berfungsi dengan baik atau memiliki kerusakan sehingga tidak layak dipasarkan. Anda
dapat menggunakan Test Point tersebut sebagai awal untuk melakukan
reverse engineering dengan mengamati sinyal yang melewati jalur tersebut.
• Sejumlah perangkat embedded memiliki jalur sinyal yang menggunakan
antarmuka serial (UART), Anda dapat menggunakan trik memanfaatkan
multimeter untuk mengukur tegangan pada jalur yang kemungkinan merupakan antarmuka serial tersebut. Biasanya voltase untuk pin Tx (Transmit) memiliki tegangan sekitar 1,8V atau 2,8V dan untuk pin Rx (Receive)
memiliki tegangan sekitar 1,7V atau 2,7V.
• Jika Anda bingung memulai dari mana, maka Anda dapat memulai dari
hal yang sederhana, misalnya dengan memanfaatkan komputer bekas yang
sudah tidak dipakai. Sebagai referensi, Anda dapat membaca tutorial Low
Cost Embedded x86 Teaching Tool.
13
6
Penutup
Embedded reverse engineering memang bukanlah hal yang mudah, namun asalkan
Anda sabar dan rajin membaca referensi/dokumentasi dan melakukan eksperimen, maka hal tersebut akan menjadi sesuatu yang menarik bahkan menyenangkan. Ada banyak contoh manfaat pengetahuan mengenai embedded di lapangan. Salah satu contoh studi kasusnya adalah pemanfaatan dan kustomisasi
coreboot sebagai fitur pengamanan tambahan pada mesin ATM. Sekian tulisan
singkat kali ini, semoga bermanfaat. Terima kasih kepada Tuhan Yang Maha
Esa, Maxindo, N3 dan Anda yang telah membaca tulisan ini.
14
7
Lampiran
Berikut ini adalah gambar beberapa perangkat yang dapat membantu dalam
proses embedded reverse engineering:
Gambar 1. Digital Storage Oscilloscope
Gambar 2. Logic Analyzer
15
Gambar 3. Autorange Multimeter
Gambar 4. SMD Tester
16
Gambar 5. Frequency Counter
Gambar 6. RF Explorer
17
Gambar 7. Bus Pirate
Gambar 8. FTDI USB to Serial Adapter
18
Gambar 10. FTDI FT2232 JTAG Adapter
Gambar 11. OpenXC Vehicle Interface
19
Gambar 12. TSOP48 Adapter
20
Gambar 13. ATTEN 8586 Soldering Station
21
Download