From ac93d1095581046c5eaf50ef405c467600507941 Mon Sep 17 00:00:00 2001 From: Arkhist Date: Sun, 9 Apr 2017 16:27:11 +0200 Subject: [PATCH] Fixed Executable Handler using file name to get executable data --- Pathfinder.csproj | 6 ++---- Pathfinder/Executable/Handler.cs | 12 +++++++----- PathfinderPatcher/Pathfinder.cs | 2 ++ 3 files changed, 11 insertions(+), 9 deletions(-) diff --git a/Pathfinder.csproj b/Pathfinder.csproj index de6c4e30..522493fe 100644 --- a/Pathfinder.csproj +++ b/Pathfinder.csproj @@ -96,12 +96,10 @@ - - - - + + diff --git a/Pathfinder/Executable/Handler.cs b/Pathfinder/Executable/Handler.cs index ff878653..34bb17fd 100644 --- a/Pathfinder/Executable/Handler.cs +++ b/Pathfinder/Executable/Handler.cs @@ -26,12 +26,14 @@ public static bool AddExecutable(string exeName, Interface inter) internal static void ExecutableListener(ExecutableExecuteEvent e) { - Interface i; - if (interfaces.TryGetValue(e.ExecutableName, out i) - && e.ExecutableData.Equals(i.FileData)) + foreach(Interface i in interfaces.Values) { - e.OsInstance.addExe(new Instance(e.Location, e.OsInstance, e.Parameters, i)); - e.IsCancelled = true; + if (e.ExecutableData.Equals(i.FileData)) + { + e.OsInstance.addExe(new Instance(e.Location, e.OsInstance, e.Parameters, i)); + e.IsCancelled = true; + break; + } } } diff --git a/PathfinderPatcher/Pathfinder.cs b/PathfinderPatcher/Pathfinder.cs index abc3dd34..5a6b0261 100644 --- a/PathfinderPatcher/Pathfinder.cs +++ b/PathfinderPatcher/Pathfinder.cs @@ -105,6 +105,7 @@ internal static void Main(string[] args) flags: InjectFlags.PassInvokingInstance | InjectFlags.ModifyReturn ); + // SENSIBLE CODE, CHANGE OFFSET IF NEEDED ad.MainModule.GetType("Hacknet.OS").GetMethod("launchExecutable").InjectWith( hooks.GetMethod("onExecutableExecute"), 48, @@ -112,6 +113,7 @@ internal static void Main(string[] args) localsID: new int[] { 2 } ); + // SENSIBLE CODE, CHANGE OFFSET IF NEEDED var mainMenu = ad.MainModule.GetType("Hacknet.MainMenu"); mainMenu.GetMethod("DrawBackgroundAndTitle").InjectWith( hooks.GetMethod("onDrawMainMenuTitles"),