以下哪种脚本语言更适合笔测试? [关闭]

2024-04-20

首先,我想避免语言上的激烈争论。可供选择的语言有 Perl、Python 和 Ruby。我想说的是,我对所有这些都感到满意,但问题是我不能只专注于其中一个。

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

目前我是一名 Java 开发人员,但计划在不久的将来参加 CEH。我的问题是:对于工具编写和漏洞利用开发,您认为哪种语言最合适?

再说一遍,我不想引起口水战或任何麻烦,我只是想要来自知道自己在做什么的编剧的诚实意见。

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


您可能需要 Ruby,因为它是 Metasploit 的母语,而 Metasploit 是事实上的标准开源渗透测试框架。 Ruby 将为您提供:

  • 梅塔普洛特的 http://www.metasploit.com/框架、操作码和 shellcode 数据库
  • 梅塔普洛特的红宝石洛康 http://rubyforge.org/projects/ruby-lorcon/原始 802.11 工作的绑定。
  • Metasploit 的 KARMA 绑定用于 802.11 客户端重定向。
  • Libcurl http://curl.haxx.se/libcurl/ruby/和 net/http 用于网络工具编写。
  • 事件机器 http://rubyforge.org/projects/eventmachine用于 Web 代理和模糊测试工作(或 RFuzz,它扩展了著名的 Mongrel Web 服务器)。
  • Metasm http://metasm.cr0.org/用于 shellcode 生成。
  • Distorm http://www.ragestorm.net/distorm/用于 x86 反汇编。
  • BinData http://blogfranz.blogspot.com/2008/01/bindata-for-ruby-fuzzers.html用于二进制文件格式模糊测试。

第二名是Python。 Python 中可用的渗透测试库比 Ruby 中更多(但不足以抵消 Metasploit)。商业工具往往也支持 Python——如果您是 Immunity CANVAS 或 CORE Impact 客户,您就会需要 Python。 Python 为您提供:

  • Twisted http://twistedmatrix.com/trac/用于网络访问。
  • PaiMei http://www.openrce.org/downloads/details/208/PaiMei用于程序跟踪和可编程调试。
  • CANVAS 和影响力支持。
  • 多恩赛夫的 http://www.matasano.com/log/695/windows-remote-memory-access-though-firewire/用于远程调试的火线库。
  • 与 WinDbg 集成 http://pydbgeng.sourceforge.net/用于远程 Windows 内核调试(Ruby 中对于内核调试仍然没有好的答案,这就是为什么我仍然偶尔使用 Python)。
  • 桃子绒毛器 http://peachfuzzer.com/和 Sully 进行模糊测试。
  • SpikeProxy 用于网络渗透测试(另外,OWASP 豹 http://www.owasp.org/index.php/Category:OWASP_Pantera_Web_Assessment_Studio_Project).

毫不奇怪,许多 Web 工作都使用 Java 工具。事实上的标准 Web 渗透测试工具是 Burp Suite,它是一个 Java swing 应用程序。 Ruby 和 Python 都有 Java 变体,您可以使用它们来访问此类工具。此外,Ruby 和 Python 都提供:

  • 与 libpcap 直接集成以进行原始数据包工作。
  • 用于加密的 OpenSSL 绑定。
  • IDA Pro 扩展。
  • 用于 API 访问的成熟(或至少合理)的 C 外部函数接口。
  • 用于 UI 工作的 WxWindows,以及用于 Web UI 的不错的 Web 堆栈。

使用这两种语言都不会出错,尽管对于主流渗透测试工作,Metasploit 可能会超越 Python 的所有优势,而目前,对于 x86 逆向工作,Python 卓越的调试界面超越了 Ruby 的所有优势。

另外:现在是 2008 年了。它们不是“脚本语言”。它们是编程语言。 ;)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

