【问题标题】:Python string to shellcode byte [duplicate]Python字符串到shellcode字节[重复]
【发布时间】:2020-12-29 10:41:57
【问题描述】:

我正在尝试制作一个生成shellcode的程序,在Python3中,我需要将一个字符串转换为“\x00\x00”格式,例如:“Hello”->“\x68\x65\x6c\ x6c\x6f"。 我无法弄清楚这一点,如果我尝试将“\\x”添加到“68”,它就不起作用。我已经尽我所能用谷歌搜索,我认为这很简单,但我坚持下去了。

【问题讨论】:

  • @Tomerikoo 不,我不知道我是否解释了我正在寻找的内容是否足够好: b"\x68" 有效,如果它是硬编码的,它可以正常工作,我正在寻找一种取 68 的方法,并将其转换为相当于 b"\x68"
  • 这能回答你的问题吗? Python convert strings of bytes to byte array

标签: python python-3.x shellcode


【解决方案1】:

emmm...其实"Hello""\x68\x65\x6c\x6c\x6f"是一样的

如果你想只是打印那个或其他什么,你可以这样做:

>>> print('"' + ''.join(['\\x'+hex(c)[2:] for c in "Hello".encode()]) + '"')
"\x48\x65\x6c\x6c\x6f"

如果你想输出字节(你在 cmets 中问过):

>>> print('b\'' + ''.join(['\\x'+hex(c)[2:] for c in "Hello".encode()]) + '\'')
b'\x48\x65\x6c\x6c\x6f'

如果你想在某处发送像 b"Hello" 这样的字节,只需发送它们。耶。

【讨论】:

  • 你们都意识到前面的b具有特殊的句法含义,而不是简单的字母'b'
  • 伙计,我正在谈论它。 b'Hello' 和 b'\x48\x65\x6c\x6c\x6f' 是一样的。如果您想以十六进制输出它,这就是答案...
  • 问题是我以为我早先尝试过但没有用,一定是其他原因。道歉
  • @JackSmith 不用担心,我们随时为您提供帮助。只需尝试隔离问题并找出真正的错误并相应地编辑问题
  • @jack-smith 很好,兄弟
猜你喜欢
  • 2019-02-22
  • 1970-01-01
  • 2016-03-28
  • 2016-03-09
  • 2021-03-27
  • 2018-05-01
  • 2022-01-18
  • 2014-09-05
  • 1970-01-01
相关资源
最近更新 更多