![如何为批处理文件创建不可提取的可执行文件?](https://linux22.com/image/1634923/%E5%A6%82%E4%BD%95%E4%B8%BA%E6%89%B9%E5%A4%84%E7%90%86%E6%96%87%E4%BB%B6%E5%88%9B%E5%BB%BA%E4%B8%8D%E5%8F%AF%E6%8F%90%E5%8F%96%E7%9A%84%E5%8F%AF%E6%89%A7%E8%A1%8C%E6%96%87%E4%BB%B6%EF%BC%9F.png)
我试过很多批处理转 EXE 应用程序,但没有一个是安全的。我们可以简单地使用 WinRAR 提取源文件并阅读批处理脚本。
那么,有没有什么方法可以安全地将批处理文件转换为 exe,以使其不可提取,从而源代码不可读?
答案1
您可能必须为此开发定制的解决方案。
您无法提取用“C”或类似语言编写的可执行文件的原因在于 C 代码被翻译成了机器代码。您会丢失变量名称、注释,有时甚至会丢失代码的结构,因为翻译并不总是精确的一对一翻译。使用某些工具(IDA Pro 等)可以识别代码的作用,但您永远无法恢复“原始”代码。
虽然我不确定你正在使用什么 Batch-to-EXE 程序,但它们的工作方式很可能与 powershell-to-exe 类似:脚本本身没有被翻译。相反,脚本被封装在一个运行脚本的小程序中。我可能错了,它实际上可能是在翻译脚本(我需要知道你正在使用什么程序)。罗布·范德沃德有一个很好的页面介绍各种不同的脚本编译器,还有一些关于批处理编译器的免责声明。我不知道有哪个可以将批处理代码转换为机器语言。
如果必须保护源代码,最便宜的选择可能是使用不同的语言。这可能比开发自己的编译器更快。
另一个快速选择可能是简单地混淆您的脚本,但这不会使其变得不可读,只是难以阅读。