Saya ingin membuat skrip bash yang membaca "payload" data biner dari file eksternal dan memuntahkan skrip bash lain dengan data ini lolos dan dikemas dalam variabel string. Contoh:
- mydata.bin - Sumber data: file data biner yang akan dienkapsulasi
- myencoder.sh - Pelaku utama: skrip bash yang mengubah data biner menjadi skrip dengan variabel string
- mypayload.sh - Hasil akhirnya: skrip bash yang dihasilkan oleh myencoder.sh yang berisi data yang disandikan sebagai variabel string.
Untuk menggunakan ini saya akan menjalankan myscript.sh mydata.bin mypayload.sh
dan myscript.sh akan mengonversi / escape / wrap / apa pun file mydata.bin ke mypayload.sh
Setelah menjalankan perintah ini, the mypayload.sh
File akan terlihat seperti ini:
# Generated by myencoder.sh with data from mydata.bin
encoded_data="[...]ugly escaped string representation of the binary data found in mydata.bin[...]"
Masalah yang saya hadapi yang saya tidak yakin bagaimana menyelesaikannya adalah bagaimana data akan dikodekan dengan benar. Saya membaca bahwa printf "% q" dapat digunakan untuk keluar dari string, tetapi bagaimana memintanya pada data yang diambil dari file biner eksternal benar-benar menghindar dari saya.
Jadi tolong, setiap tusukan ini dan tips apapun dipersilakan!
PS: Saya tidak ingin memperkenalkan dependensi di luar bash jika memungkinkan. Tergantung pada bash 4.x fitur-fiturnya OK.
PPS: Encoding harus mendukung ukuran kecil dan kinerja encoding / decoding.