内容简介:Ruby编程语言可以说是Metasploit框架的核心,想要学习好Metasploit模块编写必须要会Ruby。不过Ruby到底是什么呢?根据Ruby官方网站的说法:”Ruby一门开源的动态编程语言,注重简洁和效率。Ruby 的句法优雅,读起来自然,写起来舒适。”(引自简单来说,Ruby是一种简单快捷的面向对象(面向对象程序设计)脚本语言。ruby 另以”红宝石”命名。
Ruby编程语言可以说是Metasploit框架的核心,想要学习好Metasploit模块编写必须要会Ruby。不过 Ruby 到底是什么呢?根据Ruby官方网站的说法:”Ruby一门开源的动态编程语言,注重简洁和效率。Ruby 的句法优雅,读起来自然,写起来舒适。”(引自 Ruby中文官网 )
简单来说,Ruby是一种简单快捷的面向对象(面向对象程序设计)脚本语言。ruby 另以”红宝石”命名。
本文只讲解涉及编写Metasploit模块所必需的Ruby知识,如需更多介绍可以查阅 Ruby教程 ,进行学习。
创建第一个ruby程序
如需了解Ruby的安装过程,可自行百度,本文不进行讲解。
Ruby的交互式命令行
这里直接使用Kali系统自带的Ruby环境,跟 Python 等语言一样,ruby也有命令交互的,输入 irb 即可进入到命令行交互操作。
下面做个 计算 与 赋值 的简单操作:
命令行中定义方法
方法或函数是一组语句,当强调它们时就会执行。在使用Metasploit模块时,Ruby的方法是一个很重要的部分。语法格式:
def method_name [( [arg [= default]]...[, * arg [, &expr ]])] |
expr.. |
end |
首先已 def 开始, end 声明放在最后来结束对方法的定义, arg 指的是方法所接收的参数, expr 指的是用来接受并计算的表达式。
下面定义一个函数方法:
可以看到,函数通过运算打印出了正确的结果。Ruby语言提供了puts和print这两种输出打印函数。当涉及Metasploit时,将使用 print_line 函数。
下面分别使用 print_line 、 print_good 、 print_error 、 print_warning 、 print_status 、与 print_blank_line 语句来表示行、成功执行、错误执行、警告、状态与换行:
def run |
print_line("---") |
print_good("successful") |
print_error("error") |
print_warning("warning") |
print_status("status") |
print_blank_line |
end |
Ruby中的变量和数据类型
变量是指一个值可以随时改变的占位符。Ruby语言支持众多的数据类型,但只讲解与Metasploit相关的数据类型。
字符串处理
使用Ruby语言编写Metasploit模块时,尽量使用双引号标记,因为单引号可能会产生问题:
字符串连接
将两个不同结果连接成一个字符串,使用 + 运算符实现字符串的连接;当需要一个变量后面追加数据的时候,可以使用 << 运算符:
子字符串substring函数
split函数
Ruby中的数字和转换
在处理用户输入是,可以用 to_i 函数将字符串类型的输入转换成数字;另外,可以用 to_s 函数将一个数字转换成字符串。
数制转换
- 16进制到10进制的转换
- 10进制到16进制的转换
范围
范围(range)是一个很重要的内容,广泛应用在Metasploit的辅助模块中。例如 auxiliary …
一个范围的对象提供多种操作:搜索、查找最小值与最大值、显示范围中的所有数据。这里 include? 函数可以检查范围中是否包含某一个特定的值。此外, min 与 max 分别显示范围中的最小值和最大值。
Ruby中的循环
迭代语句被称为循环。Ruby的语法和其他编程语言的不同之处:
def for1(a) |
for i in 0..a |
print ("This number is #{i}\n") |
end |
end |
for1 (10) |
这里使用 #{i} 去打印输出的变量i的值,关键字 \n 指定开始新的一行。
而迭代循环是通过each实现的,在Metasploit模块中被广泛使用。
def each_example(a) |
a.each do |i| |
print i.to_s + "\t" |
end |
end |
a=Array.new(5) |
a=[5,10,15,20,25] |
each_example(a) |
定义一个方法,并接收数组a,再用 each 循环打印出来。
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
法律程序的意义:对中国法制建设的另一种思考
季卫东 / 中国法制出版社 / 2005-1 / 10.0
《法律程序的意义:对中国法制建设的另一种思考》内容为现代程序的概念与特征、现代程序的结构与功能、程序与现代社会、中国法律程序的缺陷、程序建设的程序等。一起来看看 《法律程序的意义:对中国法制建设的另一种思考》 这本书的介绍吧!