尝试查找可以验证正在运行的脚本是否已被修改的方法。我以为我可以签署脚本并让它自行检查,但唯一的保护是将所有执行策略设置为仅使用签名脚本运行,在某些位置可能不是这样。
我还考虑过编译脚本,但实际上并不知道实际会实现什么......
出于兼容性原因,尽量使其尽可能免于依赖,因此最低版本的Powershell会减少对外部库的依赖。
答案 0 :(得分:1)
开放脚本很难保护。有几种选择。
1:将脚本编译为可执行文件。这可以防止大多数用户知道如何修改脚本。
2:缩小/丑化脚本,使其变得非常难以理解或修改而不会破坏。
3:正如您所提到的,签名脚本可能会有所帮助,具体取决于环境。
4:使用上述方法之一,让脚本与服务器核对,以验证脚本的完整性。
这些都不是100%万无一失,但它确实为您提供了选项,具体取决于脚本运行的环境。
以下是一个模糊PowerShell脚本的应用示例:PowerShell Obfuscator