Reverse Engineering : Pengertian Dan Tool Yang Digunakan

aliyhafiz.com-saat ini teknik Reverse Engineering atau RE mulai marak digunakan dalam berbagai bidang. Pada awalnya teknik Reverse Engineering digunakan dalam hal teknik mesin. Namun karena fungsi dan kegunaannya yang sangat bagus, maka bidang software engineering, keamanan komputer dan hacking juga menggunakan teknik Reverse Engineering ini. Kali ini kita akan membahas teknik Reverse Engineering, pengertian dan tool yang digunakan. Disimak ya..

Pengertian RE

reverse engineering
sumber peerlyst.com

apa itu Reverse Engineering ? Reverse Engineering atau Rekayasa Terbalik disebut juga Rekayasa Mundur adalah proses di mana suatu objek didekonstruksi untuk mengungkapkan desain, arsitektur, pola, cara kerja dari objek tersebut. Teknik Reverse Engineering atau Rekayasa Terbalik berlaku di bidang teknik mesin, teknik elektronik, rekayasa perangkat lunak, teknik kimia, dan biologi sistem. Teknik ini bisa digunakan untuk melakukan hacking. Bagaimana bisa? Karena dengan teknik ini hacker biasanya melakukan decompile suatu aplikasi untuk membuat aplikasi yang terbatas menjadi full version.

Reverse engineering digunakan dalam desain perangkat lunak untuk memungkinkan programmer atau pengembang untuk memasukkan fitur-fitur baru ke dalam perangkat lunak yang ada, baik kode sumbernya diketahui atau tidak. Berbagai teknik diadopsi untuk membuat ini suatu kemungkinan. Dalam pengujian perangkat lunak, membalikkan rekayasa bantu pemahaman penguji tentang virus dan kode malware lainnya.

Dalam keamanan perangkat lunak, rekayasa terbalik banyak digunakan untuk memastikan bahwa sistem tidak memiliki kelemahan atau kerentanan keamanan utama. Ini membantu untuk membuat sistem yang kuat, sehingga melindunginya dari hacker dan spyware. Beberapa pengembang bahkan meretas sistem mereka untuk mengidentifikasi kerentanan – sistem yang disebut ethical hacker. untuk mengetahui lebih lanjut bisa membaca artikel ethical hacking ini ya.

Teknik Hacking Reverse Engineering

Mengapa Reverse Engineering bisa disebut sebagai teknik hacking? Bahkan selain disebut teknik hacking, Reverse Engineering juga disebut sebagai teknik cracking, mengapa?

Karena Reverse Engineering ketika digunakan dalam bidang software engineering, teknik ini digunakan untuk mencari kelemahan dari aplikasi tersebut. Setelah di analisa secara terbalik ternyata ada celah dilogikanya. Atau ada celah yang memungkinkan seseorang untuk bisa menggunakan aplikasi secara full  version padalah aplikasi full version harus berbayar.

Praktik cracking aplikasi saat ini sudah sangat sering terjadi. Dengan cracking aplikasi bisa menikmatik aplikasi yang limited menjadi aplikasi pro yang tak terbatas fiturnya. Hanya dengan teknik ini hal itu bisa dilakukan. Sehingga Reverse Engineering juga dinamai teknik hacking dan teknik cracking.

Bahkan dalam bidang jaringan komputer Reverse Engineering juga dimanfaatkan untuk menganalisa celah keamanan yang ada pada jaringan komputer. Baik dari sisi perangkat lunak atau perangkat kerasnya. Dengan demikian Reverse Engineering menjadi sangat penting untuk dilakukan sebagai penetration testing dalam keamanan komputer.

Kegunaan Reverse Engineering

Berikut ini adalah kegunaan dari Reverse Engineering jika teknik ini dikaitkan dengan bidang software engineering, keamanan komputer dan hacking. Adapun kegunaan Reverse Engineering yaitu;

  1. Reverse Engineering untuk cracking aplikasi
  2. Reverse Engineering untuk memodifikasi aplikasi
  3. Reverse Engineering untuk analisis keamanan perangkat lunak
  4. Reverse Engineering untuk membuat exploit
  5. Reverse Engineering untuk melakukan penetration testing
  6. Reverse Engineering untuk melakukan analisis malware
  7. Reverse Engineering untuk melakukan analisis protokol dan algoritma
