2 poin oleh GN⁺ 2023-12-05 | 1 komentar | Bagikan ke WhatsApp
  • Dogbolt adalah Decompiler Explorer yang memungkinkan Anda mengunggah biner dan membandingkan berbagai hasil decompiler di satu tempat
  • File yang diunggah dibatasi kurang dari 2MB, dan ada pemberitahuan bahwa biner yang diunggah akan disimpan
  • Dogbolt menyediakan sampel agar Anda bisa melihat cara kerjanya tanpa perlu mengunggah file sendiri
  • Tool yang terhubung mencakup angr, BinaryNinja, Boomerang, dewolf, Ghidra, Hex-Rays, RetDec, Snowman, dan lainnya
  • Nama tiap tool terhubung ke situs web atau repositori, sehingga Anda dapat langsung memeriksa informasi tool sambil melihat hasil perbandingan

Syarat unggah biner

  • Dogbolt menyediakan alur bagi pengguna untuk mengunggah file biner dan melihat hasil dekompilasi
  • Ukuran file harus kurang dari 2MB
  • Ditampilkan pemberitahuan bahwa biner yang diunggah akan disimpan, beserta tautan FAQ

Bisa dicek lebih dulu lewat sampel

  • Tersedia daftar sampel yang bisa diperiksa tanpa perlu mengunggah file secara langsung
  • Sampel disusun untuk melihat hasil beberapa decompiler secara berdampingan

Tool decompiler yang terhubung

