Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add dynamic detour support #1

Open
wants to merge 104 commits into
base: master
Choose a base branch
from

Commits on Mar 2, 2020

  1. Configuration menu
    Copy the full SHA
    644ce22 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    f897c54 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    5906744 View commit details
    Browse the repository at this point in the history
  4. Fix new - free mismatch

    peace-maker committed Mar 2, 2020
    Configuration menu
    Copy the full SHA
    fd5d3ba View commit details
    Browse the repository at this point in the history
  5. Add detour test plugin

    peace-maker committed Mar 2, 2020
    Configuration menu
    Copy the full SHA
    8addcc5 View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    3d2f7a3 View commit details
    Browse the repository at this point in the history
  7. Don't use std::list at all in DynamicHooks

    Switch to amtl Vector.
    peace-maker committed Mar 2, 2020
    Configuration menu
    Copy the full SHA
    23ab2a2 View commit details
    Browse the repository at this point in the history
  8. Fix overriding return value

    The custom return value was lost when calling the original function.
    Save and restore our own return value, if we're about to call the original function.
    peace-maker committed Mar 2, 2020
    Configuration menu
    Copy the full SHA
    1a2040e View commit details
    Browse the repository at this point in the history
  9. Save this pointer on windows after calling original function

    ecx might get cleared before the original function returns leading to garbage in the post handler.
    peace-maker committed Mar 2, 2020
    Configuration menu
    Copy the full SHA
    cf800c7 View commit details
    Browse the repository at this point in the history
  10. Fix compilation

    peace-maker committed Mar 2, 2020
    Configuration menu
    Copy the full SHA
    a918586 View commit details
    Browse the repository at this point in the history
  11. Fix not clearing return address cache after use

    The esp pointer wasn't removed from the map after the function was called and the original return address was retrieved.
    If the same function was called again with the same esp this would fail due to there already being an (old) return address associated with the esp.
    peace-maker committed Mar 2, 2020
    Configuration menu
    Copy the full SHA
    eb67ad6 View commit details
    Browse the repository at this point in the history
  12. Add support for custom calling convention passing arguments in registers

    If the compiler decided to pass an argument in a register on an internal function instead of pushing it on the stack to save time, allow us to specify the register the parameter is going to be in.
    
    DHookAddParam received another parameter to set the register.
    peace-maker committed Mar 2, 2020
    Configuration menu
    Copy the full SHA
    5a8c67e View commit details
    Browse the repository at this point in the history
  13. Fix assert when the pre-hook was fired, but the post hook was skipped

    The post hook would have cleared the esp value from the return address map, but there seems to be a case where the post hook isn't called, but the function gets called with the same esp again. This is probably just masking a different error :(
    peace-maker committed Mar 2, 2020
    Configuration menu
    Copy the full SHA
    ef76f5a View commit details
    Browse the repository at this point in the history
  14. Configuration menu
    Copy the full SHA
    6048b17 View commit details
    Browse the repository at this point in the history
  15. Fix saving arguments in custom registers in combination with argument…

    …s on the stack
    
    If a function was optimized to only pass one parameter in a register, but still pass other parameters on the stack, save the registers at the correct offset in the buffer.
    peace-maker committed Mar 2, 2020
    Configuration menu
    Copy the full SHA
    76e0492 View commit details
    Browse the repository at this point in the history
  16. Fix passing this pointer to callback even if the detour was setup to …

    …ignore it
    
    The this pointer was always passed to the plugin callback if the calling convention was a thiscall. Even if the plugin author set the this pointer type to ThisPointer_Ignore.
    peace-maker committed Mar 2, 2020
    Configuration menu
    Copy the full SHA
    eeec7a1 View commit details
    Browse the repository at this point in the history
  17. Configuration menu
    Copy the full SHA
    2afaea0 View commit details
    Browse the repository at this point in the history
  18. Configuration menu
    Copy the full SHA
    2529711 View commit details
    Browse the repository at this point in the history
  19. Add support to define function signatures in gamedata

    A "Functions" section is parsed in gamedata files that allow you to define the signature of functions including metadata like the calling convention and specifying the register an argument is passed in.
    A new native DHookCreateFromConf can be used to setup a hook or detour from one of that function sections in the "Functions" section.
    peace-maker committed Mar 2, 2020
    Configuration menu
    Copy the full SHA
    4f1803f View commit details
    Browse the repository at this point in the history
  20. Fix linux build

    peace-maker committed Mar 2, 2020
    Configuration menu
    Copy the full SHA
    3456c00 View commit details
    Browse the repository at this point in the history
  21. More linux fixes

    peace-maker committed Mar 2, 2020
    Configuration menu
    Copy the full SHA
    e815bec View commit details
    Browse the repository at this point in the history
  22. Configuration menu
    Copy the full SHA
    b3f04f9 View commit details
    Browse the repository at this point in the history
  23. Fix detouring |thiscall| on linux

    The this-pointer is always pushed first on the stack.
    peace-maker committed Mar 2, 2020
    Configuration menu
    Copy the full SHA
    8b58d7e View commit details
    Browse the repository at this point in the history
  24. Fix crash when accessing invalid argument index

    Just return null if a user tries to access an invalid argument that wasn't defined when detouring the function.
    peace-maker committed Mar 2, 2020
    Configuration menu
    Copy the full SHA
    42c8341 View commit details
    Browse the repository at this point in the history
  25. Configuration menu
    Copy the full SHA
    efc3889 View commit details
    Browse the repository at this point in the history
  26. Configuration menu
    Copy the full SHA
    58fe5c0 View commit details
    Browse the repository at this point in the history
  27. Configuration menu
    Copy the full SHA
    b235230 View commit details
    Browse the repository at this point in the history
  28. Fix typos in "Functions" section parsing

    Some registers were upper case and HookParamType_CBaseEntity didn't follow the naming scheme of the other types.
    peace-maker committed Mar 2, 2020
    Configuration menu
    Copy the full SHA
    3d75d9b View commit details
    Browse the repository at this point in the history
  29. Remove optional callback parameter from DHookCreateFromConf

    Encourage passing the callback when hooking instead of when setting the hook up.
    peace-maker committed Mar 2, 2020
    Configuration menu
    Copy the full SHA
    925ba99 View commit details
    Browse the repository at this point in the history
  30. Configuration menu
    Copy the full SHA
    2f9af2c View commit details
    Browse the repository at this point in the history
  31. Cleanup detour callback MRES return value handling

    Deduplicate code for changed return values.
    
    Add comments for non-trivial code.
    peace-maker committed Mar 2, 2020
    Configuration menu
    Copy the full SHA
    df4bd84 View commit details
    Browse the repository at this point in the history
  32. Configuration menu
    Copy the full SHA
    f87369c View commit details
    Browse the repository at this point in the history
  33. Fix saving arguments in wrong order when parsing "Functions" section …

    …in gamedata
    
    ke::HashMap doesn't keep the order the elements are added of course. Switch to a vector structure instead.
    peace-maker committed Mar 2, 2020
    Configuration menu
    Copy the full SHA
    196b31d View commit details
    Browse the repository at this point in the history
  34. Configuration menu
    Copy the full SHA
    5ca8c1f View commit details
    Browse the repository at this point in the history
  35. Fix changing return value of detoured function

    AutoPtr boxing fuckup here.
    peace-maker committed Mar 2, 2020
    Configuration menu
    Copy the full SHA
    df59f1a View commit details
    Browse the repository at this point in the history
  36. Bump version

    peace-maker committed Mar 2, 2020
    Configuration menu
    Copy the full SHA
    ff15e80 View commit details
    Browse the repository at this point in the history
  37. Fix linux build

    peace-maker committed Mar 2, 2020
    Configuration menu
    Copy the full SHA
    18bf863 View commit details
    Browse the repository at this point in the history
  38. Don't call sourcepawn detour callbacks from threads other than the ma…

    …in thread
    
    The SourcePawn VM isn't threadsafe.
    peace-maker committed Mar 2, 2020
    Configuration menu
    Copy the full SHA
    0975105 View commit details
    Browse the repository at this point in the history
  39. Fix defining virtual hooks in gamedata "Functions" section

    The "offset" key wasn't included in the validation of having the target function set.
    https://bitbucket.org/Peace_Maker/dhooks2/issues/1/missing-check-for-offsets
    peace-maker committed Mar 2, 2020
    Configuration menu
    Copy the full SHA
    0a70c03 View commit details
    Browse the repository at this point in the history
  40. Bump version

    peace-maker committed Mar 2, 2020
    Configuration menu
    Copy the full SHA
    5dc2e66 View commit details
    Browse the repository at this point in the history
  41. Fix |thiscall| on linux for functions with arguments

    The previous fix messed up parameter getters and setters.
    peace-maker committed Mar 2, 2020
    Configuration menu
    Copy the full SHA
    eb724f4 View commit details
    Browse the repository at this point in the history
  42. Bump version

    peace-maker committed Mar 2, 2020
    Configuration menu
    Copy the full SHA
    040475e View commit details
    Browse the repository at this point in the history
  43. Fix skipping plugin callbacks on plugin unload

    When removing a plugin's callback from the list of callbacks of a detour
    the next callback in the list would be skipped. Don't only check every second callback,
    but every single one!
    peace-maker committed Mar 2, 2020
    Configuration menu
    Copy the full SHA
    ba0eb28 View commit details
    Browse the repository at this point in the history
  44. Fix adding arguments multiple times when reloading a gamedata file

    If the Functions section was parsed before and the gamedata file is loaded again,
    the arguments were all added again instead of keeping the old number of arguments.
    peace-maker committed Mar 2, 2020
    Configuration menu
    Copy the full SHA
    b1babf3 View commit details
    Browse the repository at this point in the history
  45. Configuration menu
    Copy the full SHA
    94a9064 View commit details
    Browse the repository at this point in the history
  46. Bump version

    peace-maker committed Mar 2, 2020
    Configuration menu
    Copy the full SHA
    3f8f721 View commit details
    Browse the repository at this point in the history
  47. Fix detour of functions returning a float

    Floats are always returned in FPU register st0. Since the value in st0 doesn't matter in a pre-hook before the function was executed, don't try to save and restore the value of the FPU stack top for a pre-hook.
    Only replace st0 after a post hook.
    peace-maker committed Mar 2, 2020
    Configuration menu
    Copy the full SHA
    b91d708 View commit details
    Browse the repository at this point in the history
  48. Bump version

    peace-maker committed Mar 2, 2020
    Configuration menu
    Copy the full SHA
    af24cae View commit details
    Browse the repository at this point in the history
  49. Fix crash on unaligned SSE instructions

    movaps requires the memory address to be 16-byte aligned. Make sure our buffer is properly aligned for the xmm0-7 registers.
    peace-maker committed Mar 2, 2020
    Configuration menu
    Copy the full SHA
    36bf7d0 View commit details
    Browse the repository at this point in the history
  50. Fix crash when trying to decode NULL this pointer

    When the this pointer is set to ThisPointer_CBaseEntity and the address is null, just return INVALID_ENT_REFERENCE instead of trying to access the pointer.
    peace-maker committed Mar 2, 2020
    Configuration menu
    Copy the full SHA
    e71fd49 View commit details
    Browse the repository at this point in the history
  51. Bump version

    peace-maker committed Mar 2, 2020
    Configuration menu
    Copy the full SHA
    0df334a View commit details
    Browse the repository at this point in the history
  52. Fix compilation against SourceMod 1.10

    MacroAssembler base is now in the |sp| namespace.
    peace-maker committed Mar 2, 2020
    Configuration menu
    Copy the full SHA
    5857b0a View commit details
    Browse the repository at this point in the history
  53. Add support for the "fastcall" calling convention

    Callee cleans the stack and first two arguments are passed in registers ecx and edx.
    You could emulate this by choosing stdcall and setting the custom_registers on the arguments manually, but this is easier.
    peace-maker committed Mar 2, 2020
    Configuration menu
    Copy the full SHA
    38bf922 View commit details
    Browse the repository at this point in the history
  54. Fix changing of charptr and vectorptr returns and parameters

    The new buffer/vector was freed before the old function was called with the new parameters
    or the return value could be used by the called. This caused undefined behavior which seemed
    to be fine before, where free didn't change the user-payload. free does change the user data now,
    causing the changed values to be garbage.
    
    Wait until the next frame before deleting the newly allocated buffers/vectors, so the original code had a chance
    to use the live pointers. AddFrameAction might be a bad choice if our hook happens before the game ticks, but
    we can tackle that problem when it happens ;)
    peace-maker committed Mar 2, 2020
    Configuration menu
    Copy the full SHA
    4d17d2f View commit details
    Browse the repository at this point in the history
  55. Bump version

    peace-maker committed Mar 2, 2020
    Configuration menu
    Copy the full SHA
    2243c68 View commit details
    Browse the repository at this point in the history
  56. Configuration menu
    Copy the full SHA
    9830fe9 View commit details
    Browse the repository at this point in the history
  57. Bump version

    peace-maker committed Mar 2, 2020
    Configuration menu
    Copy the full SHA
    b7000ba View commit details
    Browse the repository at this point in the history
  58. Add |this|-ptr save and restore from pre to post hooks on linux

    This workaround already exists for the windows thiscall calling convention.
    Since the this-ptr of CBaseEntity's is automatically dereferenced, there's no way for
    plugin authors to avoid a crash if the pointer gets invalid.
    peace-maker committed Mar 2, 2020
    Configuration menu
    Copy the full SHA
    2adea32 View commit details
    Browse the repository at this point in the history

