aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZeex <zeex@rocketmail.com>2023-02-10 15:53:01 +0600
committerGitHub <noreply@github.com>2023-02-10 15:53:01 +0600
commit6cff28a750f89ad4c4af187bfacaef0d16f2daab (patch)
tree5891051944dc832fc24007dd9bbdaa577b9672dc
parent85a2406774613c7aa942a41b5651c7af79f7c702 (diff)
downloadsubhook-6cff28a750f89ad4c4af187bfacaef0d16f2daab.zip
subhook-6cff28a750f89ad4c4af187bfacaef0d16f2daab.tar.gz
subhook-6cff28a750f89ad4c4af187bfacaef0d16f2daab.tar.bz2
Update intro section in README
-rw-r--r--README.md16
1 files changed, 12 insertions, 4 deletions
diff --git a/README.md b/README.md
index 4a2439f..87afc37 100644
--- a/README.md
+++ b/README.md
@@ -1,8 +1,14 @@
[![Build Status][build_status]][build]
[![Build Status - Windows][build_status_win]][build_win]
-SubHook is a super-simple hooking library for C and C++ that works on Windows,
-Linux and macOS. It supports x86 only (32-bit and 64-bit).
+SubHook is a simple library for [hooking][wikipedia_hooking] arbitrary functions
+at run time. It's written in C and also provides an optional C++ wrapper API.
+
+The library was originally developed to intercept a bunch of API calls in the
+[SA-MP server](https://www.sa-mp.com), which is a Windows/Linux 32-bit app, in
+order to extend a plugin that I wrote for it. Since then, it has been adapted
+to better support x86_64, macOS, and more common use-cases, thanks to the
+[contributors][github_contributors].
Installation
------------
@@ -146,7 +152,7 @@ Known issues/limitations
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`).
-
+
On x64_64, another cause could be that the function contains instructions
referencing memory that is too far away from the trampline code buffer's
address `trampoline_addr`, such as `cmp dword ptr [some_32bit_addr], rax`
@@ -161,7 +167,7 @@ Known issues/limitations
For example, on Fedora you can have such problems because of SELinux (though
you can disable it or exclude your files).
-
+
License
-------
@@ -171,3 +177,5 @@ Licensed under the 2-clause BSD license.
[build_status]: https://travis-ci.org/Zeex/subhook.svg?branch=master
[build_win]: https://ci.appveyor.com/project/Zeex/subhook/branch/master
[build_status_win]: https://ci.appveyor.com/api/projects/status/q5sp0p8ahuqfh8e4/branch/master?svg=true
+[wikipedia_hooking]: https://en.wikipedia.org/wiki/Hooking
+[github_contributors]: https://github.com/Zeex/subhook/graphs/contributors