Saya memiliki masalah yang sama persis dengan Anda selama bertahun-tahun juga.
Untuk penggunaan non-interaktif sederhana, saya suka menggunakan editor blok biner BBE . BBE adalah untuk biner karena SED adalah untuk teks, termasuk sintaksis kuno dan kesederhanaannya, namun, ia memiliki banyak fitur yang hilang dari apa yang sering saya butuhkan, jadi saya harus menggabungkannya dengan alat lain. Jadi, BBE hanyalah solusi parsial. Perhatikan juga bahwa BBE tidak memiliki pembaruan atau peningkatan selama bertahun-tahun.
Tentu saja orang dapat menggunakan xxd
sebelum dan xxd -r
sesudah mengedit data dengan alat berbasis teks, tetapi itu tidak akan berfungsi ketika data yang dimaksud besar dan akses acak diperlukan, misalnya saat memproses perangkat blok.
(Catatan: Untuk Windows, setidaknya ada bahasa scripting WinHex yang mahal dan eksklusif, tetapi itu tidak akan membawa kita ke mana pun.)
Untuk mengedit biner yang lebih rumit, saya biasanya kembali ke Python, meskipun terkadang terlalu lambat untuk file besar, yang merupakan kelemahan utama. Saya harap Pyston (Python menggunakan LLVM untuk mengkompilasi ke kode mesin yang dioptimalkan) suatu hari nanti cukup matang untuk dapat digunakan, atau bahkan lebih baik, seseorang akan merancang dan mengimplementasikan bahasa skrip pemrosesan biner yang ringkas, cepat, dan serbaguna, yang AFAIK tidak ada untuk U * IX belum menyukai sistem.
MEMPERBARUI
Saya juga kebetulan menggunakan homebrew, open source assembler flat assembler Intel x86 , atau singkatnya, yang berkembang menjadi lebih dari sekadar assembler.
Ini memiliki, preprocessor makro berbasis blok teks yang kuat (itu sendiri merupakan bahasa lengkap turing) dengan sintaksis dalam tradisi bahasa makro assembler borland turbo assembler, tetapi jauh lebih maju.
Juga, ia memiliki bahasa manipulasi data, yang memungkinkan untuk biner memasukkan file sewenang-wenang, melakukan semua jenis manipulasi biner dan aritmatika di atasnya (hanya bilangan bulat) pada "waktu kompilasi" dan menulis hasilnya menjadi file output. Bahasa manipulasi data ini memiliki strutures kontrol dan juga turing lengkap.
Ini jauh lebih mudah digunakan daripada menulis program yang melakukan manipulasi biner dalam C dan mungkin bahkan dengan python. Plus, ini memuat sangat cepat, karena ini adalah executable berukuran kecil dengan hampir tidak ada ketergantungan eksternal (Ada 2 versi: baik itu hanya memerlukan libc atau dapat dijalankan sebagai statis yang dapat dieksekusi langsung pada kernel Linux ABI).
Itu memang memiliki beberapa tepi ruff, seperti
tidak mendukung konkurensi
sedang menulis dalam rakitan x86 32 bit (berfungsi pada x86_64), Anda mungkin perlu qemu atau emulator serupa jika Anda ingin menjalankannya di apa pun selain x86 atau x86_64
itu bahasa preprocessor makro yang kuat adalah turing lengkap, ini berarti Anda lebih baik memiliki beberapa pengalaman dengan bahasa seperti Lisp, Haskell, XSLT, atau mungkin M4 akan menjadi pilihan terbaik.
semua data yang akan ditulis ke file output dilakukan dalam buffer "flat" dalam memori, dan buffer ini dapat tumbuh tetapi tidak menyusut sampai file output telah ditulis dan fasm diakhiri. Ini berarti bahwa seseorang hanya dapat menghasilkan file paling besar seperti Anda memiliki memori utama yang tersisa dalam satu menjalankan fasme.
data hanya dapat ditulis ke dalam file output tunggal untuk setiap menjalankan fasme
ya, itu adalah homebrew, yang benar-benar rapi dan pintar
chain = ls["-a"] | grep["-v", "\\.py"] | wc["-l"]; chain()
Sudahkah Anda melihat itu?