ถาม:
สวัสดีผู้เชี่ยวชาญสคริปต์! จะเข้ารหัสสคริปต์ภายใน HTA ได้อย่างไร?
-
คำตอบ:
สวัสดี ll. คุณรู้ไหมเมื่อเราเห็นคำถามนี้ครั้งแรกเรากำลังคิดว่า "เรื่องใหญ่คืออะไรเราไม่สามารถเข้ารหัสสคริปต์ในแอปพลิเคชัน HTML (HTAs) เหมือนที่เราทำในไฟล์ HTML ได้หรือไม่" ด้วยความประหลาดใจของเราดูเหมือนว่าเราไม่สามารถเข้ารหัสสคริปต์ใน HTAs ได้ ทุกครั้งที่เราพยายามทำสิ่งนี้เราจะส่งกลับข้อความแสดงข้อผิดพลาดดังต่อไปนี้:
ScriptingEncoderObject ("Scripting.encoder") failedonc: /scripts/test.hta
สุจริตเราไม่เคยพบวิธีที่จะเข้ารหัสสคริปต์ใน HTA แต่ก็โอเคเพราะเราคิดว่าเป็นความคิดที่ยุ่งยากในการแก้ปัญหานี้ เราจะแสดงให้คุณเห็นในขณะที่
อย่างไรก็ตามก่อนที่จะทำเราต้องใช้เวลาสักครู่เพื่ออธิบายว่าการเข้ารหัสสคริปต์หมายถึงอะไร Microsoft มียูทิลิตี้ที่เรียกว่า ScriptEncoder (Script Encoder) ที่ "กระแทก" รหัสสคริปต์ของคุณ ตัวอย่างเช่นสมมติว่าคุณมีสคริปต์คล้ายกับต่อไปนี้:
strcomputer = "."
setObjwmiservice = getObject ("winmgmts: //" & strcomputer & "/root/cimv2"))
SetColoperatingSystems = objwmiservice.execQuery ("เลือก*fromwin32_operatingsystem")
foreachobjoperatingsystemincoloperatingsystems
msgboxobjoperatingsystem.caption & "" & objoperatingsystem.version
ต่อไป
สมมติว่าด้วยเหตุผลบางอย่างที่คุณต้องการให้คนไม่สามารถอ่านรหัสสคริปต์ได้ นี่เป็นปัญหา: ท้ายที่สุดทุกคนที่มีสิทธิ์เรียกใช้สคริปต์มีสิทธิ์เหมือนกันในการเปิดใน Notepad และดูสิ่งที่คุณต้องการ อย่างไรก็ตามหลังจากสคริปต์เดียวกันถูกประมวลผลโดย "สคริปต์ตัวเข้ารหัส" มันจะกลายเป็นดังต่อไปนี้:
#@~^8aeaaa ==@#@&@#@&, pp,?! 8pv+oru.n.kkw@#@&, pp, ~~ pkymzg: 2; d+.p {~ jcj@#@&, pp ~~, p ~ p, ~ u+o
und7k^+, '~! yr (%+1y`rarxsosyd) wwrp'pkod; wh2! y+. ~ lp ~ j'.kwo'mb:/yj*@#@&@@& ~ p, p ~~, pp, ~? yp1gsra+mlokuluxdy h/, '~ g (
l /(u+./b^ r3x+1pe dh ~ {@#@& ~ p, p ~~, pp, ~ p, ppvej+^+1y ~ e ~ w
MWHPQRX2M6A+DCOBXL? HDD+HR#@#@&@#@& P, ~ P, P ~ P, P ~ OKDPACM4PW (%6W DMYR
xljh/o+s ~ kp^g^rwn.myrxtjh/o: k@#@&, p, ~ p, p ~ p, p ~~, phkl4k6pk8%ra+m
lokuluxdy hr; l2obwx ~ ', j ~ j,', {@#@& p, pp, p, ~ p, p ~ p, p ~~, pw (%ra+dmorxt? h/o+h
j+./bgx@#@& ~~, pp ~~, p ~ pgnxy@#@& p, ppax9 ~?! 4@#@& qyqaaa ==^#~@
สคริปต์ยังคงใช้งานได้ แต่มันยากกว่าเล็กน้อยสำหรับทุกคนที่จะดูรหัสและลอกเลียนแบบผลงานของคุณ (คุณพูดถูก: มันดีกว่าคุณผู้เชี่ยวชาญสคริปต์! เรื่องตลกส่วนใหญ่ที่กล่าวถึงในนั้นทำให้รู้สึกมากกว่า)
ตอนนี้สิ่งสำคัญที่ต้องจำคือเราเข้ารหัสสคริปต์ (หรือรบกวน) โดยไม่มีการเข้ารหัสใด ๆ นั่นหมายความว่าอย่างไร? ซึ่งหมายความว่าตัวเข้ารหัสซ่อนสคริปต์ของคุณจากคนส่วนใหญ่ อย่างไรก็ตามแฮ็กเกอร์ฮาร์ดคอร์จริงที่มีความรู้เกี่ยวกับการเข้ารหัสหรือมียูทิลิตี้ดาวน์โหลดจากอินเทอร์เน็ตสามารถถอดรหัสรหัสนี้ได้ โดยเฉพาะอย่างยิ่งหมายความว่าไม่เคย "ซ่อน" รหัสผ่านของผู้ดูแลระบบในสคริปต์และคุณไม่คิดว่า "ตัวเข้ารหัสสคริปต์" สามารถมั่นใจได้ว่ารหัสผ่านไม่ได้ถูกสอดแนม มันจะไม่เหมือนที่คุณคิดว่ามันเป็นตัวเข้ารหัสมากกว่า Encryptor ซึ่งสร้างความแตกต่างอย่างแน่นอน