diff options
author | Malfurious <m@lfurio.us> | 2020-12-04 02:18:33 -0500 |
---|---|---|
committer | Malfurious <m@lfurio.us> | 2020-12-04 02:18:33 -0500 |
commit | 62981e7731466535dab214ef2571ae117673f242 (patch) | |
tree | e8bbc41f36c813eee0f1db895af73fe1a951179a /genhex.cpp | |
parent | 81a9656d3bffc7bd247aaf177a5153b96e4d4319 (diff) | |
download | lib-des-gnux-62981e7731466535dab214ef2571ae117673f242.tar.gz lib-des-gnux-62981e7731466535dab214ef2571ae117673f242.zip |
Commit genhex program
This is a utility program from my shellcoding repository. It uses the
dissassembly output from objdump to auto-format a payload from an
assembled object file.
Signed-off-by: Malfurious <m@lfurio.us>
Diffstat (limited to 'genhex.cpp')
-rw-r--r-- | genhex.cpp | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/genhex.cpp b/genhex.cpp new file mode 100644 index 0000000..a37f91e --- /dev/null +++ b/genhex.cpp @@ -0,0 +1,33 @@ +#include <iostream> +#include <string> + +/* + * Read in all of stdin (should be piped from objdump), look for bytecode hex, + * and print this code, escaped in a C-string literal, to stdout. + * + * EG output: "\x01\x02\x03\x04" + */ + +int main() +{ + std::string tmp; + unsigned int hex; + + std::cout << "\""; + + while (true) + { + std::cin >> tmp; + + if (std::cin.eof()) + break; + + if (tmp.size() == 2 && + tmp.find(":") == std::string::npos && + sscanf(tmp.c_str(), "%x", &hex) > 0) + std::cout << "\\x" << tmp; + } + + std::cout << "\"\n"; + return 0; +} |