Baca Juga  18 Aplikasi Hack WIFI Terbaru Yang Digunakan Oleh Hacker

Dasar Ilmu Reverse Engineering

Untuk melakukan Reverse Engineering  diperlukan beberapa keahlian dasar yang menjadi fondasinya. Berikut ini adalah keahlian yang diperlukan untuk Reverse Engineering , yaitu;

  1. Keahlian dasar penggunaan komputer
  2. Kemampuan Basis bilangan (Biner, Heksa, dan Octal)
  3. Pengetahuan dasar arsitektur komputer
  4. Dasar bahasa pemrograman (bahasa C, Java, dan lain lain)

Langkah Melakukan Reverse Engineering

langkah reverse engineering
sumber geekforgeek.org

Berikut ini adalah langkah langkah jika ingin melakukan Reverse Engineering, yaitu;

#. Collection Information

Yaitu proses pengumpulan informasi tentang aplikasi yang akan di reverse. Informasi berupa spesifikasi aplikasi, kapasitas, perlingungan keamanan dan lain lain.

#. Examining the information

Yaitu memastikan informasi yang ada benar, dengan beberapa uji dapat diketahui bahwa informasi yang ada adalah benar.

#. Extracting the structure

Yaitu membongkar struktur dari aplikasi, melihat bagaimana pola dari struktur dan desain arsitekturnya.

#. Recording the functionality

Yaitu melihat fungsi fungsi dari fitur yang ada di dalam aplikasi. Karena setiap aplikasi memiliki fitur yang berfungsi secara spesifik.

#. Recording data flow

Yaitu melihat alur data dari aplikasi. Bagaimana alur setiap data yang berjalan. Kemana arah dan tujuan serta input dan output dari aplikasi.

#. Recording control flow

Yaitu melihat control dari aplikasi yang di decompile. Proses input dan output yang telah diketahui bagaimana mengontrolnya dan merubah arsitekturnya dibagian ini dibahasnya.

#. Review extracted design

Yaitu bagaimana mengetahui desain dan merubah desain tersebut. Apa yang terjadi jika desain dari aplikasi setelah dirubah apakah masih berjalan normal atau terjadi malfungsi dari aplikasi tersebut.

#. Generate documentation

Yaitu membuat dokumentasi dari setiap langkah yang telah dilakukan. Mulai dari langkah ke 1 (satu) sampai dengan langkah terakhir dibuat dokumentasinya. Itu ditujukan agar bisa melakukan evaluasi dan pembelajaran bagi yang lain.

Tool Reverse Engineering

Dalam melakukan Reverse Engineering diperlukan tool atau software yang membantu proses decompile atau debug. Karena program atau aplikasi yang sudah jadi telah dibungkus rapat dengan beberapa teknik tertentu yang tidak bisa dibuka dengan sembarangan teknik. ada juga tool hacking yang lain yang biasa digunakan oleh hacker, bisa membaca artikel tool hacking pilihan ini ya.

Berikut ini adalah tool Reverse Engineering  yang sering digunakan oleh hacker dalam melakukan Reverse Engineering. Disimakya..

#1. Apktool

tool reverse engineering
sumber ethhack.com

Apktool adalah aplikasi pihak ketiga yang digunakan untuk melakukan Reverse Engineering yang dapat mendekodekan sumber daya ke bentuk yang hampir asli dan membuatnya kembali setelah melakukan beberapa penyesuaian. Ini memungkinkan debugging kode smali langkah demi langkah dan juga memungkinkan bekerja dengan aplikasi lebih mudah karena struktur file seperti proyek dan otomatisasi beberapa tugas berulang seperti membangun aplikasi dan lain lain. untuk mendapatkan aplikasi bisa mengunjungi laman https://ibotpeaches.github.io/Apktool/install/.

Fitur:

  1. Decoding sumber daya ke bentuk yang hampir asli (termasuk resources.arsc, XMLs dan file 9.png) dan membangunnya kembali
  2. Debugging smali
  3. Membantu dengan beberapa tugas yang berulang

#2. OllyDbg

ollydbg
sumber ollydbg.de

OllyDbg adalah debugger tingkat assembler yang mampu menganalisis file sistem 32-bit untuk Microsoft Windows. Penekanan pada analisis kode biner membuatnya sangat berguna dalam kasus di mana kode sumber tidak tersedia. Untuk mendapatkan aplikasi bisa mengunjungi laman http://www.ollydbg.de/.

