Hak Cipta 2011-2024 Google LLC.
Penafian: Ini bukan produk Google resmi (eksperimental atau lainnya), itu hanya kode yang kebetulan dimiliki oleh Google.
Binexport adalah komponen eksportir Bindiff. Ini adalah plugin/ekstensi untuk Disassemblers Ida Pro, Binary Ninja dan Ghidra yang mengekspor data pembongkaran ke dalam format buffer protokol yang dibutuhkan Bindiff.
Versi eksperimental untuk rangkaian rekayasa terbalik perangkat lunak open source Ghidra tersedia di direktori java/BinExport .
Repositori ini berisi kode sumber lengkap yang diperlukan untuk membangun binari plugin Binexport untuk Linux, MacOS dan Windows.
Unduh Binaries dari halaman Rilis dan salin ke direktori IDA Pro Plugins. Ini adalah jalur default:
| Os | Jalur plugin |
|---|---|
| Linux | /opt/idapro-8.2/plugins |
| MacOS | /Applications/IDA Pro 8.2/idabin/plugins |
| Windows | %ProgramFiles%IDA 8.2plugins |
Untuk menginstal hanya untuk pengguna saat ini, salin file ke salah satu direktori ini sebagai gantinya:
| Os | Plugin |
|---|---|
| Linux/MacOS | ~/.idapro/plugins |
| Windows | %AppData%Hex-RaysIDA Proplugins |
Di Ida, pilih Help | About programm...
Klik Addons...
Jika diinstal dengan benar, kotak dialog berikut muncul:

Unduh Binari dari halaman Rilis dan salin ke direktori plugin Ninja Biner. Ini adalah jalur default untuk pengguna saat ini:
| Os | Jalur plugin |
|---|---|
| Linux | ~/.binaryninja/plugins |
| MacOS | ~/Library/Application Support/Binary Ninja/plugins/ |
| Windows | %AppData%Binary Ninjaplugins |
Log . Jika ini tidak terlihat, aktifkan melalui View | Native Docks | Show Log . BinExport 12 (@internal, Jan 3 2023), (c)2004-2011 zynamics GmbH, (c)2011-2024 Google LLC.
File | Install Extensions...ghidra_BinExport.zip yang Anda unduh pada langkah 1 dan klik OK .OK dua kali untuk menutup dialog "Instal Extensions" dan pemberitahuan untuk memulai kembali Ghidra.File | Install Extensions...Kasing penggunaan utama adalah melalui Bindiff. Namun, Binexport juga dapat digunakan untuk mengekspor pembongkaran ke format yang berbeda:
Buka database IDA Pro
Pilih Edit | Plugins | BinExport 12
Kotak dialog berikut muncul:

