Esempio n. 1
0
        private HookHandle AddInvalidInternal(InstructionInvalidHookCallback callback, ulong begin, ulong end, object userToken)
        {
            var wrapper = new uc_cb_hookinsn_invalid((uc, user_data) =>
            {
                Debug.Assert(uc == Emulator.Handle);
                callback(Emulator, userToken);
            });

            return(AddInvalidInternal(wrapper, begin, end));
        }
Esempio n. 2
0
        /// <summary>
        /// Adds a hook invalid instructions exceptions.
        /// </summary>
        /// <param name="callback"><see cref="InstructionInvalidHookCallback"/> to add.</param>
        /// <param name="userToken">Object associated with the callback.</param>
        /// <returns>A <see cref="HookHandle"/> which represents the hook.</returns>
        public HookHandle Add(InstructionInvalidHookCallback callback, object userToken)
        {
            Emulator.ThrowIfDisposed();

            if (callback == null)
            {
                throw new ArgumentNullException(nameof(callback));
            }

            return(AddInvalidInternal(callback, 1, 0, userToken));
        }