如何倒序发送回传地址(通过套接字)- Python

2024-04-18 04:06:41 发布

您现在位置:Python中文网/ 问答频道 /正文

我来这里是想问一个远程缓冲区溢出提示。我目前正在解决一个战争游戏,这是我第一次尝试这些新类型的编码。在

目前我正在尝试制作一个这样的代码:

假设我有一个地址变量,它的范围是0xbffff00和0xbffffffff。我想强行把这个回信地址给你套接字.send通过一些套接字编程。问题是,我用来学习的操作系统是little-endian格式的,所以我想向后(按字节)发送我的返回地址。在

示例)addr=0xb1234567 #我想寄674523b1。在

我搜索过一个类似的函数,我发现print('something'[::-1]).encode(“hex”)可以完成这项工作,但这似乎适用于字符串,而不是数字本身。在python中有没有一种方法可以向后发送地址?在

谢谢。在


Tags: 代码send游戏示例类型编码字节远程
1条回答
网友
1楼 · 发布于 2024-04-18 04:06:41

^{}将把数值转换成字节序列,适合通过网络发送。根据format string,字节序列是little-endian或big-endian:

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'

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

^{pr2}$

相关问题 更多 >