Commits on Apr 21, 2020

  1. Fix parsing of platform specific sections in "Functions" gamedata

    The "Functions" section gamedata parser didn't skip the event of leaving an ignored sub section (like a "windows" section on a linux host) correctly, but counted it as leaving the parent section instead. This corrupted the parser state and made it parse the following entries in the wrong level.
    
    Thanks vanz.
    peace-maker committed Apr 21, 2020
    Configuration menu
    Copy the full SHA
    32f8f4b View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    96f653c View commit details
    Browse the repository at this point in the history

Commits on May 14, 2020

  1. Configuration menu
    Copy the full SHA
    17cea91 View commit details
    Browse the repository at this point in the history
  2. Fix recursive calls when the ESP register is reused #3

    This fix was pushed to DynamicHooks a few hours ago. The stack space of the return address can be reused in recursive calls, causing us to overwrite the return address of the parent.
    
    See the PR by L'In20Cible @jordanbriere Ayuto/DynamicHooks#4
    peace-maker committed May 14, 2020
    Configuration menu
    Copy the full SHA
    f96100a View commit details
    Browse the repository at this point in the history

Commits on May 15, 2020

  1. Fix skipping and overriding return values of recursive calls #3

    The saved values of the inner, recursive call would overwrite the values of the outer calls.
    
    Save them in a stack as well.
    peace-maker committed May 15, 2020
    Configuration menu
    Copy the full SHA
    ff0eed4 View commit details
    Browse the repository at this point in the history

