6 poin oleh GN⁺ 2024-07-26 | 1 komentar | Bagikan ke WhatsApp
  • 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

Format yang disediakan

  • Seluruh set tutorial dapat diunduh sebagai ebook
  • Saat tutorial baru ditambahkan, versi ebook juga diperbarui secara otomatis

1 komentar

 
GN⁺ 2024-07-26
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 ditampilkan
    Dengan 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

    • Sulit juga menyebut keputusan Linus memakai BitKeeper sebagai sesuatu yang “bodoh”. Saat itu ia memilih alat terbaik di antara yang tersedia, dan meski belum tentu yang terbaik secara mutlak, Linus memang meninjau dan mengevaluasi beberapa alat
      Fakta bahwa help menampilkan 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
    • Andrew menyelamatkan kita bukan sekali, melainkan dua kali. Ini menunjukkan bahwa kita memang butuh orang yang mencetak gol, tetapi juga butuh orang yang memberi umpan penentu
    • Saat kuliah S1, saya ingat kebetulan bertemu Tridge di kantin jurusan dan mendengar langsung darinya tentang kisah BitKeeper/git
  • 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

    • Saya juga belajar reverse engineering saat kecil dengan terlalu lama menatap CE/IDA, jadi ketika ada yang bertanya bagaimana sebaiknya belajar, saya tidak punya jawaban yang benar-benar bagus
      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
    • Bisa saja langsung masuk ke reverse engineering, tetapi tanpa latar belakang engineering, baik lewat pendidikan formal maupun belajar sendiri, prosesnya akan jauh lebih sulit
      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
    • Anda terlalu meremehkan kekuatan pembelajaran terstruktur dan latihan berulang. Berpikir kritis, rasa ingin tahu, dan semangat mungkin sulit ditularkan, tetapi buku yang ditulis dengan baik bisa sangat memangkas waktu yang biasanya habis untuk trial and error ke tingkat yang masuk akal
      Penting juga diingat bahwa ada banyak buku, tetapi buku yang “bagus” hanya segelintir
    • Saya juga tidak pernah menganggap memasak sebagai sesuatu yang dipelajari dari buku
  • 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

    • Secrets of Reverse Engineering itu buku tahun 2005; adakah buku yang lebih baru yang layak direkomendasikan?
  • 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

    • Andai Java punya alat yang setara dengan DnSpyEx. Saya sedang menunggu Recaf4 siap
  • 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”

    • Menulis artikel ini patut diapresiasi, tetapi saya juga merasakan hal yang mirip. Kalimat-kalimatnya terlalu panjang dan bertele-tele sehingga sulit dibaca
      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?