묻다:
안녕하세요, 스크립트 전문가! HTA 내에서 스크립트를 인코딩하는 방법은 무엇입니까?
-ll
답변:
안녕하세요, LL. 우리 가이 질문을 처음 보았을 때, 우리는 "큰 문제는 무엇입니까? HTML 파일에서와 같이 HTML 응용 프로그램 (HTA)에서 스크립트를 인코딩 할 수 없습니까?" 놀랍게도, 우리는 HTAS에서 스크립트를 인코딩 할 수없는 것 같습니다. 이 작업을 수행 할 때마다 다음과 같은 오류 메시지를 반환합니다.
ScriptingEncoderObject ( "scripting.encoder") 실패 : /scripts/test.hta
솔직히, 우리는 HTA에서 스크립트를 인코딩하는 방법을 찾지 못했습니다. 그러나 우리는이 문제를 해결하기 위해 까다로운 아이디어를 생각해 냈기 때문에 괜찮습니다. 한동안 보여 드리겠습니다.
그러나 그렇게하기 전에 스크립트를 인코딩하는 것이 무엇을 의미하는지 설명하기 위해 잠시 시간을 내야합니다. Microsoft에는 스크립트 코드를 "범프"하는 ScriptEncoder (Script Encoder)라는 유틸리티가 있습니다. 예를 들어 다음과 유사한 스크립트가 있다고 가정합니다.
strcomputer = "."
setobjwmiservice = getObject ( "winmgmts : //"& strcomputer & "/root/cimv2")
setColoperatingsystems = objwmiservice.execquery ( "select*fromwin32_operatingsystem")
foreachobjoperatingsystemincoloperatingsystems
Msgboxobjoperatingsystem.caption & ""& objoperatingsystem.version
다음
어떤 이유로 든 사람들이 스크립트 코드를 읽을 수 없기를 원한다고 가정하십시오. 결국, 스크립트를 실행할 권리가있는 사람은 누구나 메모장으로 열고 원하는 것을 볼 권리가 있습니다. 그러나 "스크립트 인코더"에 의해 동일한 스크립트가 처리 된 후에는 다음과 같이됩니다.
#@~^8aeaa ==@#@&@#@&, pp,?! 8pv+oru.n.kkw@#@&, pp, ~~ pkymzg : 2; d+.p {~ jcj@#@&, pp ~~, p ~ p, ~ u+o, w (l tq
und7k^+, '~! yr (%+1y`rarxsosyd) wwrp'pkod; wwrp'pkod; ww2! 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, p, p, p, p ~ p, p ~~, pw (%ra+dmorxt? h/o+h
J+./bgx@#@& ~~, pp ~~, p ~ pgnxy@#@& p, ppax9 ~?! 4@#@& qyqaaa ==^#~@
스크립트는 여전히 작동하고 있지만 누구나 코드를보고 작업 결과를 표절하기가 조금 더 어렵습니다. (맞습니다 : 스크립트 전문가보다 정말 낫습니다! 언급 된 농담의 대부분은 더 의미가 있습니다)
이제 기억해야 할 중요한 것은 암호화없이 스크립트를 인코딩 (또는 방해)한다는 것입니다. 그게 무슨 뜻입니까? 이것은 인코더가 대부분의 사람들로부터 스크립트를 숨 깁니다. 그러나 코딩에 대한 지식이 있거나 인터넷에서 다운로드 된 유틸리티가있는 실제 하드 코어 해커는이 코드를 깨뜨릴 수 있습니다. 이것은 특히 스크립트의 관리자 암호를 "숨기기"하지 않으며 "스크립트 인코더"가 암호가 스누핑되지 않도록 보장 할 수 없다고 생각하지 않습니다. 그것은 당신이 암호화자가 아닌 인코더라고 생각하는 것과 같지 않아 분명히 차이를 만듭니다.