Baca Juga  16 Film Hacker Yang Wajib Ditonton

Fitur:

  1. Antarmuka pengguna yang intuitif, tidak ada perintah rahasia
  2. Analisis kode – melacak register, mengenali prosedur, loop, panggilan API, switch, tabel, konstanta, dan string
  3. Langsung memuat dan mendebug DLL
  4. Pemindaian file objek – menempatkan rutinitas dari file objek dan pustaka
  5. Mengizinkan label, komentar, dan deskripsi fungsi yang ditentukan pengguna
  6. Memahami informasi debug dalam format Borland®
  7. Menghemat tambalan di antara sesi, menulisnya kembali ke file yang dapat dieksekusi dan memperbarui perbaikan
  8. Arsitektur terbuka – banyak plugin pihak ketiga tersedia
  9. Tidak ada instalasi – tidak ada sampah di direktori sistem atau registri
  10. Debug aplikasi multithread
  11. Lekat untuk menjalankan program
  12. Disassembler yang dapat dikonfigurasi mendukung format MASM dan IDEAL
  13. MMX, 3DNow! dan tipe data dan instruksi SSE, termasuk ekstensi Athlon
  14. Dukungan penuh UNICODE
  15. Mengenal string ASCII dan UNICODE secara dinamis – juga dalam format Delphi!
  16. Mengenali konstruksi kode yang kompleks, seperti panggilan untuk beralih ke prosedur
  17. Memecahkan panggilan ke lebih dari 1900 API standar dan fungsi 400 C
  18. Memberikan bantuan peka konteks pada fungsi API dari file bantuan eksternal
  19. Mengatur breakpoint bersyarat, logging, memori dan perangkat keras
  20. Melacak eksekusi program, mencatat argumen fungsi yang diketahui
  21. Menunjukkan perbaikan
  22. Secara dinamis melacak susunan bingkai
  23. Mencari perintah yang tidak tepat dan urutan biner yang tertutup
  24. Menelusuri seluruh memori yang dialokasikan
  25. Menemukan referensi ke kisaran konstan atau alamat
  26. Memeriksa dan memodifikasi memori, mengatur breakpoint, dan menjeda program saat itu juga
  27. Merakit perintah ke dalam bentuk biner terpendek

 #3. dex2jar

Dex2jar adalah aplikasi yang memiliki desain API (application programming interface) yang ringan yang dirancang untuk membaca format Dalvik Executable (.dex / .odex). Ini digunakan untuk bekerja dengan file Android dan Java .class. dex2jar mengandung komponen-komponen berikut:

  1. dex-reader dirancang untuk membaca format Dalvik Executable (.dex / .odex). Ini memiliki API ringan mirip dengan ASM.
  2. dex-translator dirancang untuk melakukan pekerjaan konversi. Bunyinya instruksi dex ke format dex-ir, setelah beberapa mengoptimalkan, mengkonversi ke format ASM.
  3. dex-ir yang digunakan oleh dex-translator dirancang untuk mewakili instruksi dex
  4. dex-tools alat untuk bekerja dengan file .class. berikut adalah contohnya: Memodifikasi apk, DeObfuscate toples
  5. d2j-smali [Akan dipublikasikan] membongkar dex ke file smali dan mengumpulkan dex dari file smali. implementasi yang berbeda untuk smali / baksmali, sintaks yang sama, tetapi kami mendukung escape dalam tipe desc “Lcom / dex2jar \ t \ u1234;”
  6. dex-writer [To be publish] menulis dex dengan cara yang sama seperti dex-reader.

#4. diStorm3

diStorm adalah library decomposer yang cepat dan ringan, mudah digunakan. Memiliki kemampuan untuk membongkar instruksi dalam mode 16, 32 dan 64-bit. Ini juga merupakan perpustakaan disassembler tercepat. Kode sumber sangat bersih, mudah dibaca, portabel dan platform independen (mendukung endianity kecil dan besar). diStorm semata-mata tergantung pada pustaka C. Karena itu dapat digunakan dalam modul tertanam atau kernel. diStorm3 kompatibel dengan antarmuka diStorm64. Namun, pastikan Anda menggunakan file header baru.

