Beispiel #1
0
        static byte[] PatchFile(IATManager manager, string originalFunc, string hookFunc)
        {
            var original = manager.GetFunction(originalFunc);

            if (original == null)
            {
                throw new Exception($"Original: {originalFunc} not found !");
            }

            var hook = manager.GetFunction(hookFunc);

            if (hook == null)
            {
                throw new Exception($"Hook: {hookFunc} not found !");
            }

            var iatThunk    = manager.GetIATThunk(original);
            var delta       = hook.IATOffset - original.IATOffset;
            var fullAddress = iatThunk + delta;

            return(manager.PatchIAT(iatThunk, fullAddress));
        }