コード例 #1
0
        public void Setup()
        {
            _normalCalculator         = new TNativeCalculator();
            _delegateHookedCalculator = new TNativeCalculator();
            _delegateHookedCalculatorNoCallOriginal   = new TNativeCalculator();
            _functionPtrHookedCalculator              = new TNativeCalculator();
            _functionPtrHookedCalculatorNoCall        = new TNativeCalculator();
            _functionPtrHookedCalculatorNoCallManaged = new TNativeCalculator();
            _functionPtrDangerousHookedCalculator     = new TNativeCalculator();
            var hooks = ReloadedHooks.Instance;

            _delegateHookAddFunctionNoCallOriginal = hooks.CreateWrapper <NativeCalculator.AddFunction>((long)_delegateHookedCalculatorNoCallOriginal.Add, out var _);
            _delegateHookAddFunction             = hooks.CreateWrapper <NativeCalculator.AddFunction>((long)_delegateHookedCalculator.Add, out var _);
            _pointerHookAddFunction              = hooks.CreateWrapper <NativeCalculator.CalculatorFunction>((long)_functionPtrHookedCalculator.Add, out var _);
            _pointerHookNoCallAddFunction        = hooks.CreateWrapper <NativeCalculator.CalculatorFunction>((long)_functionPtrHookedCalculatorNoCall.Add, out var _);
            _pointerHookNoCallManagedAddFunction = hooks.CreateWrapper <NativeCalculator.CalculatorFunction>((long)_functionPtrHookedCalculatorNoCallManaged.Add, out var _);
            _pointerHookDangerousAddFunction     = hooks.CreateWrapper <NativeCalculator.CalculatorFunction>((long)_functionPtrDangerousHookedCalculator.Add, out var _);

            _delegateAddFunction         = hooks.CreateWrapper <NativeCalculator.AddFunction>((long)_normalCalculator.Add, out var _);
            _pointerAddFunction          = hooks.CreateWrapper <NativeCalculator.CalculatorFunction>((long)_normalCalculator.Add, out var _);
            _pointerDangerousAddFunction = hooks.CreateWrapper <NativeCalculator.CalculatorFunction>((long)_normalCalculator.Add, out var _);

            _delegateHookNoCallOriginal = hooks.CreateHook <NativeCalculator.AddFunction>(DelegateAddHookFunctionNoCallOriginal, (long)_delegateHookedCalculatorNoCallOriginal.Add).Activate();
            _delegateHook = hooks.CreateHook <NativeCalculator.AddFunction>(DelegateAddHookFunction, (long)_delegateHookedCalculator.Add).Activate();
            NativeCalculator._functionPointerHook              = hooks.CreateHook <NativeCalculator.CalculatorFunction>((delegate * unmanaged[Stdcall] < int, int, int >) & NativeCalculator.FunctionPointerHookFunction, (long)_functionPtrHookedCalculator.Add).Activate();
            NativeCalculator._functionPointerDangerousHook     = hooks.CreateHook <NativeCalculator.CalculatorFunction>(typeof(NativeCalculator), nameof(NativeCalculator.FunctionPointerDangerousHookFunction), (long)_functionPtrDangerousHookedCalculator.Add).Activate();
            NativeCalculator._functionPointerNoCallHook        = hooks.CreateHook <NativeCalculator.CalculatorFunction>(typeof(NativeCalculator), nameof(NativeCalculator.FunctionPointerNoCallOriginalFunction), (long)_functionPtrHookedCalculatorNoCall.Add).Activate();
            NativeCalculator._functionPointerNoCallManagedHook = hooks.CreateHook <NativeCalculator.CalculatorFunctionManaged>(typeof(NativeCalculator), nameof(NativeCalculator.FunctionPointerNoCallManaged), (long)_functionPtrHookedCalculatorNoCallManaged.Add).Activate();
        }
コード例 #2
0
        public void Setup()
        {
            _normalCalculator            = new TNativeCalculator();
            _delegateHookedCalculator    = new TNativeCalculator();
            _functionPtrHookedCalculator = new TNativeCalculator();
            var hooks = ReloadedHooks.Instance;

            _delegateHookAddFunction = hooks.CreateWrapper <NativeCalculator.AddFunction>((long)_delegateHookedCalculator.Add, out var _);
            _pointerHookAddFunction  = hooks.CreateWrapper <NativeCalculator.CalculatorFunction>((long)_functionPtrHookedCalculator.Add, out var _);

            _delegateAddFunction = hooks.CreateWrapper <NativeCalculator.AddFunction>((long)_normalCalculator.Add, out var _);
            _pointerAddFunction  = hooks.CreateWrapper <NativeCalculator.CalculatorFunction>((long)_normalCalculator.Add, out var _);

            _delegateHook = hooks.CreateHook <NativeCalculator.AddFunction>(DelegateAddHookFunction, (long)_delegateHookedCalculator.Add).Activate();
            NativeCalculator._functionPointerHook = hooks.CreateHook <NativeCalculator.CalculatorFunction>((delegate * unmanaged[Stdcall] < int, int, int >) & NativeCalculator.FunctionPointerHookFunction, (long)_functionPtrHookedCalculator.Add).Activate();
        }