วิธีการแปลงเชลล์สคริปต์เป็นไบนารีที่ปฏิบัติการได้?


36

ฉันต้องการแปลงเชลล์สคริปต์ของฉันเป็นไบนารีที่ปฏิบัติการได้เพื่อให้ไม่มีใครสามารถแก้ไขหรืออ่านได้ มีวิธีแปลงเป็นไบนารีปฏิบัติการหรือไม่




@ l0b0 ลิงก์นั้นกล่าวถึงสองเหตุผล เหตุผลที่สาม: คุณต้องการให้มันทำงานบนเครื่องที่ไม่ได้ติดตั้งล่ามไว้ (เช่นการรันสคริปต์ทุบตีบนเครื่องที่มี sh เท่านั้น) เหตุผลที่สี่: ต้องการรูท setuid ด้วยเหตุผลบางอย่าง (เช่นสคริปต์ที่อนุญาตให้ผู้ใช้เมานต์โวลุ่มโดยไม่ต้อง sudo)
Calmarius

ที่เกี่ยวข้อง: รันสคริปต์โดยไม่ต้องถอดรหัสพวกเขา  และ  หลีกเลี่ยงการให้ผู้ใช้เสียหายและใช้สคริปต์
G-Man กล่าวว่า 'Reinstate Monica'

คำตอบ:


42

shc คือสิ่งที่คุณกำลังมองหา ได้ที่นี่: SHC
สารสกัดจากซีดีลง dir, และจากนั้นmake ./shc -f SCRIPTเสร็จสิ้น

ทุกสิ่งที่คุณต้องทำคุณจะพบที่นี่:
SHC Howto


8
+1 ว้าวนั่นน่าสนใจ เพียงแค่ระวังว่าถ้ากระบวนการตรงตามที่อธิบายไว้นี่เป็นวิธีที่ไม่รัดกุมในการซ่อนรหัสผ่าน - มันยังสามารถถูกดึงออกมาได้โดยคนที่รู้ว่าโครงสร้างของโปรแกรมที่เรียกทำงานได้นั้นเป็นอย่างไร อย่างไรก็ตามมันจะมีประสิทธิภาพมากในการปิดบังสคริปต์จากผู้สังเกตการณ์ทั่วไป ฉันสนใจที่จะเรียนรู้ว่าสคริปต์ที่รวบรวมไว้ล่วงหน้าด้วยวิธีนี้จะทำงานได้เร็วขึ้นหรือไม่
goldilocks

21
โปรดทราบว่ามันใช้งานไม่ได้bash(หรือshตามbash) อย่างที่ทำได้: env SHELLOPTS=verbose ./script.xเพื่อดูเนื้อหาของสคริปต์ อาจมีวิธีง่ายๆในการข้ามกับกระสุนอื่น ๆ เช่นกัน
Stéphane Chazelas

4
จากหน้า shc man, "Unastyatelly, มันจะไม่ให้การปรับปรุงความเร็วใด ๆ เหมือนโปรแกรม C จริง ๆ " datsi.fi.upm.es/~frosal/sources/shc.html
Adam

shc ได้รับการอัปเดตเป็น 3.9.0: github.com/neurobin/shc
Jahid

ถึงแม้ว่า SHC อาจจะไม่พัฒนาความเร็วที่คุณหวังไว้ แต่ก็มีความเป็นไปได้ที่จะแฮ็ก SHC เพื่อรับการแปลที่ดีขึ้น การเขียนเชลล์สคริปต์แบบคลีนแล้วปรับปรุง SHC อาจมีประสิทธิผลมากกว่าการเขียนโปรแกรม C ตั้งแต่เริ่มต้นหรือทำให้เชลล์สคริปง่ายขึ้นเพื่อทำให้เร็วขึ้น
Kaz

1

หากเป้าหมายที่นี่คือการซ่อนสคริปต์เชลล์ของคุณเพื่อให้สามารถอ่านหรือแก้ไขได้ให้ลองวางมันลงในเว็บไซต์ต่อไปนี้:

การเข้ารหัสและการทำให้งงรวม

เมื่อคุณส่งสคริปต์ของคุณไปยังเว็บไซต์นี้ไฟล์ซิปจะถูกสร้างขึ้นสำหรับคุณ ทำตามขั้นตอนต่อไปนี้เพื่อสร้างไฟล์ปฏิบัติการแบบสแตนด์อโลนจากไฟล์ zip นี้

  1. หลังจากส่งสคริปต์ของคุณคลิกขวาที่ลิงค์ดาวน์โหลด
  2. ไปที่โฮสต์ Unix ของคุณแล้ว wget หรือ (curl -O) ลิงก์ดาวน์โหลด
  3. แตกไฟล์ zip
  4. cd EnScryption.com
  5. ./(your-script.sh)

ขั้นตอนที่ 5 จะกำหนดค่าสคริปต์โดยอัตโนมัติและจะสร้างสำเนาแบบสแตนด์อโลนให้กับคุณ จากนั้นคุณสามารถคัดลอกสำเนาแบบสแตนด์อโลนนี้ไปยังโฮสต์อื่นหรือแจกจ่ายตามที่คุณต้องการ หมายเหตุเมื่อเข้ารหัสแล้วคุณจะไม่สามารถเปลี่ยนชื่อสคริปต์ของคุณได้ นี่คือเหตุผลด้านความปลอดภัย

อีกทางเลือกหนึ่งสำหรับคุณหากคุณมีเวลาก็คือการคิดขั้นตอนวิธีทำให้งงงวยที่ปลอดภัยของคุณเอง หากสคริปต์ของคุณเป็นแบบพกพาคุณต้องใช้เครื่องมือที่พร้อมใช้งานในระบบ Unix ส่วนใหญ่ ... เช่น openssl หรือ base64 ต้องใช้เวลามาก แต่ถ้ามีแรงจูงใจก็เป็นไปได้ที่จะทำให้สคริปต์ของคุณเป็นไปไม่ได้หรืออย่างน้อยก็ใช้เวลามาก!


12
ฉันอยากจะแนะนำกับบริการดังกล่าว คุณไม่สามารถมั่นใจได้ว่าพวกเขาจะไม่ส่งมัลแวร์ใด ๆ ในนั้นก่อนส่งมอบให้คุณ แม้ว่าผู้สร้างเองจะไม่พยายามทำเช่นนั้นฝ่ายตรงข้ามสามารถประนีประนอมเซิร์ฟเวอร์เพื่อทำการฉีดอย่างลับๆ
ddnomad

-1

bzexe สามารถแปลงและบีบอัดไฟล์ได้


1
ฉันไม่ค่อยเห็นว่าสิ่งนี้จะป้องกันไม่ให้ทุกคนแตกไฟล์เพื่อรับเชลล์สคริปต์ดั้งเดิมซึ่งเป็นสิ่งที่ผู้ใช้ต้องการป้องกัน การบีบอัดไม่ได้ซ่อนอะไรเลย
Kusalananda
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.