Jadwal Sholat

Memuat jadwal sholatโ€ฆ

Editorial Ilmu Komputer & AI

Open AccessOA2026

Tak Ada Bit yang Tertinggal: Memakai Brute-Force Lifting untuk Mencapai Rekompilasi Biner yang Sepenuhnya Statis

Pendekatan sepenuhnya statis untuk binary lifting yang memperlakukan setiap byte sebagai calon target cabang, memungkinkan penerjemahan lintas ISA yang andal tanpa dukungan runtime.
Tianjiao Huang; Po-An Chen; Nick Baron; Michael Franzยท 2026ยท DOI 10.48550/arXiv.2609.16423

Masalah inti

Rekompilasi biner adalah teknik untuk beroperasi langsung pada kode eksekutabel, menjanjikan otomatisasi penambalan mitigasi keamanan pada biner warisan dan migrasi biner antar instruction set architecture (ISA). Namun, belum ada sistem yang sepenuhnya otomatis yang dapat secara andal mengangkat biner eksekutabel arbitrer ke representasi antara kompilator (IR) seperti LLVM IR, atau menerjemahkan biner non-trivial dari satu ISA ke ISA lain secara sepenuhnya statis dan andal. Masalah intinya adalah memulihkan control flow graph (CFG) suatu program secara statis tidak mungkin dilakukan secara umum: cabang terkomputasi dapat melompat ke target yang tidak dapat ditentukan tanpa benar-benar menjalankan program. Sistem yang ada mengandalkan mekanisme fallback runtime, sehingga sebagian besar mesin penerjemahan biner harus menyertai program yang diterjemahkan di mesin target. Artikel ini menyajikan sistem binary lifting seluruh program yang sepenuhnya statis dan tidak memerlukan dukungan penerjemahan runtime di target. Alih-alih berupaya membedakan kode dari data, penulis memperlakukan setiap offset byte sebagai calon target cabang dan mengangkat seluruh biner secara brute-force, membangun

Inovasi

Penulis mengimplementasikan prototipe rekompilator biner dari biner x86-64 ke LLVM IR, tanpa memerlukan heuristik kode/data. Mereka memvalidasinya dengan kompilasi silang sepenuhnya statis ke AArch64, yang dicapai dengan menggunakan kembali backend LLVM yang ada tanpa modifikasi. Evaluasi menunjukkan bahwa sistem dapat mengangkat biner eksekutabel arbitrer ke LLVM IR dan melakukan penerjemahan lintas ISA tanpa dukungan runtime. Pendekatan brute-force lifting berhasil membangun superset CFG yang secara konservatif memuat semua alur kendali yang layak, dan mekanisme tabel dispatch secara efektif menangani cabang terkomputasi yang tak dapat diselesaikan secara statis. Prototipe ini menunjukkan bahwa rekompilasi biner sepenuhnya statis dapat dilakukan, menghilangkan kebutuhan akan mesin penerjemahan runtime di mesin target. Ini merupakan kemajuan signifikan dibandingkan sistem yang ada yang mengandalkan mekanisme fallback runtime. Hasilnya menunjukkan bahwa pendekatan ini dapat secara andal menerjemahkan biner eksekutabel non-trivial dari satu ISA ke ISA lain, sepenuhnya secara statis.
Rekompilasi biner adalah teknik untuk beroperasi langsung pada kode eksekutabel, menjanjikan otomatisasi penambalan mitigasi keamanan pada biner warisan dan migrasi biner antar instruction set architecture (ISA). Namun, belum ada sistem yang sepenuhnya otomatis yang dapat secara andal mengangkat biner eksekutabel arbitrer ke representasi antara kompilator (IR) seperti LLVM IR, atau menerjemahkan biner non-trivial dari satu ISA ke ISA lain secara sepenuhnya statis dan andal. Masalah intinya adalah memulihkan control flow graph (CFG) suatu program secara statis tidak mungkin dilakukan secara umum: cabang terkomputasi dapat melompat ke target yang tidak dapat ditentukan tanpa benar-benar menjalankan program. Sistem yang ada mengandalkan mekanisme fallback runtime, sehingga sebagian besar mesin penerjemahan biner harus menyertai program yang diterjemahkan di mesin target. Artikel ini menyajikan sistem binary lifting seluruh program yang sepenuhnya statis dan tidak memerlukan dukungan penerjemahan runtime di target. Alih-alih berupaya membedakan kode dari data, penulis memperlakukan setiap offset byte sebagai calon target cabang dan mengangkat seluruh biner secara brute-force, membangun superset CFG yang secara konservatif memuat semua alur kendali yang layak. Cabang terkomputasi yang tak dapat diselesaikan secara statis dengan demikian direduksi menjadi pencarian dalam tabel dispatch yang menunjuk ke jalur alur kendali hasil terjemahan yang bersesuaian.

