zamiana "010203" na "\x1\x2\x3"

0

Witam.

Czy jest jakaś funkcja w c+, która robi coś takiego jak w tytule ? Jeśli nie to jak przechowywać "\x" w c++ ?

dzięki za pomoc.

1

Przechowywać możesz w tablicy charów:

unsigned char shellcode[] = "\xEB\x19\x31\xC0\x5E\x88\x46\x07\xBB\xEF\xBE\xAD\xDE\x50\x56\xFF"
"\xD3\x31\xC0\x50\xBB\xBE\xBA\xFE\xCA\xFF\xD3\xE8\xE2\xFF\xFF\xFF"
"\x63\x6D\x64\x2E\x65\x78\x65" ;

Ale fajnie będzie, jak napiszesz, co dokładnie chcesz osiągnąć.

0

Trochę się pomyliłem. Mam jednak

char * input = "0102030405"; 

i chciałbym to skonwertować tak, żeby tam było "\x1\x2\x3\x4\x5".

Mam nadzieje, że teraz jaśniej, sory za dezinformacje.

3
char * input = "0102030405"; 

To nie jest poprawny kod C++ i nie powinien się kompilować.

Jeśli chodzi o samą zamianę, polecam std::regex.

	string s = "0102030405";

	regex zero{"(0)"};

	DBG((regex_replace(s, zero, string{R"(\x)"})));

http://melpon.org/wandbox/permlink/jgJ86DMlWVZY4XoD

0

gdyby było const char * input = "0102030405" było by poprawnie ;)

1 użytkowników online, w tym zalogowanych: 0, gości: 1