public void ApplyHookOn(Hook hook, IRunningProcess process) { var rule = new HookingRule(process.Name, hook.ModuleName, hook.FunctionName); RecreateHookFromRuleOn(new List <IRunningProcess> { process }, rule); }
public void Add(string aProcessName, string aModuleName, string aFunctionName) { var aHookingRule = new HookingRule(aProcessName, aModuleName, aFunctionName); if (_hookingRules.Contains(aHookingRule)) { return; } _hookingRules.Add(aHookingRule); }
public bool Equals(HookingRule other) { if (ReferenceEquals(null, other)) { return(false); } if (ReferenceEquals(this, other)) { return(true); } return(AppliesOnProcessNamed(other.ProcessName) && Matches(other.ModuleName, other.FunctionName)); }
public void Add(string aProcessName, string aModuleName, string aFunctionName) { var aHookingRule = new HookingRule(aProcessName, aModuleName, aFunctionName); if (_hookingRules.Contains(aHookingRule)) return; _hookingRules.Add(aHookingRule); }
public void ApplyHookOn(Hook hook, IRunningProcess process) { var rule = new HookingRule(process.Name, hook.ModuleName, hook.FunctionName); RecreateHookFromRuleOn(new List<IRunningProcess>{ process }, rule); }
private void RecreateHookFromRuleOn(IEnumerable<IRunningProcess> selectedProcesses, HookingRule aRule) { var matchingProcesses = selectedProcesses.Where(aRule.AppliesOn); foreach (var process in matchingProcesses) { if (!process.IsAlive()) return; var module = process.ModuleByName(aRule.ModuleName); if (module == null) continue; var function = module.FunctionByName(aRule.FunctionName); if (function == null) continue; _addHook(process, module, function); } }
public bool Equals(HookingRule other) { if (ReferenceEquals(null, other)) return false; if (ReferenceEquals(this, other)) return true; return AppliesOnProcessNamed(other.ProcessName) && Matches(other.ModuleName, other.FunctionName); }
private void RecreateHookFromRuleOn(IEnumerable <IRunningProcess> selectedProcesses, HookingRule aRule) { var matchingProcesses = selectedProcesses.Where(aRule.AppliesOn); foreach (var process in matchingProcesses) { if (!process.IsAlive()) { return; } var module = process.ModuleByName(aRule.ModuleName); if (module == null) { continue; } var function = module.FunctionByName(aRule.FunctionName); if (function == null) { continue; } _addHook(process, module, function); } }