Commits on May 26, 2020

  1. Configuration menu
    Copy the full SHA
    6d8aba4 View commit details
    Browse the repository at this point in the history

Commits on May 28, 2020

  1. Configuration menu
    Copy the full SHA
    e58d77e View commit details
    Browse the repository at this point in the history

Commits on May 29, 2020

  1. Configuration menu
    Copy the full SHA
    d8f3997 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    aa408c2 View commit details
    Browse the repository at this point in the history

Commits on May 30, 2020

  1. Fix parsing of multiple argument flags in gamedata

    Thanks Alienmario!
    peace-maker committed May 30, 2020
    Configuration menu
    Copy the full SHA
    aa3be5c View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    9d24417 View commit details
    Browse the repository at this point in the history

Commits on Jun 4, 2020

  1. Fix regression crash with post-only detours #3

    If there were no pre-detour handlers registered for a detour, there was no return Action of the pre hook available in a post hook, so don't try to access it.
    peace-maker committed Jun 4, 2020
    Configuration menu
    Copy the full SHA
    568ada2 View commit details
    Browse the repository at this point in the history

Commits on Jun 5, 2020

  1. Include sdktools.inc in include file #4

    Needed when using the DHookSetFromConf native for the SDKFuncConfSource enum.
    peace-maker committed Jun 5, 2020
    Configuration menu
    Copy the full SHA
    86bfea5 View commit details
    Browse the repository at this point in the history