以下哪种脚本语言更适合笔测试? [关闭] 的相关文章

  • Django/gevent socket.IO 与 redis pubsub。我把东西放在哪里?

    我有一个独立的 python 脚本 它只是从 Twitter 的流 API 捕获数据 然后在收到每条消息时 使用 redis pubsub 将其发布到频道 tweets 这是该脚本 def main username username pa
  • 使用 Flask 时在 Python 中实现持久数据库连接的最佳实践

    我的问题是关于在生产环境或其他关注性能的环境中使用 Flask 时处理数据库连接的推荐方法 在 Flask 中 g 对象可用于存储内容 并且可以将打开的数据库连接放置在那里 以允许应用程序在同一请求期间的后续数据库查询中重用它们 但是 g
  • 从 SQL Server 中调用 Python 文件

    我的文件名中有 Python 脚本 C Python HL py 在此 Python 脚本中 有预测模型以及对 SQL 数据库中某些表的更新 我想将此文件称为 SQL 作业 我怎样才能做到这一点 这个问题不一样 如何在 SQL Server
  • 使用 Pandas 滚动差异

    您好 我正在尝试使用 Pandas 滚动函数来计算下表中的滚动差异 我正在尝试生成 每月可用项目 列中的值 但没有得到任何结果 请帮忙 Item Adds Subtracts Month Monthly Available items A
  • 设置区域设置和字符串模块

    这个简单的脚本 from locale import LC ALL setlocale print setlocale LC ALL from string import letters print letters 给我这个输出 tr TR
  • 在Python中随机化列表[重复]

    这个问题在这里已经有答案了 我想知道是否有一个好方法来 震动 Python 中的项目列表 例如 1 2 3 4 5 可能会被动摇 随机化 3 1 4 2 5 任何顺序都同样可能 from random import shuffle list
  • 遍历 globals() 字典

    我 尝试 使用globals 在我的程序中迭代所有全局变量 我就是这样做的 for k v in globals iteritems function k v 当然 这样做时 我只是创建了另外 2 个全局变量 k and v 所以我得到这个
  • 如何将 Jinja 与 Twisted 一起使用?

    我正在计划使用 Python 与 Twisted Storm 和 Jinja 一起开发一个讨论软件 问题是 Jinja 不是为 Twisted 或异步套接字库而设计的 并且使用 Twisted 提供的性能是我不打算使用 Flask 的原因
  • Python、cPickle、酸洗 lambda 函数

    我必须像这样腌制一组对象 import cPickle as pickle from numpy import sin cos array tmp lambda x sin x cos x test array tmp tmp tmp tm
  • “分页文件太小,无法完成此操作”尝试训练 YOLOv5 对象检测模型时出错

    我有大约 50000 个图像和注释文件用于训练 YOLOv5 对象检测模型 我在另一台计算机上仅使用 CPU 训练模型没有问题 但需要太长时间 因此我需要 GPU 训练 我的问题是 当我尝试使用 GPU 进行训练时 我不断收到此错误 OSE
  • 使用 Beautifulsoup 解析时保持 XML 文件的缩进

    我正在使用 BS4 解析 XML 文件并尝试将其写回新的 XML 文件 输入文件
  • 为什么在 python 控制台中对 SparkSession.builder.getOrCreate() 的调用被视为命令行 Spark-submit?

    代替python console我正在尝试创建一个Spark Session 我没有使用pyspark以隔离依赖关系 为什么是spark submit命令行提示并生成错误 NOTE SPARK PREPEND CLASSES is set
  • 尝试利用?

    我看到我的 nopCommerce 网站记录了以下搜索 ADw script AD4 alert 202 ADw script AD4 我有点好奇他们想要完成什么 我搜索了一下 似乎是ADw script AD4 以 UTF7 编码为
  • 将 Matlab MEX 文件中的函数直接嵌入到 Python 中

    我正在使用专有的 Matlab MEX 文件在 Matlab 中导入一些仿真结果 当然没有可用的源代码 Matlab 的接口实际上非常简单 因为只有一个函数 返回一个 Matlab 结构体 我想知道是否有任何方法可以直接从Python调用M
  • 在 Ruby 中, put 方法应用到哪个对象?

    在 ruby 中 您使用点来调用方法 或者换句话说 将方法发送到所处理的对象 100 to i 我们正在向对象 100 发送消息 to i 当我们这样做时 puts hello put 方法应用于哪个对象 我是这样想的 self puts
  • 如何从 Selenium 获取元素的属性

    我正在 Python 中使用 Selenium 我想得到 val of a
  • Windows 10 上的 Tensorflow 安装问题

    我正在尝试在 Win 10 计算机上安装 Tensorflow 我成功安装了Python 3 7 然后尝试按照tensorflow org上的安装说明进行操作 执行时 pip install tensorflow 我收到以下错误消息 错误
  • 如何在特定时间启动Tornado周期性回调?

    目前在我的 Tornado 应用程序中 我正在使用定期调用回调PeriodicCallback每隔一小时 像这样 import tornado ioloop from tornado ioloop import PeriodicCallba
  • Perl 命令或模块,如 Linux“文件”命令

    我有一个下载文件的脚本 但这些文件在下载之前没有任何有关它们的信息 在为 Linux 编写代码时 我刚刚调用了qx file filename 查看它是否是 JPEG 图像 如果不是则将其删除 然而 我现在正尝试重写为独立于平台的纯 Per
  • 有没有办法从 UTF-8 编码的文件中删除 BOM?

    有没有办法从 UTF 8 编码的文件中删除 BOM 我知道我所有的 JSON 文件都是以 UTF 8 编码的 但是编辑 JSON 文件的数据录入人员将其保存为带 BOM 的 UTF 8 当我运行 Ruby 脚本来解析 JSON 时 它失败并

