Re: 如何检查运行脚本是否加密我为此创建了一个愿望清单项目
Re: 如何检查运行脚本是否加密@保丁,
我没试过这个,但我看到加密的脚本包含在 Encrypted() 函数中。 这意味着您可以 include() 目标脚本,解析脚本以查看其中一个函数标头是否包含 () Encrypted() 标头。这是一个模糊的回应,但它可能是可能的。

这是我在 JMP Documentation Library.pdf 中截取的 JMP 17.0.0 信息的位置。

Re: 如何检查运行脚本是否加密//
// This reports if the isEncrypted function is
// encrypted, NOT some file it might be called from.
// It works because part of the JSL encryption tries
// to prevent the internals (like expressions) of
// your JSL from being converted to text that could
// be printed.
//
isEncrypted = Function( {},
{x},
x = Expr( 1 + 1 );
Char( Name Expr( x ) ) != "1 + 1";
);
write("\!n isEncrypted()=",isEncrypted(),"\!n");Re: 如何检查运行脚本是否加密我们的 vscode 扩展甚至不能真正从编辑器中运行加密的东西,除非它是一个 include。如果可以安全地假设加密是全有或全无,那么我认为@Craige_Hales可能是最好的选择。
如果您需要它是特定于模块的,那就更难了,因为我们不将表达式作为包含运行(因为有时文件没有保存,所以它不会是包含)。
取决于您如何设置范围。也许您可以只对文件名进行硬编码而不是使用 includefilelist()?
例如。我创建了一个脚本 `test.jsl`
Names Default to here(1);
isEncrypted = Left(LoadTextFile("test.jsl"),9)== "//-e6.0.2"; // I had to edit this because that's what my encryption gives.
if(isEncrypted,
print("This script is encrypted"),
print("This script is not encrypted")
);
如果我加密该脚本,然后将其从另一个脚本包含在我可以获得的 vscode 中。

这绝对不是完美的,并且对您的结构有很多假设。但这也许有用吗?
无论哪种方式,我都在GitLab 仓库
@ben_ph也许你能想到更好的解决方法?
Re: 如何检查运行脚本是否加密谢谢大家的建议! 我的目标是在 VSCode 中进行开发工作,然后将整个内容加密并打包到一个插件中。 所以这是关于检查主文件是否加密,当它直接在 JMP 中运行或在开发模式下仍在 VS Code 中运行时。 Craige 的解决方案为我提供了我一直在寻找的功能!
Re: 如何检查运行脚本是否加密小心依赖加密——除非你使用函数,否则它很容易被破解——比如,一个加密文件是一个函数,没有其他东西是非常安全的,但如果它是类或只是一个通用脚本,它是很容易得到 OG 脚本。
如何检查运行脚本是否加密我想从正在运行的脚本检查脚本是否加密。 这是为了区分脚本的开发版本和发布版本之间的行为,而无需更改代码中的变量。所以像这样:
If( !Script is encrypted(),
//Do bit of code for development version
,
//Do bit of code for release version
)
一种方法是检查脚本是否以“//-e12.1”似乎位于所有加密脚本的顶部。
Left(LoadTextFile(IncludeFileList()[1]),8)== "//-e12.1";
但这在 VSCode 中不起作用,因为它给出了:

所以你将始终运行发布代码。
自动化和脚本编写