如何识别可能经过混淆/加密的Lua脚本中的恶意代码

我是一个流行的论坛的一员,这个论坛主要是分享/销售 Lua 脚本,有些是开源的,而有些则不是。

我想知道是否有一种自动化的方法来确定某个 Lua 脚本是否包含恶意代码,例如:os.execute('format C:'),或者任何 os.execute 命令。

因为,即使我们要求用户向版主提供他脚本的开源副本,我们怎么能确定它是一样的呢?或者他更改了脚本的链接。

提前感谢。

点赞
用户1442917
用户1442917

在一个沙盒中运行脚本,并且只允许执行安全的命令。例如,禁用 os.execute。有关 Lua 的详细信息,请参阅 Lua SandBoxes 维基页面。

如果您需要允许像 os.execute 这样的调用,但需要过滤出_某些_调用,则基于代码审查来保护可能没有多少机会。如果代码包括类似 os.execute('for'..'mat C'..string.char(58)) 的东西怎么办?即使进行一些代码执行,你也无法检测到它是 'format C:'。

2014-07-17 20:47:06