Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/279.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 以下哪种脚本语言更适合笔测试?_Python_Ruby_Perl_Security_Penetration Testing - Fatal编程技术网

Python 以下哪种脚本语言更适合笔测试?

Python 以下哪种脚本语言更适合笔测试?,python,ruby,perl,security,penetration-testing,Python,Ruby,Perl,Security,Penetration Testing,首先,我想避免语言大战。可以选择的语言有Perl、Python和Ruby。我想说的是,我对所有这些都很满意,但问题是我不能只关注其中一个 例如,如果我看到一个很酷的Perl模块,我必须尝试一下。如果我看到一个不错的Python应用程序,我必须知道它是如何制作的。如果我看到Ruby DSL或Ruby Voodo,我会对Ruby着迷一段时间 现在我是一名Java开发人员,但计划在不久的将来学习CEH。我的问题是:对于工具编写和开发,您认为哪种语言最合适 再说一次,我不想引起火焰战或任何麻烦,我只想从

首先,我想避免语言大战。可以选择的语言有Perl、Python和Ruby。我想说的是,我对所有这些都很满意,但问题是我不能只关注其中一个

例如,如果我看到一个很酷的Perl模块,我必须尝试一下。如果我看到一个不错的Python应用程序,我必须知道它是如何制作的。如果我看到Ruby DSL或Ruby Voodo,我会对Ruby着迷一段时间

现在我是一名Java开发人员,但计划在不久的将来学习CEH。我的问题是:对于工具编写和开发,您认为哪种语言最合适

再说一次,我不想引起火焰战或任何麻烦,我只想从知道他们在做什么的编剧那里得到诚实的意见


还有一件事:也许你们中的一些人会问“为什么要选择一种语言?”。为了回答这个问题:我只想选择一种语言,以便尝试掌握它。

这取决于实现,如果它是分布式的,我会选择Java,正如您所知,因为它的可移植性。如果只是内部使用,或将在半受控环境中使用,则选择您最喜欢的维护方式,以及最具长期前景的方式


现在来回答这个问题,我会选择Perl,但我是一个linux爱好者,所以我在这方面可能有点偏见。

好吧,你在考虑什么样的漏洞利用?如果您想编写一些需要低级内容(ptrace、原始套接字等)的东西,那么您需要学习C语言。但是Perl和Python都可以使用。真正的问题是哪一个更适合你的风格


至于工具制作,Perl有很好的字符串处理能力,更接近系统,有很好的支持,但是我觉得这很混乱。我更喜欢Python:它是一种干净、易于使用、易于学习的语言,具有良好的支持(完整的语言/库参考、第三方库等)。而且(严格来说)很酷。

所有这些都应该足够了。除非您需要一种只提供一种语言的库,否则我会让个人偏好来指导我。

如果您正在寻找一种能很好地使用Java的脚本语言,您可能需要看看Groovy。它具有Perl(闭包、内置正则表达式、每个角落的关联数组)的灵活性和功能,但您可以从中访问Java代码,因此您可以访问大量库,尤其是正在开发的系统的其余部分

是一个很好的渗透测试框架。它主要是用Ruby编写的,所以如果你对这门语言很熟悉,也许你可以在那里学习。然而,要使用metasploit,您根本不需要知道任何语言

作为CEH发言,首先学习CEH材料。这将使您暴露于用于装载各种攻击的各种工具和平台。一旦您很好地理解了您的目标,就可以查看现有工具和平台的功能(前面提到的metasploit框架非常全面和健壮)。如何扩展它们以满足您的需求?一旦知道了这一点,就可以比较这些语言的功能


我还建议您看看发行版上提供的工具。

[免责声明:我主要是一名Perl程序员,这可能会影响我的判断。但是,我不是一个特别的部落,我认为在这个特定的问题上,我的论点相当客观。]

Perl被设计成无缝地融入到Unix环境中,这就是为什么它对主要具有OO背景的人(尤其是Java学派的OOP)感觉如此陌生的原因。然而,由于这个原因,它被广泛地安装在具有任何Unixoid操作系统的机器上,许多厂商的系统实用程序都是用它编写的。同样出于同样的原因,既没有安装Python也没有安装Ruby的服务器上仍然可能安装Perl,这也使得熟悉Perl非常重要。因此,如果您的CEH活动包括Unix上的大量活动,那么无论如何您都必须对Perl有一定的了解,您也可以专注于它

尽管如此,这在很大程度上是一个偏好问题。语言之间没有太多区别;他们的表达能力几乎相同。有些事情在其中一种语言中更容易一些,有些在另一种语言中更容易一些

就库而言,我不知道Ruby和Python如何相互比较——我知道Perl在一定程度上击败了它们。再说一次,有时候(特别是当你正在寻找满足共同需求的库时),唯一的效果就是你被各种选择淹没了。如果您只想在Python或Ruby库所涵盖的特定领域中做一些事情,那么CPAN上的大量其他内容并不一定是一个优势。然而,在利基领域,这很重要,你永远不知道你最终会有什么不可预见的需求(呃,顾名思义)

对于命令行中的一种线性用法,Python是一种非初学者

就交互式解释器环境而言,Perl…嗯…嗯,您可以使用调试器,这不是很好,或者您可以从CPAN安装一个调试器,但是Perl本身并没有提供一个好的调试器


因此,我认为Perl确实在满足您的特定需求方面有一点优势,但这只是一种优势。如果你选择Ruby,你的境况可能不会更糟。Python可能会给您带来更明显的不便,但它也不是一个坏的选择。

我可以为这三个问题进行论证:-)

Perl拥有CPAN的所有功能—在快速整合功能方面为您提供了巨大的优势。它还有一个非常灵活的测试基础设施,这意味着您可以在同一个框架中插入许多不同的自动化测试样式(包括其他语言的测试)

Ruby是一门很好学的语言,它缺少p语言中的一些粗糙之处