#include <algorithm>
#include <iostream>
#include <sstream>
int main()
{
unsigned char buf[1024] = {'\0'};
std::string shell_str("\x55\x48\x89\x00\x00\x00\x00\xC3\x90");
std::copy( shell_str.begin(), shell_str.end(), buf );
buf[shell_str.length()] = '\0';
std::stringstream ss;
for(unsigned char bin_data : shell_str)
ss << std::uppercase << std::hex << static_cast<int>(bin_data) << " ";
std::cout << "shell : " << shell_str << std::endl;
std::cout << "hex-string : " << ss.str() << std::endl;
std::cout << "shell length : " << shell_str.length() << std::endl;
return 0;
}
I2luY2x1ZGUgPGFsZ29yaXRobT4KI2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3N0cmVhbT4KCmludCBtYWluKCkKewogICAgdW5zaWduZWQgY2hhciBidWZbMTAyNF0gPSB7J1wwJ307CiAgICBzdGQ6OnN0cmluZyBzaGVsbF9zdHIoIlx4NTVceDQ4XHg4OVx4MDBceDAwXHgwMFx4MDBceEMzXHg5MCIpOwogICAgc3RkOjpjb3B5KCBzaGVsbF9zdHIuYmVnaW4oKSwgc2hlbGxfc3RyLmVuZCgpLCBidWYgKTsKICAgIGJ1ZltzaGVsbF9zdHIubGVuZ3RoKCldID0gJ1wwJzsKICAgIAogICAgICBzdGQ6OnN0cmluZ3N0cmVhbSBzczsKICAgICAgIGZvcih1bnNpZ25lZCBjaGFyIGJpbl9kYXRhIDogc2hlbGxfc3RyKQogICAgICAgIHNzIDw8IHN0ZDo6dXBwZXJjYXNlIDw8IHN0ZDo6aGV4IDw8IHN0YXRpY19jYXN0PGludD4oYmluX2RhdGEpIDw8ICIgIjsKICAgICAgICAKICAgc3RkOjpjb3V0IDw8ICJzaGVsbCA6ICIgPDwgc2hlbGxfc3RyIDw8IHN0ZDo6ZW5kbDsgICAgIAogICBzdGQ6OmNvdXQgPDwgImhleC1zdHJpbmcgOiAiIDw8IHNzLnN0cigpIDw8IHN0ZDo6ZW5kbDsKICAgc3RkOjpjb3V0IDw8ICJzaGVsbCBsZW5ndGggOiAiIDw8IHNoZWxsX3N0ci5sZW5ndGgoKSA8PCBzdGQ6OmVuZGw7ICAKICAgcmV0dXJuIDA7ICAgICAgCn0=