Esempio n. 1
0
        private void HookStateChangedHandler(Hook hook, IRunningProcess aProcess, eNktHookState previousState, eNktHookState currentState)
        {
            var aStateChangeInfo = new HookStateChangeInfo(hook, aProcess, previousState, currentState);

            var aHook = aStateChangeInfo.Hook;

            if (aStateChangeInfo.CurrentState == eNktHookState.stRemoved)
            {
                _view.RemoveHook(aHook);
                _view.RemoveHookEnabled     = false;
                _view.RemoveAllHooksEnabled = _spyManager.AtLeastOneHookWasCreated;
                _view.ExportHookingSettings = _spyManager.AtLeastOneHookWasCreated;
            }
            else
            {
                _view.DisplayHookStatus(aStateChangeInfo);
            }

            if (!aProcess.IsHooked())
            {
                _view.DisplayRecentlyUnhookedProcess(aProcess);
            }
            else if (aProcess.AtLeastOneHookIsActive())
            {
                _view.DisplayRecentlyHookedProcessAsActive(aProcess);
            }
            else
            {
                _view.DisplayRecentlyHookedProcessAsInactive(aProcess);
            }

            _view.RefreshModulesView();
        }
Esempio n. 2
0
 public HookStateChangeInfo(Hook aHook, IRunningProcess aProcess, eNktHookState previousState, eNktHookState currentState)
 {
     Process = aProcess;
     PreviousState = previousState;
     CurrentState = currentState;
     Hook = aHook;
 }
Esempio n. 3
0
        public void Update(Hook aHook, IRunningProcess aProcess, eNktHookState currentState, eNktHookState previousState)
        {
            var module = aProcess.ModuleByName(aHook.ModuleName);

            lock (_syncLock)
            {
                if (currentState == eNktHookState.stRemoved)
                {
                    _hooks.ValueOrInitialize(aProcess).Remove(aHook);
                    _activeHooks.ValueOrInitialize(aProcess).Remove(aHook.Id);
                    if (previousState == eNktHookState.stActive)
                    {
                        _hookCountByModule.Update(aProcess, moduleDictionary =>
                        {
                            moduleDictionary.Update(module, oldCount => -- oldCount);
                            return(moduleDictionary);
                        });
                    }
                }
                else
                {
                    _hooks.ValueOrInitialize(aProcess).Add(aHook);

                    if (currentState == eNktHookState.stActive)
                    {
                        _activeHooks.ValueOrInitialize(aProcess).Add(aHook.Id);
                        _hookCountByModule.Update(aProcess, moduleDictionary =>
                        {
                            moduleDictionary.Update(module, oldCount => ++ oldCount);
                            return(moduleDictionary);
                        });
                    }
                }
            }
        }
Esempio n. 4
0
 public HookStateChangeInfo(Hook aHook, IRunningProcess aProcess, eNktHookState previousState, eNktHookState currentState)
 {
     Process       = aProcess;
     PreviousState = previousState;
     CurrentState  = currentState;
     Hook          = aHook;
 }
Esempio n. 5
0
        private void HandleHookStateChanged(NktHook aHook, NktProcess aProcess, eNktHookState currentState, eNktHookState previousState)
        {
            var consoleHook    = CreateConsoleHookFrom(aHook);
            var consoleProcess = CreateConsoleProcessFrom(aProcess);

            _hooksByProcesses.Update(consoleHook, consoleProcess, currentState, previousState);

            HookStateChangedHandler(consoleHook, consoleProcess, previousState, currentState);
        }
Esempio n. 6
0
        void _functionHook_OnStateChanged(NktHook Hook, NktProcess proc, eNktHookState newState, eNktHookState oldState)
        {
            Console.WriteLine("--- Hook state changed {0} from {1} to {2}", Hook.FunctionName,
                              oldState.ToString(), newState.ToString());

            if (newState == eNktHookState.stRemoved)
            {
                Environment.Exit(0);
            }
        }
Esempio n. 7
0
        private void HookStateChangedHandler(Hook hook, IRunningProcess aProcess, eNktHookState previousState, eNktHookState currentState)
        {
            var aStateChangeInfo = new HookStateChangeInfo(hook, aProcess, previousState, currentState);

            var aHook = aStateChangeInfo.Hook;
            if (aStateChangeInfo.CurrentState == eNktHookState.stRemoved)
            {
                _view.RemoveHook(aHook);
                _view.RemoveHookEnabled = false;
                _view.RemoveAllHooksEnabled = _spyManager.AtLeastOneHookWasCreated;
                _view.ExportHookingSettings = _spyManager.AtLeastOneHookWasCreated;
            }
            else
                _view.DisplayHookStatus(aStateChangeInfo);

            if (!aProcess.IsHooked())
                _view.DisplayRecentlyUnhookedProcess(aProcess);
            else if (aProcess.AtLeastOneHookIsActive())
                _view.DisplayRecentlyHookedProcessAsActive(aProcess);
            else
                _view.DisplayRecentlyHookedProcessAsInactive(aProcess);

            _view.RefreshModulesView();
        }
Esempio n. 8
0
 public void UpdateState(eNktHookState aState)
 {
     Text = _functionName + " (" + aState + ")";
 }
Esempio n. 9
0
 public void UpdateState(eNktHookState aState)
 {
     Text = _functionName + " (" + aState + ")";
 }
Esempio n. 10
0
        public void Update(Hook aHook, IRunningProcess aProcess, eNktHookState currentState, eNktHookState previousState)
        {
            var module = aProcess.ModuleByName(aHook.ModuleName);
            lock (_syncLock)
            {
                if (currentState == eNktHookState.stRemoved)
                {
                    _hooks.ValueOrInitialize(aProcess).Remove(aHook);
                    _activeHooks.ValueOrInitialize(aProcess).Remove(aHook.Id);
                    if (previousState == eNktHookState.stActive) 
                        _hookCountByModule.Update(aProcess, moduleDictionary =>
                                                            { 
                                                                moduleDictionary.Update(module, oldCount => --oldCount);
                                                                return moduleDictionary;
                                                            });
                }
                else
                {
                    _hooks.ValueOrInitialize(aProcess).Add(aHook);

                    if (currentState == eNktHookState.stActive)
                    {
                        _activeHooks.ValueOrInitialize(aProcess).Add(aHook.Id);
                        _hookCountByModule.Update(aProcess, moduleDictionary =>
                                                            {
                                                                moduleDictionary.Update(module, oldCount => ++oldCount);
                                                                return moduleDictionary;
                                                            });
                    }
                }
            }
        }
Esempio n. 11
0
        private void HandleHookStateChanged(NktHook aHook, NktProcess aProcess, eNktHookState currentState, eNktHookState previousState)
        {
            var consoleHook = CreateConsoleHookFrom(aHook);
            var consoleProcess = CreateConsoleProcessFrom(aProcess);

            _hooksByProcesses.Update(consoleHook, consoleProcess, currentState, previousState);

            HookStateChangedHandler(consoleHook, consoleProcess, previousState, currentState);
        }
Esempio n. 12
0
        void _functionHook_OnStateChanged(NktHook Hook, NktProcess proc, eNktHookState newState, eNktHookState oldState)
        {
            Console.WriteLine("--- Hook state changed {0} from {1} to {2}", Hook.FunctionName,
                oldState.ToString(), newState.ToString());

            if (newState == eNktHookState.stRemoved)
            {
                Environment.Exit(0);
            }
        }