1 komentar

 
GN⁺ 2023-12-05
Komentar Hacker News
  • Ingin bilang terima kasih kepada orang yang memposting ini karena menunggu sampai minggu ini. Mungkin karena baru dibahas di C++ Weekly, dan ini materi yang bagus: https://www.youtube.com/watch?v=h3F0Fw0R7ME
    Sampai minggu lalu masalah performanya cukup serius, tetapi sekarang antreannya (https://dogbolt.org/queue) secara umum terlihat cukup baik. Selain bottleneck panjang pada beberapa decompiler yang masih tertahan, sekarang berjalan cukup mulus, dan Josh serta Glenn telah melakukan peningkatan yang luar biasa: https://github.com/decompiler-explorer/decompiler-explorer/c...

  • Tulisan terkait: Decompiler Explorer - https://news.ycombinator.com/item?id=32079227 - Juli 2022, 82 komentar

  • Saat riset doktoral, terutama ketika menangani deep learning untuk kode yang diobfuscate, ini pasti akan sangat berguna
    Pada awal eksperimen, Ghidra tidak terlalu cocok dengan multiprocessing dan data yang harus diproses sangat banyak, jadi saya beralih ke angr. Mungkin saja tetap bisa dilakukan dengan Ghidra, tetapi melakukan hal yang sama dengan angr jauh lebih mudah. Saya juga suka namanya. Meski begitu, saya ingin mencatat bahwa Compiler Explorer adalah nama proyeknya, sedangkan Godbolt adalah nama belakang penulisnya, tetapi kalau sekarang Godbolt sudah dipakai seperti kata kerja, rasanya kapal itu sudah telanjur berlayar

  • Akan bagus jika ada alat serupa untuk mengeksplorasi binary lifting ke berbagai intermediate representation (IR). Misalnya Ghidra p-code dan sleigh, LLVM Machine IR, atau Qemu TCG

    • Saat mulai dari keseluruhan biner, intermediate representation biasanya tidak cocok untuk manusia yang hanya ingin memeriksa potongan kecil. Pendekatan seperti itu sepertinya lebih cocok hanya untuk potongan assembly yang sangat kecil
      BNIL, kumpulan beberapa tahap intermediate language yang menjadi dasar Binary Ninja, mungkin juga menarik. Bentuk yang diekspos di UI atau demo cloud.binary.ninja bisa dilihat
    • Qemu bekerja dengan menerjemahkan biner ke intermediate representation lalu memprosesnya di atas itu. Valgrind juga begitu, dan alat optimisasi bernama bolt yang terkait dengan Facebook memakai ide yang sama
  • Karena sedang membahas decompiler, saya penasaran apakah Binary Ninja juga pilihan yang aman. Katanya IDA adalah standar, tetapi terlalu mahal untuk orang yang ingin belajar reverse engineering sebagai hobi

    • Decompiler Binja umumnya cukup bagus. Belum sematang IDA atau Ghidra, tetapi bukan decompiler yang buruk
      Menurut saya keunggulan terbesar Binja adalah intermediate language (IL)-nya. High-level IL berperan sebagai decompiler, tetapi juga ada low-level dan medium-level IL sebagai tahap di antara assembly dan source. Jika hasil decompiler terlihat agak aneh, melihat IL membantu memahami apa yang sebenarnya terjadi, dan IL itu sendiri jauh lebih enak dibaca daripada assembly mentah sehingga jadi sering dipakai. Hampir tidak ada padanan yang benar-benar setara di platform lain. Ghidra dan IDA masing-masing memang punya satu IL juga, tetapi dibanding IL Binja yang ramah dibaca manusia, keduanya lebih dekat ke bentuk yang ramah dibaca mesin
    • Sekarang IDA Free memiliki hampir semua fitur Pro jika Anda hanya menangani x86_64 di Windows/Linux: https://hex-rays.com/ida-free/
      Yang tidak ada adalah scripting Python, dan itu memang perbedaan yang cukup besar. Meski begitu, sulit untuk mengeluh untuk alat gratis. IDA dan Ghidra punya kelebihan, kekurangan, dan plugin komunitas yang berbeda, jadi kemungkinan besar lebih baik memakai keduanya
    • Sejujurnya, pakai saja Ghidra. Memang punya quirks khasnya sendiri, tetapi cukup bagus dan open source. Kalau cukup baik untuk dipakai NSA, kemungkinan besar juga cukup baik untuk penggunaan hobi
  • Sangat bagus. Belakangan ini saya sedang mengerjakan proyek emulator dan mengimplementasikan disassembler sendiri, jadi terus berpikir bagaimana cara mengubah pola kode mesin menjadi bentuk yang digeneralisasi lalu mengonversinya ke pseudocode mirip C
    Karena itu saya jadi sangat ingin membuat decompiler mainan sendiri akhir-akhir ini

  • Adakah tutorial decompiler yang bagus dan mendetail untuk nonspesialis?

    • Sepertinya ada kebutuhannya. Adakah yang bisa memberi petunjuk arah yang layak untuk dijadikan referensi?
  • Coba masukkan output dogbolt ke godbolt

    • Ini adalah terjemahan mesin untuk kode mesin. Secara teori seharusnya mencapai titik tetap
    • Kita juga bisa melatih LLM dengan reinforcement learning agar memulihkan kode aslinya
  • Melihat ini, rasanya mereka juga nyaris tidak perlu membujuk perusahaan lain. Mereka pasti sadar bahwa ukuran biner yang kecil dan perbandingan dengan pesaing akan menghasilkan lebih banyak bisnis
    Ini tampak seperti solusi kecil yang sangat pas untuk mengklasifikasikan masalah lintas layanan dan membandingkan solusinya

    • Memang itu logikanya. Dua solusi komersial utama yang disertakan, yaitu Binary Ninja dan Hex-Rays, menanggung seluruh biaya hosting. Sebagai catatan, saya adalah salah satu co-founder Vector 35, pembuat Binary Ninja
      Biayanya tidak bisa dibilang murah. Menjalankan decompiler membutuhkan sumber daya komputasi yang cukup besar, dan khususnya beberapa decompiler sulit dibilang efisien
  • Andai saya melihat ini saat diposting tahun lalu. Benar-benar keren dan sangat praktis