Rekayasa Terbalik
Diterbitkan: 2022-03-10Terakhir Diperbarui pada 21 Maret 2022
Saya akan berbicara tentang apa itu reverse engineering dan mengapa itu penting. Banyak orang yang bukan pengembang berpikir bahwa mereka tahu apa itu reverse engineering karena mereka pernah melihatnya di film, tetapi ini adalah kesalahpahaman. Rekayasa terbalik memiliki banyak arti bagi banyak orang yang berbeda, dan apa yang akan saya katakan kepada Anda akan sangat berbeda dari definisi orang lain.
Untuk Perangkat Lunak Label Putih, rekayasa balik pada dasarnya adalah mengambil program dan mencari tahu cara kerjanya dan apa yang dapat dilakukannya. Untuk lebih tepatnya, rekayasa balik mengambil program yang ada dan mempelajari cara kerja bagian dalamnya sehingga Anda dapat memodifikasi program untuk melakukan hal-hal selain yang dimaksudkan oleh penulis. Anda dapat mempelajari lebih lanjut tentang apa arti label putih saat menelusuri situs kami!
Dalam pengembangan perangkat lunak, kami mengatakan bahwa Anda merekayasa balik sesuatu ketika Anda membongkarnya dan mencari tahu cara kerjanya. Rekayasa terbalik bermanfaat untuk mempelajari cara menggunakan perangkat lunak dan cara kerjanya. Itu juga dapat digunakan dalam banyak hal berbeda seperti pemasaran digital, mempertahankan perusahaan Anda, meretas, dan banyak hal lainnya.
Rekayasa Terbalik dalam Pemasaran
Jika Anda bermaksud membuat kampanye pemasaran baru, Anda dapat merekayasa balik perangkat lunak untuk mengetahui apa yang dilakukannya atau bagaimana kinerjanya. Kemudian Anda dapat memodifikasi kode untuk menyesuaikannya dengan kebutuhan Anda. Anda dapat melakukan hal yang sama dengan iklan atau jenis pemasaran lainnya. Dimungkinkan juga untuk mengetahui informasi tentang pesaing, spesifikasi dan kinerja suatu produk dan banyak hal lainnya.
Ketika Anda ingin membuat sesuatu, pertama-tama Anda harus mulai dengan desain. Anda dapat menggunakan alat untuk membantu Anda membuat desain, tetapi Anda juga harus mengujinya dengan barang-barang Anda karena penting untuk mengetahui apakah hal-hal tersebut akan berinteraksi secara memadai. Terkadang, Anda perlu bermain-main dalam program dan mencari tahu cara kerjanya dengan membuat keluaran palsu. Anda bahkan dapat mengendarai mobil dengan gambar mobil sungguhan, terutama jika Anda ingin melihat bagaimana perilakunya. Kami menyebutnya mengemudi virtual atau virtual driving.
Apa itu Rekayasa Terbalik?
Ini adalah proses menganalisis program komputer untuk menentukan struktur internal, kode sumber, algoritma, dan aliran data. Tujuan dari reverse engineering adalah untuk memahami bagaimana sebuah program komputer bekerja dan apa yang ada di dalam program tersebut. Di mana Anda membaca informasi ini, informasi ini mungkin bernama analisis kerusakan, pembongkaran, rekayasa balik, atau debugging. Saya suka "debugging" karena kedengarannya lebih seperti aktivitas yang dilakukan oleh seorang programmer padahal tidak. Saat ini, kebanyakan programmer bahkan tidak menyadari bahwa mereka adalah reverse engineer.
Rekayasa terbalik adalah proses mengambil perangkat lunak, program (atau cracker), untuk melakukan tindakan yang tidak pernah dimaksudkan oleh pengembang untuk digunakan (tetapi kadang-kadang terjadi). Dalam skenario ini, peretas telah menemukan kesalahan kode dalam sebuah program dan telah menemukan cara menggunakannya untuk mendapatkan efek yang diinginkan. Misalnya, peretas memiliki permainan rekayasa balik dan mengetahui cara kerjanya atau jenis informasi apa yang dapat mereka pelajari.
Mengapa Penting?
Hampir setiap perangkat lunak di pasar direkayasa ulang. Ada beberapa program yang tidak dibalik. Bahkan aplikasi Microsoft telah direkayasa ulang. Bahkan seluruh perusahaan tidak melakukan apa-apa selain merekayasa balik perangkat lunak demi uang.
Rekayasa terbalik menjadi semakin penting sejak Pemerintah AS mengeluarkan undang-undang untuk Perlindungan Perangkat Lunak atau Manajemen Hak Digital (DRM). Tidak akan ada perangkat lunak dengan DRM jika tidak direkayasa ulang, dan program rekayasa balik tidak akan dilindungi oleh DRM. Ada lebih banyak alasan mengapa rekayasa balik itu penting, tetapi itu adalah subjek untuk keseluruhan buku (atau serangkaian buku).
Rekayasa terbalik telah mengubah dunia. Ini telah benar-benar mengubah cara orang hidup. Ada banyak keuntungan untuk itu:
- Anda dapat membuat perangkat lunak melakukan apa yang Anda inginkan.
- Anda dapat mengetahui cara menghapus hal-hal dari program yang tidak seharusnya ada di sana.
- Menjadi lebih mudah untuk memecah sesuatu menjadi komponen-komponennya dan menganalisisnya lebih lanjut.
Apa Manfaat Reverse Engineering?
Anda dapat melihat apa yang dilakukannya dan mempelajari mekanisme internalnya dengan membalik program. Anda dapat membuat perubahan pada program tanpa mempengaruhi program lain atau sistem operasi. Ini adalah keuntungan yang signifikan karena sebagian besar program harus kompatibel dengan perpustakaan dan sistem operasi yang disediakan oleh penerbitnya. Membuat perubahan pada program tidak hanya dapat merusak sistem Anda secara serius, tetapi juga pengguna lain. Reverse engineering memberi Anda akses ke semua mekanisme internal, perpustakaan, dan informasi tentang cara kerjanya. Anda dapat membuat program yang dapat menggunakan perpustakaan dan sistem operasi tanpa membayarnya.
Apa Proses Rekayasa Terbalik?
Ini adalah pertanyaan yang rumit karena jawabannya tergantung pada program reverse engineering Anda. Jawaban terbaik yang bisa saya berikan adalah: “Tergantung…”. Program modern memiliki kode anti-debugging, anti-reverse engineering, dan anti-penulisan. Ini berarti bahwa rekayasa balik melibatkan penggunaan kebingungan yang berlebihan, yang membuang waktu dan terkadang dapat menyebabkan program macet.
Kebingungan adalah teknik rekayasa anti-terbalik yang mempersulit untuk merekayasa balik program. Subrutin, fungsi, dan bagian lain dari suatu program biasanya dipindahkan ke tempat yang berbeda dalam memori, dan struktur data diubah dengan angka ajaib. Terkadang kode dienkripsi atau dipindai untuk kata-kata tertentu yang mungkin memberikan informasi tentang strukturnya. Ini tidak selalu cukup untuk mengalahkan reverse engineer, jadi terkadang, sebuah program akan macet saat mencoba membongkarnya dengan alat tertentu. Di banyak negara, itu ilegal meskipun Anda memiliki salinan perangkat lunak dan tidak memodifikasinya dengan cara apa pun.
Bagaimana Membalikkan Perangkat Lunak/Program Insinyur?
Jika Anda tidak terbiasa membalikkan perangkat lunak rekayasa, adalah bijaksana untuk memulai dengan program yang dapat diakses terlebih dahulu. Akan lebih baik jika Anda mencoba mempelajari alat khusus rekayasa terbalik sebelum Anda melompat ke ujung kolam yang dalam. Alat yang bagus untuk pemula adalah IDA Pro. (IDA adalah singkatan dari Intrusion Detection Analysis). Ini gratis, mudah diakses, dan dapat membalikkan hampir semua program selama 32-bit. IDA Pro bekerja dengan menganalisis kode yang dikompilasi atau dibongkar dan kemudian ditampilkan dengan cara yang memudahkan Anda untuk membaca, memahami, dan bahkan mengedit. IDA Pro adalah alat yang baik untuk seorang insinyur balik, tetapi tidak cocok untuk semua situasi.
Alat lain adalah GDB yang merupakan alat debugging, seperti Visual Studio. Namun, GDB akan men-debug kode saat mengeksekusi seperti Visual Studio. Perbedaannya adalah Anda dapat membuat perubahan pada kode saat mengeksekusi dan kemudian menyebabkan crash program. Ini akan memungkinkan Anda untuk melihat kesalahan dalam logika (dengan asumsi mekanisme anti-debugging/anti-reverse engineering tidak menutupinya). Setelah itu, Anda dapat memperbaiki kesalahan atau melanjutkan eksekusi hingga beberapa bagian lain dari program menyebabkan masalah.
Apa Risiko Rekayasa Terbalik?
Adalah ilegal di sebagian besar negara untuk merekayasa balik perangkat lunak. Namun, itu tidak ilegal dalam beberapa situasi di AS selama Anda memiliki salinan program dan dapat membuktikan bahwa itu diperoleh secara legal (menggunakan nomor seri atau CD-Key). Ada juga pengecualian untuk mekanisme anti-salinan dan anti-pembajakan, yang hanya diperbolehkan untuk tujuan pendidikan. Untuk merekayasa balik suatu program, Anda harus memiliki informasi yang cukup untuk melakukannya. Ini biasanya berarti memahami kode sumber program yang Anda rekayasa balik. Itu tidak selalu mudah, bahkan jika Anda dapat membaca kode sumber, terutama jika mekanisme anti-debugging/anti-reverse engineering digunakan.
Saya harap Anda akan memiliki gagasan yang lebih baik tentang apa artinya rekayasa balik dan bagaimana menerapkannya pada berbagai kasus. Saya juga berharap Anda akan menjadi lebih berpengetahuan di bidang ini dan membantu bisnis Anda dan pelanggan tumbuh menggunakan alat pengetahuan mereka dengan cara yang lebih modern.