Add project files.
This commit is contained in:
66
Patches/BestHTTP.cs
Normal file
66
Patches/BestHTTP.cs
Normal file
@@ -0,0 +1,66 @@
|
||||
using System;
|
||||
using System.Reflection;
|
||||
using HarmonyLib;
|
||||
|
||||
namespace undead_universal_patch_il2cpp.Patches
|
||||
{
|
||||
[HarmonyPatch]
|
||||
public class BestHTTP_Unob
|
||||
{
|
||||
static string TargetTypeName = "BestHTTP.HTTPManager";
|
||||
static string TargetMethodName = "SendRequest";
|
||||
static string Description = "Unobfuscated BestHTTP request URL rewrite patch";
|
||||
static readonly Type targetType = AccessTools.TypeByName(TargetTypeName);
|
||||
static readonly Type requestType = AccessTools.TypeByName("BestHTTP.HTTPRequest");
|
||||
static readonly MethodInfo targetMethod = AccessTools.Method(targetType, TargetMethodName, [requestType]);
|
||||
|
||||
static bool Prepare()
|
||||
{
|
||||
if (targetType == null)
|
||||
{
|
||||
Plugin.Log.LogWarning($"'{Description}' disabled. The type for this patch was not found.");
|
||||
return false;
|
||||
}
|
||||
if (targetMethod == null)
|
||||
{
|
||||
Plugin.Log.LogWarning($"'{Description}' disabled. The method for this patch was not found.");
|
||||
return false;
|
||||
}
|
||||
|
||||
Plugin.Log.LogInfo($"'{Description}' succeeded validation.");
|
||||
return true;
|
||||
}
|
||||
|
||||
static MethodBase TargetMethod()
|
||||
{
|
||||
return targetMethod;
|
||||
}
|
||||
|
||||
[HarmonyPrefix]
|
||||
static bool Prefix(ref object request)
|
||||
{
|
||||
PropertyInfo uriProperty = AccessTools.Property(requestType, "Uri");
|
||||
if (uriProperty == null)
|
||||
{
|
||||
Plugin.Log.LogFatal("BestHTTP_Unob failed: uriProperty was null.");
|
||||
return false;
|
||||
}
|
||||
|
||||
var uriInstance = (Uri)uriProperty.GetValue(request, null);
|
||||
if (uriInstance == null)
|
||||
{
|
||||
Plugin.Log.LogFatal("BestHTTP_Unob failed: uriInstance was null.");
|
||||
return false;
|
||||
}
|
||||
|
||||
if (GenericConfig.LogAllRequests.Value) Plugin.Log.LogInfo($"BestHTTP_Unob request (Before) URL: {uriInstance.ToString()}");
|
||||
|
||||
Uri newUri = new(NameserverConfig.NewUrl.Value);
|
||||
|
||||
if (GenericConfig.LogAllRequests.Value) Plugin.Log.LogInfo($"BestHTTP_Unob request (After) URL: {newUri.ToString()}");
|
||||
|
||||
uriProperty.SetValue(request, NameserverConfig., null);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user