Introduction - Qiu233/QTRHacker Wiki

Here is a simple introduction to this hack.


QTRHacker is made up of 3 main levels:


QHackLib is designed to perform low level actions such as inline-hook, aobscan and so on.
QHackCLR is a part of QHackLib and used to fetch CLR information from a process. It's a replacement of clrMD. There's no need to look into QHackCLR if you don't have any knowledge of CLR. QHackLib.CLRHelper is a lightweight wrapper for QHackCLR that should be enough in most cases.

QHackLib.HackObject represents a ref object or boxed value in CLR and QHackLib.HackValue represents a unboxed value. Both of them inherits QHackLib.Entity and in turns inherits DynamicObject.
Unlike QHackCLR.Common.ClrObject and QHackCLR.Common.ClrValue, these two wrappers provide syntax convenience to field and array access. You just need to convert a HackObject to dynamic like: dynamic obj = hackObject; then you can access its field like: int v = obj.field;. The type to be converted to could be inferred by C# compiler.

QHackLib.QHackContext provide context for a .netfx process.