Вы можете записать свою полезную нагрузку в файл и прочитать ее, используя std::ifstream
. Это позволит вам изменить полезную нагрузку без перекомпиляции.
Если вы действительно хотите сохранить его как двоичные данные, вы можете использовать массив char и инициализировать его следующим образом:
const unsigned char raw_data[] = {
0x21, 0x20, 0xc2, 0xa6, 0xc3, 0xb4, 0xc2, 0xbf,
0xc3, 0x82, 0xc3, 0x8b, 0xc2, 0xa4, 0x20, 0xc3,
0x8d, 0xc3, 0x8c, 0x4c, 0x3f, 0x20, 0x20, 0xc3,
0x80, 0xc3, 0xbf, 0x20, 0x20, 0xc3, 0x80, 0xc3,
0xbf, 0xc2, 0xa5, 0x20, 0xc5, 0xa1, 0xe2, 0x84,
0xa2, 0xc2, 0xa9, 0x40, 0x20, 0x20, 0xc3, 0x80,
0xc3, 0xbf, 0x20, 0x20, 0xc3, 0x80, 0xc3, 0xbf,
0x60, 0x20, 0x6f, 0x72, 0x20, 0x60, 0x21, 0x20,
0x48, 0xc2, 0xb7, 0xc3, 0xb4, 0xc2, 0xbf, 0xc3,
0x82, 0xc3, 0x8b, 0xc2, 0xa4, 0x20, 0xc3, 0x8d,
0xc3, 0x8c, 0x4c, 0x3f, 0x20, 0x20, 0xc3, 0x80,
0xc3, 0xbf, 0x33, 0x33, 0x33, 0x3f, 0xc2, 0xa5,
0x20, 0xc5, 0xa1, 0xe2, 0x84, 0xa2, 0xc2, 0xa9,
0x40, 0x20, 0x20, 0xc3, 0x80, 0xc3, 0xbf, 0x66,
0x66, 0xc2, 0xa6, 0x40, 0x0a,
};
std::string data(
reinterpret_cast< const char* >(raw_data),
reinterpret_cast< const char* >(raw_data) + sizeof(raw_data));
О, кстати, я преобразовал вашу полезную нагрузку в буфер, используя следующий простой код Python:
#!/usr/bin/python
def convert_file(path, stream):
data = open(path, 'rb').read()
stream.write('const unsigned char raw_data[] = {')
for i, char in enumerate(data):
if i % 8 == 0:
stream.write('\n ')
stream.write(' 0x%02x,' % (ord(char),))
stream.write('\n};\n')
if __name__ == '__main__':
import sys
convert_file(sys.argv[1], sys.stdout)