Baca Juga  Hacker Merilis Tool Baru Untuk Bobol Semua Jenis iPhone

#5. edb-debugger

edb debugger adalah dekompiler yang setara dengan Linux dari Olly debugger yang terkenal di platform Windows. Salah satu tujuan utama dari debugger ini adalah modularitas. Beberapa fitur-fiturnya adalah:

  1. Antarmuka GUI yang intuitif
  2. Operasi debugging yang biasa (step-into / step-over / run / break)
  3. Breakpoint bersyarat yang mudah
  4. Inti debugging diimplementasikan sebagai sebuah plugin sehingga orang-orang dapat memiliki penggantian drop-in. Tentu saja, jika platform yang diberikan memiliki beberapa API debugging, maka Anda mungkin memiliki plugin yang mengimplementasikannya.
  5. Analisis instruksi dasar
  6. Lihat / Daerah memori Dump
  7. Inspeksi alamat yang efektif
  8. Tampilan dump data adalah tab, memungkinkan Anda untuk memiliki beberapa tampilan memori terbuka pada saat yang sama dan dengan cepat beralih di antara mereka.
  9. Mengimpor dan membuat peta simbol
  10. Berbagai plugin

#6. Jad Debugger

Jad adalah aplikasi dekompiler Java paling populer yang pernah dirilis. Terdiri dari utilitas baris perintah yang ditulis dalam C ++. Beberapa cangkang grafis tersedia yang menjalankan program ini di belakang layar sambil memberi pengguna antarmuka yang lebih nyaman untuk penelusuran sumber, manajemen proyek, dll. Ini tersedia di Kali Linux untuk debugging aplikasi Java untuk rekayasa balik dan banyak tujuan lainnya.

#7. Javasnoop

JavaSnoop adalah alat uji keamanan aplikasi yang memungkinkan penguji keamanan untuk menguji keamanan aplikasi Java dengan mudah. JavaSnoop adalah contoh bagaimana Aspect memimpin industri dalam menyediakan Layanan Verifikasi, dan bukan hanya untuk aplikasi berbasis web.

JavaSnoop memungkinkan pengguna untuk melampirkan proses yang ada (seperti debugger) dan langsung mulai merusak panggilan metode, menjalankan kode khusus, atau hanya menonton apa yang terjadi pada sistem.

#8. Valgrind

Valgrind adalah paket aplikasi dekompiler untuk melakukan debugging dan profil program-program Linux. Dengan alatnya, kami dapat secara otomatis mengidentifikasi manajemen memori dan bug threading, dengan menghilangkan berjam-jam memprovokasi pencarian bug dan membuat program lebih stabil. Kami juga dapat melakukan pembuatan profil terperinci untuk membantu mempercepat proses program dan menggunakan Valgrind untuk membuat alat baru. Distribusi Valgrind saat ini mencakup enam alat berkualitas produksi:

  1. Detektor kesalahan memori (Memcheck)
  2. Dua pendeteksi kesalahan utas (Helgrind dan DRD)
  3. Profiler cache dan prediksi cabang (Cachegrind)
  4. Cache penghasil grafik panggilan dan profil-prediksi cabang (Callgrind)
  5. Pengumpul profiler (Massif)

selain itu, aplikasi ini juga mencakup tiga tool yang berfungsi untuk:

  1. Stack / global overrun detector (sgcheck)
  2. Profiler tumpukan kedua yang memeriksa bagaimana tumpukan blok digunakan (DHAT)
  3. Generator vektor blok dasar (BBV) SimPoint

Kesimpulan

Pembuat aplikasi memandang teknik reverse engineering sebagai sarana penting untuk mempertahankan persaingan, atau beberapa mungkin menganggapnya sebagai alat untuk memahami kelemahan dalam desain dan bekerja kembali untuk hal yang sama. Namun, Kali Linux memberi kami beberapa alat rekayasa terbalik yang hebat dan terkenal untuk melakukan kegiatan seperti itu. Selain itu, ada banyak alat reverse engineering lainnya juga, tetapi alat-alat ini sudah built-in dan keluar dari kotak dengan Kali Linux.

Demikianlah pembahasan mengenai Reverse Engineering, dimulai dengan pengertian, kegunaan, skil dasar, dan tool yang digunakan. Semoga bermanfaat..

Share ke:

Leave a Reply

Your email address will not be published. Required fields are marked *