【问题标题】:Compiling .hta file to .exe将 .hta 文件编译为 .exe
【发布时间】:2010-10-20 15:05:42
【问题描述】:

我已经广泛搜索了一种将我的 .hta 文件(和资源)编译为 .exe 文件的方法。

有很多应用程序声称能够做到这一点 - 但他们没有为这个应用程序工作 - 这是一个 javascript 和 VB 的混合体。

简单地说,(而且天真地)我不希望人们查看/搞乱代码。任何建议或解决方案将不胜感激。

编辑:当然,我知道 javascript 和 VB 不是“可编译的”,因为它们是解释性语言。我只是在寻找一种真正隐藏来源的方法。

【问题讨论】:

  • 如果您将 vbscript 部分转换为 jscript,然后您可以通过压缩器(例如 Google 的闭包编译器或 YUI 压缩器)运行所有代码。那些可以很好地混淆代码。
  • 是的,我看过压缩代码。我认为这是最后一种情况。虽然它并不“安全”,但它肯定有助于阻止逆向工程。

标签: javascript html vb.net hta


【解决方案1】:

与 VBSedit 捆绑在一起的 HTAEdit 并没有真正隐藏 hta 代码。在运行时,它将原始 hta 文件提取到 %temp% 中的子目录,并将其传递给 mshta.exe 以执行。据我所知,由 VBSedit 创建的转换后的 exe 似乎没有这样做。

【讨论】:

  • 在我的例子中,HTAEdit "compiled" exe 将 HTA 文件提取到 %LOCALAPPDATA%/Temp/{}/.hta
【解决方案2】:

尝试使用VBSedit,它绝对适用于将vbs和hta转换为exe

【讨论】:

    【解决方案3】:

    您可以通过简单地将 HTA 包装到知道如何设置 HTA 上下文/窗口的可执行文件中来“编译为 exe”。

    最简单的方法(听起来像 ExeScript)是先简单地提取 HTA/资源,然后执行它们。理论上可以通过将数据注入正在运行的 IE 上下文中来在没有临时文件的情况下执行此操作,但任务变得更加困难。内部 JS 可能会或可能不会被混淆,并且包装器可能会或可能不会添加额外的混淆/“加密”层。 (PayMo,我相信还有其他的,使用包装的上下文方法来分发单个可运行的 exe)。

    如果保护“知识产权”是目标,请聘请一位优秀的律师 :-)

    【讨论】:

    • 是的,不幸的是,好律师的建议是相关的。软件本身的价值不如其背后的想法。复制软件通常很容易。我们正在使用的这个特定 API 以前从未以这种特定方式使用过。
    【解决方案4】:

    我不确定是否要编译为 exe - 但如果你缩小和混淆源代码,除非你有非常有价值的东西,否则逆向工程将是一项艰巨的工作。

    http://developer.yahoo.com/yui/compressor/

    祝你好运。

    【讨论】:

    • 我能够使用 ExeScript (hide-folder.com/overview/hf_7.html) “编译”为 .exe。但我发现它在作弊......它说它不会向 HD 写入任何内容,但我在运行时在用户临时文件中找到了所有源文件。我会试试你的建议。
    • 另外,你知道这是否不仅支持 .hta 文件,还支持相关的源文件? (如 .js 和 .htm(l) 等...)
    • 我的建议是将尽可能多的 JavaScript 放入外部 .js 文件中并缩小它们。我不确定您如何以任何有意义的方式混淆/缩小 HTML。
    【解决方案5】:

    您不需要编译器,您需要一个加密器/解密器,例如我的项目(正在建设中),CFS 项目(Cryptographica File Security)。

    【讨论】:

      【解决方案6】:

      我的线索是为 HTA 创建动态生成的 VBScript 或 JScript 文件。所以你编译的不是 HTA,而是脚本。这种方法比打包到 SFX 的 HTA 更能满足您的安全要求。

      首先准备资源 - 将所有外部文件导入 HTA:脚本、样式表和图像(base64 编码),以使您的 HTA 独立应用程序。然后创建例如 VBScript 文件,并将所有 HTML 内容从 HTA 复制到脚本中的字符串变量,将换行符和制表符替换为 " & vbCrLf & "" & vbTab & "。将代码添加到create HTA window dynamically.write() 那个字符串变量到窗口的文档中,然后退出脚本。

      请注意,Window_OnLoad() 可能由于将内容推送到已加载的窗口而无法正常工作。

      然后只需将完成的 VBScript 加密为 exe(使用真正的加密实用程序,例如 Primal Script 2012、ExeScript、VbsEdit 或 ScriptCryptor)。并使用 PE Explorer 更改图标。

      所有这些都需要一些时间,但值得去做。

      UPD:这是link准备的脚本示例。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-01-11
        • 1970-01-01
        • 2012-05-15
        • 2013-07-19
        • 1970-01-01
        相关资源
        最近更新 更多