aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZeex <zeex@rocketmail.com>2018-11-04 15:15:56 +0600
committerGitHub <noreply@github.com>2018-11-04 15:15:56 +0600
commit042fdbca9003b856128ae45a5fb7fc6494468a99 (patch)
treeeb545541845888c6fd23a885b3ef32943df8412c
parentc1c7be366e7310001b30ffc3d90a6d6d62fca0a3 (diff)
downloadsubhook-042fdbca9003b856128ae45a5fb7fc6494468a99.zip
subhook-042fdbca9003b856128ae45a5fb7fc6494468a99.tar.gz
subhook-042fdbca9003b856128ae45a5fb7fc6494468a99.tar.bz2
Update known issues
-rw-r--r--README.md12
1 files changed, 9 insertions, 3 deletions
diff --git a/README.md b/README.md
index d7d1eb9..09d6df5 100644
--- a/README.md
+++ b/README.md
@@ -116,14 +116,20 @@ int main() {
Known issues
------------
+* `subhook_get_trampoline()` may return NULL because only a small subset of
+ x86 instructions is supported by the disassembler in this library (only
+ common prologue instructions). As a workaround you can plug in a more
+ advanced disassembler engine in `subhook_disasm()` (currently there is no
+ simple way to do it, you have to modify the code manually).
+
* If a target function (the function you are hooking) is less than N bytes
in length, for example if it's a short 2-byte jump to a nearby location
(sometimes compilers generate code like this), then you will not be able
to hook it.
- N is 5 by default (1-byte jmp opcode + 32-bit offset), but it you enable
- the use of 64-bit offsets in 64-bit mode N becomes 14 (see the definition
- of `subhook_jmp64`).
+ N is 5 by default: 1 byte for jmp opcode + 4 bytes for offset. But if you
+ enable the use of 64-bit offsets in 64-bit mode N becomes 14 (see the
+ definition of `subhook_jmp64`).
* Some systems protect executable code form being modified at runtime, which
will not allow you to install hooks, or don't allow to mark heap-allocated