Ruby:将内存地址字符串格式转换为shellcode的字节

时间:2018-03-06 15:55:18

标签: ruby shell exploit

我找到了一个泄漏其缓冲区地址的程序。我可以通过发送一个socket.get_once捕获它,但它是一个字符串格式。因此,当我将它传递给pack时,它不需要字符串值。如何将字符串格式的内存地址转换为可以放入shellcode的地址?

捕获的示例地址:0x7fffffffdfc0

使用string.pack('Q')会抛出一个不是整数的错误。所以我尝试使用循环将这些部分拆分成对,如下所示:

string.scan(/../)。reverse_each {| x | buf + = [x.to_i] .pack('S')}

我知道这可能是一个简单的解决方案,但由于某种原因,我无法绕过它。

1 个答案:

答案 0 :(得分:0)

很容易......

buf + = [string.to_i(16)]。pack(' Q')