Pilih jenis file yang akan diekspor
Plugin Binexport mendaftarkan fungsi IDC di bawah ini.
| Nama fungsi IDC | Ekspor ke | Argumen |
|---|---|---|
| Binexportbinary | Buffer protokol | nama file |
| BinexportText | Dump file teks | nama file |
| BinexportStatistics | File teks statistik | nama file |
Atau, plugin dapat dipanggil dari IDC dengan memanggil fungsi utamanya secara langsung:
static main () {
batch ( 0 );
auto_wait ();
load_and_run_plugin ( "binexport12_ida" , 2 /* kBinary */ );
qexit ( 0 );
}Perhatikan bahwa ini memang memberikan kontrol apa pun atas nama file output. Binexport akan selalu menggunakan nama file dari basis data yang saat ini dimuat (tanpa ekstensi) dan tambahkan ".binexport".
Argumennya sama dengan IDC (tercantum di atas).
Contoh permohonan salah satu fungsi IDC terdaftar:
import idaapi
idaapi . ida_expr . eval_idc_expr ( None , ida_idaapi . BADADDR ,
'BinExportBinary("exported.BinExport");' )Binexport mendefinisikan opsi plugin berikut, yang dapat ditentukan pada baris perintah IDA:
| Pilihan | Keterangan |
|---|---|
-OBinExportAutoAction:<ACTION> | Memohon fungsi dan keluar IDC Binexport |
-OBinExportModule:<PARAM> | Argumen untuk BinExportAutoAction |
-OBinExportLogFile:<FILE> | Pesan log ke file |
-OBinExportAlsoLogToStdErr:TRUE | Jika ditentukan, juga log ke kesalahan standar |
-OBinExportX86NoReturnHeuristic:TRUE | Aktifkan heuristik khusus X86 untuk mengidentifikasi fungsi yang tidak dikembalikan |
Catatan: Opsi ini harus datang sebelum file apa pun.
Hanya ada integrasi minimal ke dalam ninja ui biner saat ini.
Tools | Plugins | BinExport . Ini akan memulai proses ekspor. File .BinExport ditempatkan di sebelah database analisis, di direktori yang sama.
File | Import File...Export... dari menu konteks..BinExport akan ditambahkan secara otomatis. Script BinExport.java Ghidra dapat dijalankan dalam mode headless dan GUI. Dalam mode GUI, tersedia di bawah kategori BinExport di manajer skrip. Untuk mode headless, file BinExport.properties dengan konten berikut (atau serupa, tergantung pada opsi yang ingin Anda gunakan) dapat digunakan:
Choose export file Export = test.BinExport
Choose options IDA Pro Compatibility = "Subtract Imagebase;Remap mnemonics;Prepend Namespace to Function Names"
Buat proyek, impor dan analisis biner:
$ ./analyzeHeadless <project_location> <project_name> -import <file>
Jalankan BinExport.java yang akan menghasilkan file .BinExport yang ditentukan dalam BinExport.properties :
$ ./analyzeHeadless <project_location> <project_name> -process <file> -propertiesPath <path> -preScript BinExport.java -noanalysis
Atau, gunakan argumen baris perintah alih-alih BinExport.properties :
$ ./analyzeHeadless <project_location> <project_name> -process <file> -preScript BinExport.java test.BinExport "Prepend Namespace to Function Names" -noanalysis
Di bawah ini adalah instruksi build untuk plugin kode asli untuk IDA Pro dan biner ninja. Untuk membangun ekstensi berbasis Java untuk Ghidra, silakan merujuk ke Binexport untuk instruksi Ghidra.
Ada beberapa ketergantungan untuk dipuaskan:
boost_parts )third_party/idasdk )Lingkungan bangunan yang disukai adalah Debian 11 ("Bullseye").
Ini harus menginstal semua paket yang diperlukan:
sudo apt update -qq
sudo apt install -qq --no-install-recommends build-essentialInstal versi stabil cmake stabil terbaru:
wget https://github.com/Kitware/CMake/releases/download/v3.25.1/cmake-3.25.1-linux-x86_64.sh
mkdir ${HOME} /cmake
sh cmake-3.25.1-Linux-x86_64.sh --prefix= ${HOME} /cmake --exclude-subdir
export PATH= ${HOME} /cmake/bin: ${PATH}Bagian berikut mengasumsikan bahwa direktori kerja Anda saat ini adalah akar dari repositori yang dikloning.
Buka zip isi IDA SDK ke third_party/idasdk . Perintah yang ditampilkan adalah untuk Ida Pro 8.2:
unzip PATH/TO/idasdk_pro82.zip -d third_party/idasdk
mv third_party/idasdk/idasdk_pro82/ * third_party/idasdk
rmdir third_party/idasdk/idasdk_pro82Dengan semua prasyarat di tempat, konfigurasikan dan bangun Binexport dan jalankan tesnya:
mkdir -p build_linux && cd build_linux
cmake ..
-G Ninja
-DCMAKE_BUILD_TYPE=Release
" -DCMAKE_INSTALL_PREFIX= ${PWD} "
-DBINEXPORT_ENABLE_IDAPRO=ON
" -DIdaSdk_ROOT_DIR= ${PWD} /../third_party/idasdk "
-DBINEXPORT_ENABLE_BINARYNINJA=ON
cmake --build . --config Release
ctest --build-config Release --output-on-failure
cmake --install . --config Release --strip Catatan: Jika Anda tidak ingin menggunakan Ninja untuk melakukan bangunan yang sebenarnya, hilangkan bagian -G Ninja .
Untuk menonaktifkan IDA Pro Build, atur -DBINEXPORT_ENABLE_IDAPRO=OFF . Demikian juga, untuk menonaktifkan build ninja biner, atur -DBINEXPORT_ENABLE_BINARYNINJA=OFF .
Ini akan mengunduh dan membangun abseil, googletest, buffer protokol, dan API ninja biner. Jika semuanya berjalan dengan baik, direktori build_linux/binexport-prefix harus berisi dua file binexport12_ida.so dan binexport12_ida64.so (untuk digunakan dengan ida dan ida64 , masing-masing) serta binexport12_binaryninja.so (untuk biner ninja).
Lingkungan build yang disukai adalah MacOS 13 "Ventura" menggunakan Xcode 15.1. Menggunakan MacOS 12 "Monterey" juga harus berfungsi.
Setelah menginstal alat pengembang, pastikan untuk menginstal alat baris perintah juga:
sudo xcode-select --installBagian berikut mengasumsikan bahwa direktori kerja Anda saat ini adalah akar dari repositori yang dikloning.
Unduh CMake versi stabil terbaru dari situs resmi dan pasang gambar disknya:
curl -fsSL https://github.com/Kitware/CMake/releases/download/v3.25.1/cmake-3.25.1-Darwin-x86_64.dmg
-o $HOME /Downloads/cmake-osx.dmg
hdiutil attach $HOME /Downloads/cmake-osx.dmgPada titik ini Anda perlu meninjau dan menerima perjanjian lisensi CMake. Sekarang instal cmake:
sudo cp -Rf /Volumes/cmake-3.25.1-Darwin-x86_64/CMake.app /Applications/
hdiutil detach /Volumes/cmake-3.25.1-Darwin-x86_64
sudo /Applications/CMake.app/Contents/bin/cmake-gui --installPerintah terakhir membuat CMake tersedia di jalur sistem.
Buka zip isi IDA SDK ke third_party/idasdk . Perintah yang ditampilkan adalah untuk Ida Pro 8.2:
unzip PATH/TO/idasdk_pro82.zip -d third_party/idasdk
mv third_party/idasdk/idasdk_pro82/ * third_party/idasdk
rmdir third_party/idasdk/idasdk_pro82Dengan semua prasyarat di tempat, konfigurasikan dan bangun Binexport dan jalankan tesnya:
mkdir -p build_mac && cd build_mac
cmake ..
-DCMAKE_BUILD_TYPE=Release
" -DCMAKE_INSTALL_PREFIX= ${PWD} "
-DBINEXPORT_ENABLE_IDAPRO=ON
" -DIdaSdk_ROOT_DIR= ${PWD} /../third_party/idasdk "
-DBINEXPORT_ENABLE_BINARYNINJA=ON
cmake --build . --config Release -- " -j $( sysctl -n hw.logicalcpu ) "
ctest --build-config Release --output-on-failure
cmake --install . --config Release --stripCatatan: Ini akan menggunakan CMake standar "Generator Makefile". Anda dapat menggunakan Xcode atau Ninja sebagai generator juga.
Untuk menonaktifkan IDA Pro Build, atur -DBINEXPORT_ENABLE_IDAPRO=OFF . Demikian juga, untuk menonaktifkan build ninja biner, atur -DBINEXPORT_ENABLE_BINARYNINJA=OFF .
Ini akan mengunduh dan membangun abseil, googletest, buffer protokol, dan API ninja biner. Jika semuanya berjalan dengan baik, direktori build_mac/binexport-prefix harus berisi dua file binexport12_ida.dylib dan binexport12_ida64.dylib (untuk digunakan dengan ida dan ida64 , masing-masing) serta binexport12_binaryninja.dylib (untuk ninja sinus).
Lingkungan build yang disukai adalah Windows 10 (64-bit Intel) menggunakan kompiler Visual Studio 2022 dan Windows SDK untuk Windows 10.
Unduh dan instal CMake stabil terbaru (3.25.1 pada saat penulisan) dari halaman unduhannya. Pastikan untuk memilih "Tambahkan CMake ke jalur sistem untuk semua pengguna".
Unduh dan instal git dari halaman unduhannya. Pastikan untuk memilih opsi berikut: * Direktori Instalasi harus dibiarkan di %ProgramFiles%Gitbingit.exe * "Gunakan git dari prompt perintah windows" - Mintalah utilitas setup menambahkan git ke jalur sistem Anda. * "Gunakan jendela konsol default Windows" - untuk dapat menggunakan git dari prompt perintah biasa.
Bagian berikut mengasumsikan prompt perintah terbuka dengan direktori kerja saat ini yang terletak di akar repositori Binexport yang dikloning:
git clone https://github.com/google/binexport.git
cd binexport Buka zip isi IDA SDK ke third_party/idasdk . Perintah yang ditampilkan adalah untuk IDA Pro 8.2, dengan asumsi bahwa Git diinstal ke direktori default terlebih dahulu:
" %ProgramFiles% Gitusrbinunzip " PATHTOidasdk_pro82.zip -d third_party
rename third_partyidasdk_pro82 idasdkDengan semua prasyarat di tempat, konfigurasikan dan bangun Binexport:
if not exist build_msvc mkdir build_msvc
cd build_msvc
cmake .. ^
-G " Visual Studio 17 2022 " ^
-DCMAKE_BUILD_TYPE=Release ^
" -DCMAKE_INSTALL_PREFIX= %cd% " ^
-DBINEXPORT_ENABLE_IDAPRO=ON ^
-DIdaSdk_ROOT_DIR= %cd% ..third_partyidasdk ^
-DBINEXPORT_ENABLE_BINARYNINJA=ON
cmake --build . --config Release -- /m /clp:NoSummary;ForceNoAlign /v:minimal
ctest --build-config Release --output-on-failure
cmake --install . --config Release --stripCatatan: Ini akan menggunakan generator CMake "Visual Studio". Anda dapat menggunakan generator ninja juga.
Untuk menonaktifkan IDA Pro Build, atur -DBINEXPORT_ENABLE_IDAPRO=OFF . Demikian juga, untuk menonaktifkan build ninja biner, atur -DBINEXPORT_ENABLE_BINARYNINJA=OFF .
Ini akan mengunduh dan membangun abseil, googletest, buffer protokol, dan API ninja biner. Jika semuanya berjalan dengan baik, direktori build_msvc/binexport-prefix harus berisi dua file binexport12_ida.dll dan binexport12_ida64.dll (untuk digunakan dengan ida.exe dan ida64.exe , masing- binexport12_binaryninja.dll ) juga).