Commits on Jun 7, 2020

  1. Fix trying to call hook removal callback on unloaded plugin

    When a plugin which registered an entity vtable hook with a remove callback is unloaded OnMapEnd, dhooks still tried to call the removal callback on the next frame after the map ended and all entities were destroyed.
    
    Remove the plugin's hooks from the removal list when a plugin is unloaded. The hooks are free'd anyways.
    
    Drifter321#3
    peace-maker committed Jun 7, 2020
    Configuration menu
    Copy the full SHA
    ac44af9 View commit details
    Browse the repository at this point in the history

Commits on Jun 9, 2020

  1. Configuration menu
    Copy the full SHA
    b492c66 View commit details
    Browse the repository at this point in the history
  2. More regression fixes for post-only detours #3

    Don't try to pop values from any other stacks if there was nothing pushed in a pre-hook.
    peace-maker committed Jun 9, 2020
    Configuration menu
    Copy the full SHA
    370ab37 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    d01af6a View commit details
    Browse the repository at this point in the history

Commits on Jun 17, 2020

  1. Fix regression when unloading plugins with entity vhooks on mapchange

    The previous fix in ac44af9 did not remove the hook itself instead of only not calling the removal callback. So yes, the removal callback wouldn't be called anymore, but the hook wouldn't be removed causing the normal hook callback to fire after the plugin unloaded.
    
    Drifter321#3
    peace-maker committed Jun 17, 2020
    Configuration menu
    Copy the full SHA
    9b9454b View commit details
    Browse the repository at this point in the history

