gpt4 book ai didi

python - 如何向后发送返回地址(通过套接字)- python

转载 作者:太空宇宙 更新时间:2023-11-03 18:16:05 25 4
gpt4 key购买 nike

我来这里是为了寻求远程缓冲区溢出提示。我目前正在解决一个兵棋推演,这是我第一次尝试这些新类型的编码。

目前我正在尝试编写这样的代码:

假设我有一个地址变量,其范围为 0xbfffff00 和 0xbffffffff。我想暴力破解这个返回地址,我将通过一些套接字编程来socket.send。问题是,我用来学习的操作系统是小端格式,所以我想向后发送我的返回地址(按字节)。

示例)地址 = 0xb1234567 #我想发送674523b1。

我搜索了类似的函数,发现 print ('something'[::-1]).encode("hex") 可以工作,但这似乎适用于字符串,而不是当它是数字本身。 python 有没有办法向后发送地址?

谢谢。

最佳答案

struct.pack将数值转换为字节序列,适合通过网络发送。根据format string,字节序列将是小端字节序或大端字节序。 :

In [7]: addr=0x30313233

In [8]: struct.pack("@I", addr) # native
Out[8]: '3210'

In [9]: struct.pack("<I", addr) # little-endian
Out[9]: '3210'

In [10]: struct.pack(">I", addr) # big-endian
Out[10]: '0123'

但请注意,在普通的网络编程过程中,您永远不会使用上述格式。相反,您将始终以“网络字节顺序”发送:

In [11]: struct.pack("!I", addr) # network byte order
Out[11]: '0123'

关于python - 如何向后发送返回地址(通过套接字)- python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24985507/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com