用vbs在 HTA 内对脚本进行编码的方法

2023-12-05 0 768

问: 您好,脚本专家!如何在HTA内对脚本进行编码? –LL 答: 您好,LL。您知道,刚看到这个问题时,我们就在想:“这有什么大不了的?难道不能像在HTML文件中那样在HTML应用程序(HTA)中对脚本进行编码吗?”令我们大为吃惊的是,好像不能在HTA中对脚本进行编码;每次试图这样做时,都会返回像下面这样的错误消息: Scriptingencoderobject(\”Scripting.Encoder\”)failedonC:\\Scripts\\test.hta 老实说,我们从未找到在HTA中对脚本进行编码的方法。不过没关系,因为我们的确想出了一个解决此问题的鬼点子。我们一会儿就为您展示。 但是,在做之前,我们需要花点儿时间解释对脚本编码是什么意思。Microsoft有一个实用程序,名为ScriptEncoder(脚本编码器),可将您的脚本代码“打乱”。例如,假设您有一个类似下面的脚本: strComputer=\”.\” SetobjWMIService=GetObject(\”winmgmts:\\\\\”&strComputer&\”\\root\\cimv2\”) SetcolOperatingSystems=objWMIService.ExecQuery(\”Select*fromWin32_OperatingSystem\”) ForEachobjOperatingSystemincolOperatingSystems MsgboxobjOperatingSystem.Caption&\”\”&objOperatingSystem.Version Next 假设出于某些原因,您希望人们无法阅读脚本代码。这是个问题:毕竟,任何人只要有权运行脚本,就同样有权在记事本中打开此脚本,并且想看什么就看什么。不过,同一个脚本经“脚本编码器”处理后,会成为下面显示的样子: #@~^8AEAAA==@#@&@#@&@#@&,PP,?!8PV+OrU.n.kkW@#@&,PP,~~PkYMZG:2;D+.P{~JcJ@#@&,PP~~,P~P,~U+O,W(Ltq UnD7k^+,\’~!Yr(%+1Y`rArxsosYd)wwrP\’PkOD;Wh2!Y+.~LP~J\’.KWO\’mb:\\yJ*@#@&@#@&~P,P~~,PP,~?YP1Gsra+MlOkULUXdYh/,\’~G( L\\(U+.\\b^R3X+1pEDH~{@#@&~P,P~~,PP,~P,PPvEj+^+1Y~e~W MWhPqrx2m6a+DCObxL?HdD+hr#@#@&@#@&P,~P,P~P,P~oKDPACm4PW(%6wDmYr xLjH/O+s~kP^G^rwn.mYrxTjH/O:k@#@&,P,~P,P~P,P~~,PHkL4K6PK8%ra+M lOkULUXdYhR;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==^#~@ 脚本仍可正常运行,只是任何人再想查看代码并剽窃您的工作成果就有点困难了。(您说对了:尽管如此,但它确实要比您好,脚本专家!中提到的大多数笑话更有意义) 现在,要记住的重要一点是,我们只将脚本编码(或打乱),而绝对没有加密。这意味着什么?这意味着编码器会对多数人隐藏您的脚本;但是,一个掌握编码知识或拥有从Internet下载的实用程序的真正铁杆黑客,却能破解此代码。这尤其意味着永远不要在脚本中“隐藏”管理员密码,也不要以为“脚本编码器”能保证密码不被窥探。它不会像您想的那样,因为它是编码器而不是加密器,这绝对是有区别的。 那么,在HTA中对脚本编码的问题又怎么样呢?好吧,我们假设您有一个类似下面所示的HTA(我们同样假设您已经下载并安装了“脚本编码器”): <head> <title>OperatingSystemVersion</title> <HTA:APPLICATION APPLICATIONNAME=\”OperatingSystemVersion\” SCROLL=\”yes\” SINGLEINSTANCE=\”yes\” > </head> <scriptlanguage=\”VBScript\”> SubGetOSVersion strComputer=\”.\” SetobjWMIService=GetObject(\”winmgmts:\\\\\”&strComputer&\”\\root\\cimv2\”) SetcolOperatingSystems=objWMIService.ExecQuery_ (\”Select*fromWin32_OperatingSystem\”) ForEachobjOperatingSystemincolOperatingSystems MsgboxobjOperatingSystem.Caption&\”\”&_ objOperatingSystem.Version Next EndSub </script> <body> <inputtype=\”button\”value=\”OperatingSystem\”name=\”run_button\”onClick=\”GetOSVersion\”> </body> 如果要对此HTA的VBScript部分编码,首先要使用\’**StartEncode**标记在要编码部分的开始处进行标记。换言之,<Script>标记需要像下面这样,使\’**StartEncode**恰好位于VBScript代码的第一行之前: <scriptlanguage=\”VBScript\”> \’**StartEncode** SubGetOSVersion strComputer=\”.\” SetobjWMIService=GetObject(\”winmgmts:\\\\\”&strComputer&\”\\root\\cimv2\”) SetcolOperatingSystems=objWMIService.ExecQuery_ (\”Select*fromWin32_OperatingSystem\”) ForEachobjOperatingSystemincolOperatingSystems MsgboxobjOperatingSystem.Caption&\”\”&_ objOperatingSystem.Version Next EndSub </script> 从理论上来讲,这样便能通过运行Screnc.exe并传递两个参数(现有HTA文件(Test.hta)的名称和要指定给编码文件(Encoded.hta)的名称)来对脚本编码: C:\\Scripts>screnctest.htaencoded.hta 不幸的是,这样做行不通。 为什么?噢,我们实在是不能确定。不过,我们知道怎样会真正行得通。我们只需将现有文件的扩展名.hta更改为.htm。换言之,我们只需将Test.htm文件重新命名。“脚本编码器”无法处理HTA文件,但是处理HTML文件就没有问题了。现在,我们可以使用类似下面的语法启动“脚本编码器”: C:\\Scripts>screnctest.htmencoded.hta 这样做确实可行吗?别告诉我们您对脚本专家表示怀疑!编码后的.hta将类似下面这样: <head> <title>OperatingSystemVersion</title> <HTA:APPLICATION APPLICATIONNAME=\”OperatingSystemVersion\” SCROLL=\”yes\” SINGLEINSTANCE=\”yes\” > </head> <scriptlanguage=\”VBScript.Encode\”> \’**StartEncode**#@~^8AEAAA==@#@&@#@&@#@&,PP,?!8PV+OrU.n.kkW@#@&,PP,~~PkYMZG:2;D+.P{~JcJ@#@&,PP~~,P~P,~U+O,W(Ltq UnD7k^+,\’~!Yr(%+1Y`rArxsosYd)wwrP\’PkOD;Wh2!Y+.~LP~J\’.KWO\’mb:\\yJ*@#@&@#@&~P,P~~,PP,~?YP1Gsra+MlOkULUXdYh/,\’~G( L\\(U+.\\b^R3X+1pEDH~{@#@&~P,P~~,PP,~P,PPvEj+^+1Y~e~W MWhPqrx2m6a+DCObxL?HdD+hr#@#@&@#@&P,~P,P~P,P~oKDPACm4PW(%6wDmYr xLjH/O+s~kP^G^rwn.mYrxTjH/O:k@#@&,P,~P,P~P,P~~,PHkL4K6PK8%ra+M lOkULUXdYhR;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==^#~@</script> <body> <inputtype=\”button\”value=\”OperatingSystem\”name=\”run_button\”onClick=\”GetOSVersion\”> </body> 它仍是个有效的HTA;单击按钮会返回本地机器上安装的操作系统的名称和版本。但是,对于任何试图查看代码的人,它看上去纯粹就是一些杂乱信息。(不用说,脚本专家比任何人都更了解这些杂乱信息!)

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

悠久资源 hta 用vbs在 HTA 内对脚本进行编码的方法 https://www.u-9.cn/jiaoben/hta/99522.html

常见问题

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务