Python中的漏洞 – 操纵十六进制字符串

我对python很新,并试图移植一个我为堆栈溢出编写的简单漏洞(只是一个nop sled,shell代码和返回地址).这不是出于邪恶的目的,而是出于大学的安全讲座.

给定一个十六进制字符串(deadbeef),有什么最好的方法:

>将其表示为一系列字节
>添加或减去一个值
>颠倒顺序(对于x86内存布局,即efbeadde)

关于python漏洞利用中的常见任务的任何提示和技巧也非常感谢.

解决方法:

Python 2.6及更高版本中,您可以使用内置的bytearray类.

要创建bytearray对象:

b = bytearray.fromhex('deadbeef')

要更改字节,可以使用数组表示法引用它:

b[2] += 7

要反转bytearray,请使用b.reverse().要创建以相反顺序迭代它的迭代器,可以使用反转函数:reversed(b).

您可能也对Python 3中的新字节类感兴趣,它类似于bytearray但不可变.

上一篇:ARM exploit编写三


下一篇:Python安全性:未收集的变量超出范围的危险