Net 4.8 upgrade (#27)
* Framework 4.8 Upgrade and small memory access change * update tests to 4.8 * update mod_id for torch mod
This commit is contained in:
@@ -11,7 +11,7 @@ namespace Torch.Mod
|
||||
[MySessionComponentDescriptor(MyUpdateOrder.AfterSimulation)]
|
||||
public class TorchModCore : MySessionComponentBase
|
||||
{
|
||||
public const ulong MOD_ID = 1406994352;
|
||||
public const ulong MOD_ID = 2722000298;
|
||||
private static bool _init;
|
||||
public static bool Debug;
|
||||
|
||||
|
@@ -7,7 +7,7 @@
|
||||
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||
<RootNamespace>Torch.Server.Tests</RootNamespace>
|
||||
<AssemblyName>Torch.Server.Tests</AssemblyName>
|
||||
<TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion>
|
||||
<TargetFrameworkVersion>v4.8</TargetFrameworkVersion>
|
||||
<FileAlignment>512</FileAlignment>
|
||||
<TargetFrameworkProfile />
|
||||
<NuGetPackageImportStamp>
|
||||
|
@@ -1,4 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<configuration>
|
||||
<runtime>
|
||||
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
|
||||
@@ -8,4 +8,4 @@
|
||||
</dependentAssembly>
|
||||
</assemblyBinding>
|
||||
</runtime>
|
||||
</configuration>
|
||||
<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.8"/></startup></configuration>
|
||||
|
2
Torch.Server/Properties/Resources.Designer.cs
generated
2
Torch.Server/Properties/Resources.Designer.cs
generated
@@ -19,7 +19,7 @@ namespace Torch.Server.Properties {
|
||||
// class via a tool like ResGen or Visual Studio.
|
||||
// To add or remove a member, edit your .ResX file then rerun ResGen
|
||||
// with the /str option, or rebuild your VS project.
|
||||
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
|
||||
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
|
||||
internal class Resources {
|
||||
|
2
Torch.Server/Properties/Settings.Designer.cs
generated
2
Torch.Server/Properties/Settings.Designer.cs
generated
@@ -12,7 +12,7 @@ namespace Torch.Server.Properties {
|
||||
|
||||
|
||||
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
|
||||
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "15.0.0.0")]
|
||||
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "16.10.0.0")]
|
||||
internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
|
||||
|
||||
private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
|
||||
|
@@ -7,7 +7,7 @@
|
||||
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||
<RootNamespace>Torch.Server</RootNamespace>
|
||||
<AssemblyName>Torch.Server</AssemblyName>
|
||||
<TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion>
|
||||
<TargetFrameworkVersion>v4.8</TargetFrameworkVersion>
|
||||
<FileAlignment>512</FileAlignment>
|
||||
<ProjectTypeGuids>{60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
@@ -381,6 +381,7 @@
|
||||
<Generator>ResXFileCodeGenerator</Generator>
|
||||
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
|
||||
</EmbeddedResource>
|
||||
<None Include="app.config" />
|
||||
<None Include="packages.config" />
|
||||
<None Include="Properties\Settings.settings">
|
||||
<Generator>SettingsSingleFileGenerator</Generator>
|
||||
|
3
Torch.Server/app.config
Normal file
3
Torch.Server/app.config
Normal file
@@ -0,0 +1,3 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<configuration>
|
||||
<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.8"/></startup></configuration>
|
@@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<packages>
|
||||
<package id="ControlzEx" version="3.0.2.4" targetFramework="net461" />
|
||||
<package id="ControlzEx" version="3.0.2.4" targetFramework="net461" requireReinstallation="true" />
|
||||
<package id="MahApps.Metro" version="1.6.1" targetFramework="net461" />
|
||||
<package id="Markdown.Xaml" version="1.0.0" targetFramework="net461" />
|
||||
<package id="Microsoft.Win32.Registry" version="4.4.0" targetFramework="net461" />
|
||||
|
@@ -7,7 +7,7 @@
|
||||
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||
<RootNamespace>Torch.Tests</RootNamespace>
|
||||
<AssemblyName>Torch.Tests</AssemblyName>
|
||||
<TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion>
|
||||
<TargetFrameworkVersion>v4.8</TargetFrameworkVersion>
|
||||
<FileAlignment>512</FileAlignment>
|
||||
<TargetFrameworkProfile />
|
||||
<NuGetPackageImportStamp>
|
||||
|
@@ -1,4 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<configuration>
|
||||
<runtime>
|
||||
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
|
||||
@@ -8,4 +8,4 @@
|
||||
</dependentAssembly>
|
||||
</assemblyBinding>
|
||||
</runtime>
|
||||
</configuration>
|
||||
<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.8"/></startup></configuration>
|
||||
|
@@ -30,6 +30,17 @@ namespace Torch.Managers.PatchManager
|
||||
return handle.GetFunctionPointer().ToInt64();
|
||||
}
|
||||
|
||||
internal static void UnprotectMemoryPage(long memory) {
|
||||
if (NativeLibrary.IsWindows) {
|
||||
var succ = NativeLibrary.VirtualProtect(
|
||||
new IntPtr(memory), new UIntPtr(1),
|
||||
NativeLibrary.Protection.PAGE_EXECUTE_READWRITE, out var _ignored);
|
||||
|
||||
if (!succ) {
|
||||
throw new System.ComponentModel.Win32Exception();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// x64 ISA format:
|
||||
|
@@ -51,6 +51,7 @@ namespace Torch.Managers.PatchManager
|
||||
|
||||
_revertAddress = AssemblyMemory.GetMethodBodyStart(_method);
|
||||
var newAddress = AssemblyMemory.GetMethodBodyStart(patch);
|
||||
AssemblyMemory.UnprotectMemoryPage(_revertAddress);
|
||||
_revertData = AssemblyMemory.WriteJump(_revertAddress, newAddress);
|
||||
_pinnedPatch = GCHandle.Alloc(patch);
|
||||
_log.Log(PrintMode != 0 ? LogLevel.Info : LogLevel.Debug,
|
||||
|
40
Torch/Managers/PatchManager/NativeLibrary.cs
Normal file
40
Torch/Managers/PatchManager/NativeLibrary.cs
Normal file
@@ -0,0 +1,40 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Torch.Managers.PatchManager {
|
||||
internal static class NativeLibrary {
|
||||
private static readonly HashSet<PlatformID> WindowsPlatformIDSet = new HashSet<PlatformID>
|
||||
{
|
||||
PlatformID.Win32NT, PlatformID.Win32S, PlatformID.Win32Windows, PlatformID.WinCE
|
||||
};
|
||||
|
||||
public static bool IsWindows {
|
||||
get {
|
||||
return WindowsPlatformIDSet.Contains(Environment.OSVersion.Platform);
|
||||
}
|
||||
}
|
||||
|
||||
[Flags]
|
||||
public enum Protection {
|
||||
PAGE_NOACCESS = 0x01,
|
||||
PAGE_READONLY = 0x02,
|
||||
PAGE_READWRITE = 0x04,
|
||||
PAGE_WRITECOPY = 0x08,
|
||||
PAGE_EXECUTE = 0x10,
|
||||
PAGE_EXECUTE_READ = 0x20,
|
||||
PAGE_EXECUTE_READWRITE = 0x40,
|
||||
PAGE_EXECUTE_WRITECOPY = 0x80,
|
||||
PAGE_GUARD = 0x100,
|
||||
PAGE_NOCACHE = 0x200,
|
||||
PAGE_WRITECOMBINE = 0x400
|
||||
}
|
||||
|
||||
[DllImport("kernel32.dll")]
|
||||
public static extern bool VirtualProtect(IntPtr lpAddress, UIntPtr dwSize,
|
||||
Protection flNewProtect, out Protection lpflOldProtect);
|
||||
}
|
||||
}
|
@@ -1,4 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="15.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
|
||||
<PropertyGroup>
|
||||
@@ -7,7 +7,7 @@
|
||||
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||
<RootNamespace>Torch</RootNamespace>
|
||||
<AssemblyName>Torch</AssemblyName>
|
||||
<TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion>
|
||||
<TargetFrameworkVersion>v4.8</TargetFrameworkVersion>
|
||||
<FileAlignment>512</FileAlignment>
|
||||
<TargetFrameworkProfile />
|
||||
<NuGetPackageImportStamp>
|
||||
@@ -234,6 +234,7 @@
|
||||
<Compile Include="Managers\PatchManager\MSIL\MsilOperandSwitch.cs" />
|
||||
<Compile Include="Managers\PatchManager\MethodRewritePattern.cs" />
|
||||
<Compile Include="Managers\PatchManager\MSIL\MsilTryCatchOperation.cs" />
|
||||
<Compile Include="Managers\PatchManager\NativeLibrary.cs" />
|
||||
<Compile Include="Managers\PatchManager\PatchShimAttribute.cs" />
|
||||
<Compile Include="Managers\PatchManager\PatchContext.cs" />
|
||||
<Compile Include="Managers\PatchManager\PatchManager.cs" />
|
||||
|
@@ -1,4 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<configuration>
|
||||
<runtime>
|
||||
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
|
||||
@@ -8,4 +8,4 @@
|
||||
</dependentAssembly>
|
||||
</assemblyBinding>
|
||||
</runtime>
|
||||
</configuration>
|
||||
<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.8"/></startup></configuration>
|
||||
|
@@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<packages>
|
||||
<package id="ControlzEx" version="3.0.2.4" targetFramework="net461" />
|
||||
<package id="ControlzEx" version="3.0.2.4" targetFramework="net461" requireReinstallation="true" />
|
||||
<package id="MahApps.Metro" version="1.6.1" targetFramework="net461" />
|
||||
<package id="Microsoft.Win32.Registry" version="4.4.0" targetFramework="net461" />
|
||||
<package id="Mono.TextTransform" version="1.0.0" targetFramework="net461" />
|
||||
|
Reference in New Issue
Block a user