Commits on Oct 14, 2020

  1. Add methodmap API

    Vtable hooks are wrapped in a `DynamicHook` methodmap and detours in a `DynamicDetour` methodmap. Parameters and return values pushed to the callbacks are of methodmap types `DHookParam` and `DHookReturn` to easily access the values.
    
    Most functions are mapped 1:1 with the exception of creating vtable hooks, where the callback function has to be passed in the hook function instead of during setup.
    
    `HookRaw` dropped the `removecb` parameter, since it was never called. There currently is no way to know when to unhook the raw object.
    
    This change doesn't affect the legacy API at all.
    peace-maker committed Oct 14, 2020
    Configuration menu
    Copy the full SHA
    5fe46a3 View commit details
    Browse the repository at this point in the history

Commits on Oct 15, 2020

  1. Save all arguments before calling the original function

    Save the value of arguments in a seperate buffer for the post callback.
    Compiler optimizations might cause the registers or stack space to be reused
    and overwritten during function execution if the value isn't needed anymore
    at some point. This leads to different values in the post hook.
    peace-maker committed Oct 15, 2020
    Configuration menu
    Copy the full SHA
    3b86e32 View commit details
    Browse the repository at this point in the history
  2. Print nicer error message on wrong callback signature

    When the callback signature is missing a parameter that gets pushed due to the hook setup, print a nicer error message telling the user they tried to call e.g. DHookGetParam(hReturn, 1).
    peace-maker committed Oct 15, 2020
    Configuration menu
    Copy the full SHA
    2ccd565 View commit details
    Browse the repository at this point in the history

Commits on Oct 16, 2020

  1. Fix the saving and restoring part..

    Forgot to increase the buffer offset.
    peace-maker committed Oct 16, 2020
    Configuration menu
    Copy the full SHA
    c9a648a View commit details
    Browse the repository at this point in the history
  2. Update to AMBuild 2.2

    Automatic msvc detection ftw!
    peace-maker committed Oct 16, 2020
    Configuration menu
    Copy the full SHA
    947a520 View commit details
    Browse the repository at this point in the history

Commits on Oct 17, 2020

  1. Merge pull request #8 from peace-maker/saveargs_post

    Save all arguments before calling the original function
    peace-maker committed Oct 17, 2020
    Configuration menu
    Copy the full SHA
    136b7ba View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    3eb418b View commit details
    Browse the repository at this point in the history

Commits on Oct 19, 2020

  1. Configuration menu
    Copy the full SHA
    e5d5e9a View commit details
    Browse the repository at this point in the history

Commits on Oct 21, 2020

  1. Fix crash on server shutdown

    When the server is shutdown the map ends which destroys all entities. DHooks listens on OnEntityDestroyed and adds all vhooks on that entity to a list to call the removal callback on the next frame. SourceMod unloads all plugins first before unloading extensions. All plugins are unloaded on the same frame, so the removal callbacks aren't worked down on the next frame. The second plugin to be unloaded runs through the list of removed entity vhooks and checks which one belongs to itself. The first plugin was unloaded already though and left a dangling pointer in that list which is accessed by the second plugin unloading.
    
    Clear the plugin callback reference as well. Hopefully no hook is fired on the same frame after entity removal.. Will have to revisit in that case.
    peace-maker committed Oct 21, 2020
    Configuration menu
    Copy the full SHA
    aca054f View commit details
    Browse the repository at this point in the history
  2. Add README

    peace-maker committed Oct 21, 2020
    Configuration menu
    Copy the full SHA
    87e8034 View commit details
    Browse the repository at this point in the history

Commits on Oct 28, 2020

  1. Switch to std::vector and std::string

    Allows to compile against SourceMod 1.11+ which uses an updated AMTL without ke::Vector.
    peace-maker committed Oct 28, 2020
    Configuration menu
    Copy the full SHA
    a323ffc View commit details
    Browse the repository at this point in the history