Pendekatan yang diusulkan adalah sistem binary lifting sepenuhnya statis yang menghindari dukungan penerjemahan runtime. Wawasan kuncinya adalah memperlakukan setiap offset byte dalam biner sebagai calon target cabang, alih-alih berupaya membedakan kode dari data. Brute-force lifting ini membangun superset control flow graph (CFG) yang secara konservatif memuat semua alur kendali yang layak. Untuk cabang terkomputasi yang tak dapat diselesaikan secara statis, sistem mereduksinya menjadi pencarian dalam tabel dispatch yang menunjuk ke jalur alur kendali hasil terjemahan yang bersesuaian. Penulis mengimplementasikan prototipe rekompilator biner dari biner x86-64 ke LLVM IR, tanpa memerlukan heuristik kode/data. Proses lifting dapat diformalkan sebagai berikut: untuk biner dengan offset byte , superset CFG dibangun dengan merepresentasikan alamat awal instruksi potensial, dan merepresentasikan sisi alur kendali yang mungkin. Setiap offset byte dianggap sebagai calon target cabang, dan fungsi lifting

menerjemahkan byte mulai dari menjadi instruksi LLVM IR. Tabel dispatch
memetakan setiap offset ke blok kode hasil terjemahan yang bersesuaian. Arsitektur keseluruhannya diilustrasikan dalam diagram Mermaid berikut:

Mengapa penting

Pendekatan brute-force lifting mengatasi tantangan mendasar pemulihan CFG statis dengan secara konservatif memperlakukan setiap offset byte sebagai calon target cabang. Ini menghilangkan kebutuhan akan heuristik kode/data dan mekanisme fallback runtime, sehingga memungkinkan rekompilasi biner sepenuhnya statis. Konstruksi superset CFG memastikan semua alur kendali yang layak tertangkap, dan tabel dispatch menyediakan mekanisme efisien untuk menangani cabang terkomputasi. Keberhasilan kompilasi silang ke AArch64 menunjukkan kepraktisan pendekatan ini dan kompatibilitasnya dengan backend LLVM yang ada. Namun, sifat brute-force dapat menimbulkan overhead dalam hal ukuran kode dan waktu penerjemahan, karena setiap offset byte dianggap sebagai calon awal instruksi. Pekerjaan selanjutnya dapat mengeksplorasi optimasi untuk mengurangi overhead ini sambil mempertahankan jaminan konservatif. Pendekatan ini memiliki implikasi signifikan bagi penambalan mitigasi keamanan dan migrasi biner warisan, karena memungkinkan penerjemahan yang andal dan sepenuhnya statis tanpa dukungan runtime. Kandidat taksonomi untuk karya ini meliputi Architecture, Cybersecurity, Network, dan Cryptography, yang mencerminkan relevansinya dengan domain-domain tersebut.

Siapa yang sebaiknya membaca

Praktisi dan peneliti ilmu komputer

Membuka konten memberโ€ฆ