diff --git a/README.md b/README.md index a2a3e20..04beeba 100644 --- a/README.md +++ b/README.md @@ -10,6 +10,32 @@

+## Finding ROP gadgets + +To find ROP gadget you need to specify a file with the `--file` / `-f` option and use the `--rop` / `-r` option specifying the maximum the number of instructions in the gadget: + +

+ +

+ +You can customize the base address of the module with the `--va` option (if you pass a base of `0`, then you get relative offsets) and you can also use the `--raw` option to analyze raw code dumps. + +## Finding pointers + +Oftentimes when building ROP chains, you might need to find pointers to integers with specific values. To look for those, you can use the `--search-int` option like in the below: + +

+ +

+ +Other times, you might need to find pointers to specific strings. To look for those, you can use the `--search-hexa` option like in the below: + +

+ +

+ +You can also use the `--va` option to specify your own base address. + ## Build You can find shell scripts in [src/build](src/build) for every supported platforms; below is the Linux example: diff --git a/pics/rp-r.gif b/pics/rp-r.gif new file mode 100644 index 0000000..c9943de Binary files /dev/null and b/pics/rp-r.gif differ diff --git a/pics/rp-shexa.gif b/pics/rp-shexa.gif new file mode 100644 index 0000000..7c00b9f Binary files /dev/null and b/pics/rp-shexa.gif differ diff --git a/pics/rp-sint.gif b/pics/rp-sint.gif new file mode 100644 index 0000000..d3ea5f4 Binary files /dev/null and b/pics/rp-sint.gif differ diff --git a/src/rp/coloshell.hpp b/src/rp/coloshell.hpp index 1347bf0..46499c0 100644 --- a/src/rp/coloshell.hpp +++ b/src/rp/coloshell.hpp @@ -287,7 +287,7 @@ template static void coloshell(const T t, const Colors colo) { enable_color(COLO_GREEN); \ for (uint32_t i = 0; i < size; ++i) { \ if (isprint(hex_val[i])) { \ - fmt::print("{}", hex_val[i]); \ + fmt::print("{:c}", hex_val[i]); \ } else { \ fmt::print("\\x{:02x}", hex_val[i]); \ } \