Commits on Nov 16, 2020

  1. Move sourcemod to sourcemod_files to avoid build conflicts with the s…

    …ourcemod repo
    Maxime Leroy authored and peace-maker committed Nov 16, 2020
    Configuration menu
    Copy the full SHA
    29ca496 View commit details
    Browse the repository at this point in the history
  2. Avoid reference to GameData methodmap

    The GameData methodmap was added in SourceMod 1.10. Strip all references from the include file to support compilation with older SourceMod versions.
    peace-maker committed Nov 16, 2020
    Configuration menu
    Copy the full SHA
    6fa1016 View commit details
    Browse the repository at this point in the history

Commits on Jan 28, 2021

  1. Enable frame pointer on linux

    This helps with debugging crashes.
    peace-maker committed Jan 28, 2021
    Configuration menu
    Copy the full SHA
    b9a1585 View commit details
    Browse the repository at this point in the history
  2. Bump version to v2.2.0-detours16

    Also update the author list in the extension info.
    peace-maker committed Jan 28, 2021
    Configuration menu
    Copy the full SHA
    19d6b32 View commit details
    Browse the repository at this point in the history
  3. Statically link libstdc++

    Some servers (e.g. l4d2) ship an outdated libstdc++.so.6 which lacks the features we need.
    peace-maker committed Jan 28, 2021
    Configuration menu
    Copy the full SHA
    a5e0321 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    574576c View commit details
    Browse the repository at this point in the history

Commits on Mar 1, 2021

  1. Configuration menu
    Copy the full SHA
    1d7dcbe View commit details
    Browse the repository at this point in the history

Commits on Mar 11, 2021

  1. Configuration menu
    Copy the full SHA
    4f93cd9 View commit details
    Browse the repository at this point in the history

Commits on May 1, 2021

  1. Fix SourceHook contextstack mismatch on MRES_Supercede

    We setup a Recall (changing the parameters of the called function from within the hook handler) when a plugin wants to supercede, but never call the function again. This causes a copy of the current context to be pushed, but never properly removed by actually calling the function.
    
    This is wrong, since the original function should be skipped, so don't setup a Recall in SourceHook.
    
    This fixes a long standing issue causing a growth of the internal context stack in SourceHook. This caused very long delays on unhook during iteration of the context stack. Another issue was that the hook result further up the call stack would be misaligned due to the additional unused context pushed in DoRecall.
     Drifter321#2
    peace-maker committed May 1, 2021
    Configuration menu
    Copy the full SHA
    314f926 View commit details
    Browse the repository at this point in the history

Commits on Jun 23, 2021

  1. Configuration menu
    Copy the full SHA
    fb3cc73 View commit details
    Browse the repository at this point in the history
  2. Avoid using the glibc heap for the trampoline

    Use the known-rwx code allocator of SourcePawn like we do for the other code parts of the detour hooking logic.
    
    There seem to be problems with trying to make the C++ heap executable on CentOS 7+, so avoid using executable heap memory in the first place.
    
    Fixes #11
    Fixes #22
    peace-maker committed Jun 23, 2021
    Configuration menu
    Copy the full SHA
    83c6ad5 View commit details
    Browse the repository at this point in the history

Commits on Jun 24, 2021

  1. Fix DHookIsNullParam checking wrong parameter #15

    If the function is optimized to expect some parameter through a register instead of the stack, DHookParam.IsNull might validate the wrong parameter. First we store the stack parameters, then the register parameters in orgParams.
    peace-maker committed Jun 24, 2021
    Configuration menu
    Copy the full SHA
    ef295b4 View commit details
    Browse the repository at this point in the history

Commits on Jun 28, 2021

  1. Fix mismatching new[] + delete[]

    The return buffer wasn't constructed correctly.
    peace-maker committed Jun 28, 2021
    Configuration menu
    Copy the full SHA
    d4e3c37 View commit details
    Browse the repository at this point in the history

Commits on Jun 30, 2021

  1. Configuration menu
    Copy the full SHA
    98bb4e5 View commit details
    Browse the repository at this point in the history

Commits on Jul 26, 2021

  1. Add native to get address of pointer parameters (#24)

    * #23 `DHookGetParamAddress` + `DHookParam.GetAddress`
    
    * Update dhooks.inc
    Natanel-Shitrit committed Jul 26, 2021
    Configuration menu
    Copy the full SHA
    008a2fd View commit details
    Browse the repository at this point in the history

Commits on Aug 25, 2021

  1. Configuration menu
    Copy the full SHA
    1314f2d View commit details
    Browse the repository at this point in the history

Commits on Nov 17, 2021

  1. Configuration menu
    Copy the full SHA
    25b4b29 View commit details
    Browse the repository at this point in the history