Perl看起来非常简单和小巧。
一位朋友希望我运行一个简单的perl代码,我不明白perl脚本是否会比应该做的更多。
perl脚本可以像后门一样工作吗?可能是的然后..
如果perl脚本没有捕获显示信息,记录击键和其他东西,非程序员将如何看待?
谢谢
答案 0 :(得分:8)
如果您不理解该脚本,那么您没有比运行普通二进制可执行文件更多的保证。也就是说:你真的没有任何保证。
显然,不要以root身份运行程序(:
如果你真的需要运行脚本并且不信任你的朋友,你可以尝试在“沙盒”中运行它,例如虚拟操作系统,chroot'环境或{{ 3}}。 这是jail沿着这些方向。
答案 1 :(得分:4)
由于您怀疑该脚本是恶意的,因此您应该不能运行它。如果可能,按照建议粘贴您的代码,以便我们可以查看。
答案 2 :(得分:1)
除了一些值得注意的例外情况,我们可以制作一份清单,以减轻一些恐惧。
use Some::Module
)这些模块中的大多数将存在于CPAN(Perl模块的公共存储库)上。虽然这将是一个开放式搜索,但这将帮助您查看是否正在使用记录器或网络连接(use strict; use warnings;
没问题。)open
命令,因为这些命令可以读取/写入文件或进行其他系统连接。system
命令,甚至是“”,因为Perl使用这些命令在您的计算机上运行程序。tie
命令允许这些操作隐藏在变量中,use overload
编译指示允许它们隐藏在函数或运算符中。 (其中许多需要在package
环境中完成(缺少更好的词),所以请注意这些)。最后,eval
和/e
或/ee
正则表达式标志用于评估(读取:执行)代码,这些代码以其他形式存在,可能存储在变量中,或者在运行中创建,隐藏的代码可以通过这种机制“活跃起来”。*something = \*STDOUT
,可能会跟随它。请注意,这与简单乘法运算符的符号相同。在Perl中还有很多方法可以做恶意事件,而且上述事情中没有一个是不可能的,甚至不常见,但这或许会给你一个开始的地方。
答案 3 :(得分:0)
真的不可能知道脚本是否是恶意的(甚至图片文件可能包含恶意代码!),但是如果你想运行它,请尝试在虚拟机,沙箱或甚至{ {3}}(只是告诉作者你是否可以打破它,所以他可以解决它,或者那就是http://codepad.org)。
答案 4 :(得分:0)
为什么不让他一行一行地解释它是如何工作的?如果他真的是你的朋友,我无法想象他为什么要你运行恶意代码。