我已经广泛搜索了一种将我的 .hta 文件(和资源)编译为 .exe 文件的方法。
有很多应用程序声称能够做到这一点——但它们不适用于这个应用程序——它是 javascript 和 VB 的混合体。
简单地说,(而且天真地)我不希望人们查看/搞乱代码。任何建议或解决方案将不胜感激。
编辑:当然,我知道 javascript 和 VB 不是“可编译的”,因为它们是解释性语言。我只是在寻找一种真正隐藏来源的方法。
我已经广泛搜索了一种将我的 .hta 文件(和资源)编译为 .exe 文件的方法。
有很多应用程序声称能够做到这一点——但它们不适用于这个应用程序——它是 javascript 和 VB 的混合体。
简单地说,(而且天真地)我不希望人们查看/搞乱代码。任何建议或解决方案将不胜感激。
编辑:当然,我知道 javascript 和 VB 不是“可编译的”,因为它们是解释性语言。我只是在寻找一种真正隐藏来源的方法。
尝试使用VBSedit,它绝对适用于将 vbs 和 hta 转换为 exe
与 VBSedit 捆绑在一起的 HTAEdit 并没有真正隐藏 hta 代码。在运行时,它将原始 hta 文件提取到 %temp% 中的子目录中,并将其传递给 mshta.exe 以执行。据我所知,由 VBSedit 创建的转换后的 exe 似乎没有这样做。
您可以通过简单地将 HTA 包装到知道如何设置 HTA 上下文/窗口的可执行文件中来“编译为 exe”。
最简单的方法(听起来像 ExeScript)是先简单地提取 HTA/资源,然后执行它们。理论上可以通过将数据注入正在运行的 IE 上下文中来在没有临时文件的情况下执行此操作,但任务变得更加困难。内部 JS 可能会或可能不会被混淆,并且包装器可能会或可能不会添加额外的混淆/“加密”层。(PayMo,我相信还有其他的,使用包装的上下文方法来分发单个可运行的 exe)。
如果保护“知识产权”是目标,请聘请一位优秀的律师 :-)
我不确定是否要编译为 exe - 但如果你缩小和混淆你的源代码,除非你有一些非常有价值的东西,否则逆向工程将是一项艰巨的工作。
http://developer.yahoo.com/yui/compressor/
祝你好运。
你不需要编译器,你需要一个加密器/解密器,比如我的项目(正在建设中),CFS 项目(Cryptographica File Security)。
我的线索是为 HTA 创建动态生成的 VBScript 或 JScript 文件。所以你编译的不是 HTA,而是脚本。这种方法比打包到 SFX 的 HTA 更能满足您的安全要求。
首先准备资源 - 将所有外部文件导入 HTA:脚本、样式表和图像(base64 编码),以使您的 HTA 独立应用程序。然后创建例如 VBScript 文件,并将 HTA 中的所有 HTML 内容复制到脚本中的字符串变量,将换行符和制表符替换为" & vbCrLf & "
和" & vbTab & "
。添加代码以动态创建 HTA 窗口,.write()
将该字符串变量添加到窗口的文档中,然后退出脚本。
请注意,Window_OnLoad()
由于将内容推送到已加载的窗口,可能无法正常工作。
然后只需将完成的 VBScript 加密为 exe(使用真正的加密实用程序,例如 Primal Script 2012、ExeScript、VbsEdit 或 ScriptCryptor)。并使用 PE Explorer 更改图标。
所有这些都需要一些时间,但值得去做。
UPD:这是链接中准备好的脚本示例。