【问题标题】:how to protect batch source code?如何保护批处理源代码?
【发布时间】:2012-06-26 09:04:50
【问题描述】:

好的,所以我尝试使用许多程序将 bat 转换为 exe,但最后它们都只是将 bat 文件放在 temp 文件夹中,所以我想知道是否有另一种方法来保护代码

我想有没有办法在执行 exe 文件后从 temp 文件夹中删除该 bat ?

我什至认为有没有办法让 exe 将 temp bat 放入内存?我听说它可能,但我不知道如何做到这一点

任何想法

我想要这个,因为我给了客户一个示例 exe(完成了一半的工作)文件来测试它,然后支付了一个我花了很多时间在上面的程序,但是 2 天后他回答我说他不感兴趣,所以我认为他确实得到了源代码

【问题讨论】:

  • 源是源,可执行是可执行的。我怀疑他反向设计了你的文件。或许他根本就不感兴趣……
  • 他没有反转任何东西,当他执行file.exe时就这么简单,他去%temp%并得到bat文件就这么简单
  • 您应该用 C++ 或 C# 重写它,如果您发布您的批处理文件代码,我们可以帮助您将其编写成更安全的可执行文件。
  • 谢谢,所以我可以推断没有办法保护批处理源,无论如何幸运的是我 4 年前在大学学习 C 语言,所以也许我应该去回忆一下
  • 无论如何我都不知道,毕竟它只是纯文本,不需要编译,所以即使有可能也很难。 C将是一个不错的选择,祝你好运! :)

标签: batch-file data-protection


【解决方案1】:

经过一番搜索,我找到了this,这是一个使用7-Zip 将批处理编译成exe 的批处理脚本。它仍然会将其转储到 %temp% 中,但它确实说它会在完成后删除所有临时文件,这是您所说的。

您的其他选择是用适当的编程语言(如 C 或 C++)重新编写代码。虽然反编译代码可能并非不可能,但我认为没有人会费心去尝试!

【讨论】:

  • 是的,但是如果你关闭窗口点击 x,它不会删除临时文件,如果你保持程序打开,你可以从 temp 中获取 bat 文件,我已经看过了,事实上,我注意到将例如 system("@echo off");所以我可能是我可以在系统之间放置所有命令
  • 我没有测试过,但我会相信你的话。是的,据我记得你可以在 C++ 中执行system(command),所以我想在 C 中它会是一样的。虽然你只能使用单个命令,但它并不总是很好用,例如 set vars并在其他地方使用它们,但这完全取决于你想做什么。
  • 是的,变量和特殊字符都有问题,但是如果我想保护源代码,恐怕我必须这样做
  • 是的,你说得对,但是除非你用那种语言重写,否则我想不出更好的方法。
【解决方案2】:

你也可以让它在完成后自行删除。

查看How to make .BAT file delete it self after completion?的这个答案

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-27
    • 2019-09-15
    • 1970-01-01
    • 2010-09-12
    • 2017-09-03
    • 1970-01-01
    相关资源
    最近更新 更多