Bagaimana cara mengubah skrip shell menjadi executable biner?


36

Saya ingin mengubah skrip shell saya menjadi biner yang dapat dieksekusi sehingga tidak ada orang lain yang bisa mengedit atau membacanya. Apakah ada cara untuk mengubahnya menjadi executable biner?




@ l0b0 Tautan itu menyebutkan dua alasan. Alasan ketiga: Anda ingin dijalankan pada mesin yang tidak memiliki juru bahasa yang diinstal (mis. Menjalankan skrip bash pada mesin yang hanya memiliki sh). Alasan keempat: perlu setuid root untuk beberapa alasan (mis. Skrip yang memungkinkan pengguna memasang volume tanpa sudo).
Calmarius

Jawaban:


42

shc adalah apa yang kamu cari. dapatkan di sini: Ekstrak shc
, cd ke dir, makedan kemudian ./shc -f SCRIPT. Selesai

Semua yang perlu Anda lakukan ini, Anda temukan di sini:
SHC Howto


8
+1 wow, itu menarik. Berhati-hatilah bahwa jika prosesnya persis seperti yang dijelaskan, ini adalah metode yang lemah untuk menyembunyikan kata sandi - itu masih bisa diekstraksi oleh seseorang yang tahu bagaimana executable disusun. Namun, itu akan sangat efektif untuk mengaburkan naskah dari pengamat biasa. Saya akan tertarik untuk mengetahui apakah skrip yang telah dikompilasi sebelumnya dengan cara ini lebih cepat untuk dieksekusi.
goldilocks

21
Perhatikan bahwa ini tidak berfungsi dengan bash(atau shberdasarkan pada bash), seperti yang dapat dilakukan: env SHELLOPTS=verbose ./script.xuntuk melihat konten skrip. Mungkin ada cara mudah untuk memotong dengan cangkang lain juga.
Stéphane Chazelas

4
Dari halaman manual shc, "Sayangnya, itu tidak akan memberi Anda peningkatan kecepatan seperti program C nyata." datsi.fi.upm.es/~frosal/sources/shc.html
Adam

shc telah diperbarui ke 3.9.0: github.com/neurobin/shc
Jahid

Meskipun SHC mungkin tidak memberi Anda peningkatan kecepatan yang Anda harapkan, SHC menawarkan kemungkinan meretas SHC sendiri untuk mendapatkan terjemahan naskah Anda yang lebih baik. Menulis skrip shell bersih dan kemudian meningkatkan SHC bisa lebih produktif daripada menulis program C dari awal, atau melilit skrip shell untuk membuatnya lebih cepat.
Kaz

1

Jika tujuannya di sini adalah untuk menyembunyikan skrip shell Anda agar tidak dapat dibaca atau dimodifikasi, coba tempelkan ke situs web berikut:

Enkripsi & Kebingungan Gabungan

Ketika Anda mengirimkan skrip Anda ke situs ini, file zip akan diproduksi untuk Anda. Lakukan langkah-langkah berikut untuk menghasilkan file mandiri yang dapat dieksekusi dari file zip ini.

  1. Setelah mengirimkan skrip Anda, klik kanan pada tautan unduhan
  2. Pergi ke host Unix Anda dan wget atau (curl -O) tautan unduhan
  3. Buka zip file zip
  4. cd EnScryption.com
  5. ./(Anda-script.sh)

Langkah 5 akan secara otomatis mengkonfigurasi skrip dan akan menghasilkan salinan mandiri untuk Anda. Anda kemudian dapat scp salinan mandiri ini ke host yang berbeda atau mendistribusikannya sesuai keinginan Anda. Catatan, setelah dienkripsi, Anda tidak dapat mengubah nama skrip Anda. Ini untuk alasan keamanan.

Opsi lain yang tersedia bagi Anda, jika Anda punya waktu, adalah dengan membuat algoritma kebingungan Anda sendiri yang aman. Jika skrip Anda harus portabel, Anda harus menggunakan alat yang tersedia di sebagian besar sistem Unix ... yaitu. openssl atau base64. Ini membutuhkan banyak waktu. Tetapi jika motivasinya ada, memang mungkin membuat penyingkapan skrip Anda menjadi tidak mungkin atau paling tidak, sangat memakan waktu!


13
Saya akan merekomendasikan layanan semacam itu. Anda tidak pernah yakin mereka tidak menyuntikkan malware apa pun di dalamnya sebelum memberikannya kepada Anda. Bahkan jika pencipta sendiri tidak mencoba melakukannya maka musuh dapat mengkompromikan server mereka untuk melakukan injeksi seperti itu secara diam-diam.
ddnomad

"Setelah mengirimkan skrip Anda" adalah kebalikan dari melindungi kode Anda.
Giuseppe Urso

-1

bzexe dapat mengonversi dan juga mengompres file


1
Saya tidak begitu mengerti bagaimana hal ini akan mencegah siapa pun mengekstraksi file untuk mendapatkan skrip shell asli, yang ingin dicegah oleh pengguna. Kompresi tidak menyembunyikan apa pun.
Kusalananda
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.