Rekayasa Balik untuk Semua Orang
(0xinfection.github.io)- Reverse Engineering For Everyone adalah kumpulan tutorial yang dibuat agar orang yang baru pertama kali belajar rekayasa balik dapat mengikuti konsep dan alur praktik
- Rekayasa balik adalah proses membongkar artefak untuk mengungkap desain, arsitektur, kode atau mengekstrak pengetahuan
- Kurikulumnya mencakup x86, x64, ARM-32, ARM-64 dan ditujukan baik untuk pemula maupun pembaca yang ingin meninjau kembali konsep
- Disusun agar bisa dimulai bahkan dari kondisi tidak tahu apa pun, sehingga memungkinkan pembelajaran bertahap hingga dasar tingkat menengah dalam rekayasa balik
- Seluruh tutorial dapat diunduh dalam format PDF dan MOBI, dan saat tutorial baru ditambahkan, versi ebook juga akan diperbarui secara otomatis
Tujuan rekayasa balik
- Rekayasa balik juga disebut backwards engineering atau back engineering
- Ini adalah proses membongkar artefak target untuk mengungkap desain, arsitektur, kode di dalamnya atau mengekstrak pengetahuan
- Mirip dengan penelitian ilmiah, tetapi berbeda karena penelitian ilmiah berfokus pada fenomena alam
- Kumpulan tutorial ini berfokus pada pembelajaran rekayasa balik dengan cara sesederhana mungkin
Kurikulum dan sasaran pembelajar
- Materi utama yang dibahas adalah sebagai berikut
- Ditujukan baik untuk pemula yang ingin belajar reversing maupun pembaca yang ingin meninjau ulang konsep yang sudah dipelajari
- Pemula dapat belajar dari tanpa pengetahuan dasar hingga mencapai dasar tingkat menengah dalam rekayasa balik
- Melalui sidebar, pembaca dapat memeriksa bagian yang telah dibahas sejauh ini dan meninjau konsep yang diperlukan
1 komentar
Komentar Hacker News
Reverse engineering bisa dilakukan tanpa harus melihat langsung target itu sendiri
Tulisan yang menjelaskan bagaimana Andrew Tridgell merekayasa balik protokol SMB milik Microsoft dengan “French cafe technique”: https://www.samba.org/ftp/tridge/misc/french_cafe.txt
Tridge juga merekayasa balik BitKeeper, perangkat lunak proprietari yang sempat digunakan Linus untuk hosting pengembangan kernel Linux. Ia menemukan bahwa jika terhubung lewat telnet ke alamat:port BitKeeper, alih-alih memakai klien khusus, kita bisa mengetik
help, lalu daftar perintah yang bisa dicoba akan ditampilkanDengan perintah-perintah itu, ia bisa mengkueri repositori dan memahami seluruh struktur data internal tanpa perlu memakai perangkat lunak proprietari atau melakukan disassembly. Karena reverse engineering ini membuat pemilik BitKeeper, Larry McVoy, mencabut hak pakai komunitas Linux, Linus pun akhirnya membuat git
Fakta bahwa
helpmenampilkan daftar perintah adalah keputusan engineering/UI yang baik dari para pengembang BitKeeper, tetapi saya khawatir pelajaran yang diambil dari sini malah menjadi “jangan membuat perangkat lunak terlalu ramah pengguna”Selain itu, berbicara dengan suatu perangkat lunak lewat jaringan jelas bisa dianggap sebagai “menggunakan” perangkat lunak tersebut
Saya tidak pernah menganggap reverse engineering sebagai bidang yang dipelajari dari buku. Sejak kecil, semuanya saya pelajari dengan mencoba sendiri
Saya belajar memindai dan memodifikasi memori proses video game dengan Cheat Engine, membaca dan mengirim ulang paket MMO untuk mencoba cheat, membuat DLL dan hook lalu menginjeksikannya ke proses, serta membuat patch executable untuk menyelesaikan tantangan crackme
Saya mengutak-atik perangkat lunak nyata yang membutuhkan license key agar tidak lagi memerlukan key atau menerima key apa pun, menganalisis format biner seperti file save game untuk dipakai cheat, hingga akhirnya memakai keterampilan dan pengetahuan itu untuk mendapatkan pekerjaan sungguhan dan menghasilkan uang
Pada praktiknya, ini lebih seperti hal yang harus dicoba sendiri dan diberi banyak waktu. Tutorial di artikel asli terasa terlalu lompat-lompat, mencoba membahas terlalu banyak hal, tetapi tidak benar-benar mengajarkan keterampilan reverse engineering melebihi level yang sebagian besar orang bisa kuasai setelah mengutak-atiknya beberapa jam
Sebaliknya, beginners.re memang sangat luas, tetapi jauh lebih mendalam dan bertahap; untuk latihan praktik, crackmes mungkin lebih baik
Dalam proyek reverse engineering video game yang sedang berjalan, saya sempat berhubungan dengan seorang modder otodidak yang tidak paham pemrograman. Setelah beberapa kali panggilan Discord, kami melihat proyek Ghidra bersama dan saya menjelaskan dasar-dasar engineering program komputer; ia belajar jauh lebih banyak dibanding saat hanya membalik bit dengan Cheat Engine
Setelah itu, ia merekonstruksi sebuah mod yang cukup ambisius yang 15 tahun lalu hanya pernah ditampilkan di video YouTube dan tidak pernah dirilis. Saya memang membantu memberi arah, tetapi setelah ia melihat bagaimana bagian-bagiannya saling terhubung, ia mampu mengimplementasikan mod yang sama sendirian di sekuelnya
Pengalaman engineering memberi sudut pandang saat melakukan reverse engineering
Penting juga diingat bahwa ada banyak buku, tetapi buku yang “bagus” hanya segelintir
Baru membaca 5 menit saja sudah terlihat terlalu banyak kesalahan, konsep yang disalahpahami, dan penjelasan yang benar-benar keliru, jadi sulit untuk merekomendasikannya. Tampaknya jelas ditulis oleh amatir yang pengalamannya di bidang ini masih sedikit
Untuk materi yang lebih baik, ada Secrets of Reverse Engineering karya Eldad Eilam, untuk sisi Windows ada Practical Reverse Engineering, dan untuk dasar yang benar-benar fundamental ada Computer Organization and Design karya Patterson
Untuk orang yang baru mengenal topik ini, tampaknya ini gambaran tingkat tinggi yang cukup baik
Ada juga tautan ini untuk materi yang lebih mendalam: https://github.com/mytechnotalent/Reverse-Engineering
Sunting: duh, sepertinya sebagian besar hanya menautkan kembali ke artikel asli
Ini mengingatkan saya pada masa membaca tutorial reversing di searchlores.org dan fravia.com
Sekarang ada di web archive: https://web.archive.org/web/20191201105759/http://search.lor...
Reverse engineering Java juga menyenangkan. Terutama aplikasi Android mencurigakan yang mengendalikan peralatan rumah tangga lewat protokol Bluetooth yang aneh
Saya kenal orang yang menulis panduan ini. Senang melihatnya muncul di HN, dan kalau ada masukan spesifik, saya bisa menyampaikannya
Unsur yang mendorong keterlibatan dan materi visualnya terlalu kurang. Isinya kebanyakan penjelasan dan terlalu banyak dinding teks, sehingga dari situ saja materi ini bukan “untuk semua orang”
Misalnya, penjelasan tentang analisis statis/dinamis di bagian 2, pengenalan IDA dan disassembler, serta penjelasan skenario ABC Biochemicals bisa ditulis jauh lebih ringkas
Bisa dipersingkat kira-kira menjadi: “Dalam analisis malware ada dua teknik dasar: analisis statis dan analisis dinamis. Analisis statis memeriksa file executable tanpa menjalankannya, dan tidak dibahas di sini tetapi akan dibahas pada materi berikutnya. Analisis dinamis menganalisis biner malware yang sedang berjalan dengan disassembler dan debugger. Disassembler mengubah biner executable menjadi instruksi assembly yang bisa di-debug dan dimanipulasi. Ada alat seperti Hopper, OllyDbg, dan IDA; IDA adalah disassembler sekaligus debugger populer yang mendukung berbagai platform dan prosesor. Reverse engineering adalah bidang yang jauh lebih luas daripada analisis malware. Di bagian akhir, kita akan menggunakan IDA dalam skenario etis meretas sistem kendali pintu antipeluru di laboratorium riset biokimia sensitif fiktif bernama ABC Biochemicals. Ini proyek dasar, tetapi menunjukkan proses merekayasa balik biner black-box dan mencari solusi desain kode yang lebih aman. Pelajaran berikutnya membahas berbagai jenis malware”
Tautan bukunya tidak bisa saya buka; apakah terkena banjir trafik dari HN?