Ruby语言在Metasploit平台中大放异彩,如果你想研究利用模块中某个漏洞的利用方法,如果不懂Ruby语言,就看不懂那些精彩的代码。以下是我收集的一些零散的知识点,对看懂Ruby脚本有些帮助。本文不定期更新~
一,正则表达式字面量用斜线符分隔
/Ruby?/ 匹配Rub或者Ruby;
/./mu 多行匹配Unicode字符;斜杠后面的 字符为修饰符,表示匹配的模式。常见的还有:
二,访问子字符串
s = "hello"
s[0] = 'h' , s[s.length - 1]='o', s[-1] = 'o' //中括号中的参数表示位置
s[0,2] = "he", s[-1,1] = "o", s[0, 10] = "hello" //中括号第一个参数表示起始位置,后一个参数表示取的长度。
三,unpack解包
str1 = "abc"
result = str1.unpack("C*") // result = [97, 98, 99]
result = str1.unpack("C*")[0] // result = 97
array = [0x41, 0x42, 0x43, 0x44, 0x45]
result = array.pack(‘C’) // result = "A" , 注意结果是个字符串
result = array.pack(‘C*’) // result = "ABCDE"
str = "ABCDE"
num = 0x61
str[0,1] = [num].pack('C') //str = "aBCDE" 等式右边先将num变成一个数组,然后对数组进行打包操作,其结果是一个字符串,然后用得到的字符串替换str字符串从位置0长度为1的部分
str[0,1] = [num, num].pack('C*') //str = "aaBCDE"