https://github.com/amyseni/arkitekt
Hi all, saw the Dragon Age memory leak video and had to come share this, given it is basically tailor made to do the kind of code modification that was used to fix Dragon Age.
It should support anything win32-based unless a compiler optimization ends up causing a custom calling convention to be used, and my code currently uses it to hook __stdcall, __thiscall and __cdecl. Would love any feedback, and more than welcome any contributions.
It uses MologieDetours for detouring, wraps DynASM in a more readable API for code emission, and is based off of LibZHL (you may know from The Binding of Isaac: Antibirth and FTL: Hyperspace & Multiverse). The Organik side and parts of Arkitekt are also made to work within & for GameMaker and take inspiration from or are based on parts of YYToolKit and AurieFramework. Arkitekt is licensed under MIT.
Please be gentle, I only really started learning C++ seriously last June, and I barely understand x86-32 well enough to manage the few hook types I support. I still consider myself pretty much a newbie at both, so it's all definitely rough around the edges, and there's not really a tutorial as of yet.
LibArkitekt, a custom DynASM wrapper to generate and install function hooks using "modern c++" class templates and dynamic detours, rather than hard-coded/static trampolines or de...