随机推荐

  • 通过TCP在python中接收分隔的Protobuf消息

    我正在尝试接收一条 protobuf 消息 该消息是从我的 python 应用程序中使用 writeDelmitedTo 的 java 应用程序发送的 经过一些研究 我已经遇到了这段代码来从套接字读取消息 对其进行解码并解析 data so
  • 如何找出文件的 MIME 类型(Content-Type)?

    有没有办法找出 Linux bash 脚本中文件的 MIME 类型 或者称为 Content Type 我需要它的原因是 ImageShack 似乎需要它来上传文件 因为出于某种原因它会将 png 文件检测为application octe
  • samba中如何获取用户的域信息

    BG 我在redhat linux中构建了samba 并共享一个文件夹 然后从Windows访问共享文件夹 如下所示 可以通过命令 smbstatus 获取连接信息 root Redhat6 pam d smbstatus Samba ve
  • .NET 中的 GAC 是什么?

    只是为外行寻找 GAC 的简短概述 而不是链接 是的 基本上这是一种保持 DLL 全局可访问而不用担心冲突的方法 不再有 DLL 地狱 每个架构和版本都有自己的生存空间 它也有自己的方式在资源管理器中浏览它 所以如果你去 C Windows
  • axios - 发送表单数据和非表单数据

    我正在使用 axios 将数据发送到我的 nodejs express 服务器 如果我想发送表单数据 我会执行以下操作 并且效果很好 const formData new FormData formData append nameOfFil
  • 将开放曲线转换为有序像素列表:使用 numpy 的 Python 测试代码

    我有一个 numpy 数组中的开放曲线的图像 我需要构建一个根据曲线上的位置排序的点坐标列表 我写了一个剧本草稿 http dip4fish blogspot com 2011 06 converting open curve to lis
  • Jetpack Navigation 在 onNewIntent 中手动处理深度链接

    我正在使用 Jetpack 导航 我需要手动处理深层链接 因为 1 隐式深层链接无法正常工作android launchMode singleTask 如果应用程序已打开 深层链接无法正确重定向 https stackoverflow co
  • Hibernate - 不使用 import.sql 的种子数据库

    我来自 php laravel 每当我想为数据库播种时 我只需要运行php artisan db seed 这将运行一些 php 脚本 将数据插入数据库 我想使用 spring hibernate 实现同样的功能 我知道我可以添加一个imp
  • 如何描述类型滚动事件?

    我在滚动上添加了侦听器 并尝试使用事件 我如何描述 type 而不是 any 反应16 8 6 脚本3 4 const Component FC
  • 将 nil 字符串指针设置为空字符串

    如何将类型中字符串指针的引用值设置为空字符串 考虑这个例子 package main import fmt type Test struct value string func main t Test nil if t value nil
  • php:通过 UTC 偏移量设置时区

    使用 javascript 我知道我的用户时区是 UTC 3 现在我想用这些知识创建 DateTime 对象 usersNow new DateTime now new DateTimeZone 3 我收到回复 Unknown or bad
  • 创建具有多个子上下文的 Spring Boot 应用程序

    我正在尝试使用 Spring Boot 和分层应用程序上下文创建一个应用程序 我当前的主要方法如下所示 public static void main String args new SpringApplicationBuilder Tes
  • “文本可视化工具”使用哪个类?

    当我使用DebuggerVisualizer属性如下 c assembly DebuggerVisualizer typeof DataSetVisualizer typeof DataSetVisualizerSource Target
  • 使用 XSL 进行转换而无需对最终输出进行 HTML 编码的属性方式是什么?

    所以 我正在使用 NET 我有一个 XSL 文件 C 中的 XslTransform 对象 它读取 XSL 文件并将一段 XML 数据 内部制造 转换为 HTML 我注意到我的最终输出是 lt and gt 自动编码成 lt and gt
  • 使用开关启用和禁用推送通知

    我正在使用 firebase 推送通知 FCM 并且我想使用切换按钮启用和禁用通知 为此 我共享了启用和禁用通知的首选项 但似乎我的逻辑根本不起作用 开关打开或关闭没有任何区别 我仍然收到通知 我需要帮助谢谢 活动 val sharedPr
  • LoadfromText 给出错误 2285(Microsoft Office Access 无法创建输出文件)

    当使用loadfromtext在access中导入表单时 我不断收到运行时错误2285 在互联网上搜索发现很多人都有同样的问题 但没有解决方案 有谁知道导致此错误的原因是什么 Edit 此外 在包含数据库的文件夹中还会创建一个名为 erro
  • 如何对服务的默认 WCF 端点进行硬编码?

    在自托管服务中 我想使用 App config 中指定的端点 如果存在 或者如果 App config 为空 则使用代码中指定的默认端点 我怎样才能做到这一点 Edit 澄清一下 这是在服务器 服务 端使用 ServiceHost 一种方法
  • jQuery 在所有浏览器中的 SlideUp() 上闪烁...附有示例页面

    我知道这个问题已经讨论过好几次了 但我有一个有点不同的问题 当调用 slideUp 并且浏览器风已经向下滚动以查看所有底部内容时 当 div 滑动关闭时它会闪烁多次 示例页面如下 只需单击它所说的位置 然后滑动到底部并关闭上面的 div 之
  • printf 内部如何工作? [复制]

    这个问题在这里已经有答案了 可能的重复 无需汇编的 C C 函数定义 https stackoverflow com questions 2442966 c c function definitions without assembly 你
  • 以下哪种脚本语言更适合笔测试? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 首先 我想避免语言上的激烈争论 可供选择的语言有 Perl Python 和 Ruby 我想说的是 我对所有这些都感到满意 但问题是我不能只专注