public static void Start() { try { IL2Method method = Assemblies.a["Assembly-CSharp"].GetClass("VRC_EventDispatcherRFC").GetMethod("TriggerEvent"); if (method == null) { new Exception(); } pTriggerEvent = IL2Ch.Patch(method, typeof(patch_EventManager).GetMethod("patch_method", BindingFlags.Static | BindingFlags.NonPublic)); ConSole.Success("Patch: EventManager"); } catch { ConSole.Error("Patch: EventManager"); } try { IL2Method method = Assemblies.a["Assembly-CSharp"].GetClass("RoomManagerBase").GetMethod("OnConnectedToMaster"); if (method == null) { new Exception(); } pOnConnectToMaster = IL2Ch.Patch(method, typeof(patch_EventManager).GetMethod("patch_method2", BindingFlags.Static | BindingFlags.NonPublic)); ConSole.Success("Patch: EventManager [JoinRoom]"); } catch { ConSole.Error("Patch: EventManager [JoinRoom]"); } }
public static void Start() { try { IL2Method method = Assemblies.a["Assembly-CSharp"].GetClass("VRC_EventLog").GetProperties().First(x => x.GetGetMethod().GetReturnType().Name == "System.Boolean" && x.GetGetMethod().HasFlag(IL2BindingFlags.METHOD_STATIC)).GetGetMethod(); pPatch[2] = IL2Ch.Patch(method, typeof(patch_Network).GetMethod("patch_method3", BindingFlags.Static | BindingFlags.NonPublic)); method = Assemblies.a["Assembly-CSharp"].GetClass("SteamNetworkingManager", "VRC.Steam").GetProperties().First(x => x.GetGetMethod().HasFlag(IL2BindingFlags.METHOD_STATIC) && x.GetGetMethod().GetReturnType().Name == "System.Boolean").GetGetMethod(); pPatch[3] = IL2Ch.Patch(method, typeof(patch_Network).GetMethod("patch_method4", BindingFlags.Static | BindingFlags.NonPublic)); } catch { ConSole.Error("Patch: Network"); } }
public static void Start() { try { IL2Method method = Assemblies.a["Photon3Unity3D"].GetClass("EnetPeer", "ExitGames.Client.Photon").GetMethod("EnqueueOperation"); if (method == null) { throw new Exception(); } pPhotonPeer = IL2Ch.Patch(method, typeof(patch_PhotonSerilize).GetMethod("patch_method", BindingFlags.Static | BindingFlags.NonPublic)); ConSole.Success("Patch: Photon Serilize"); } catch { ConSole.Error("Patch: Photon Serilize"); } }
public static void Start() { try { IL2Method method = PortalTrigger.Instance_Class.GetMethod("OnTriggerEnter"); if (method == null) { throw new Exception(); } pPortalJoin = IL2Ch.Patch(method, typeof(patch_NoPortal).GetMethod("patch_method", BindingFlags.Static | BindingFlags.NonPublic)); ConSole.Success("Patch: No Portal Join"); } catch { ConSole.Error("Patch: No Portal Join"); } }
public static void Start() { try { IL2Method method = IL2Cmds.GetAssembly("VRCSDKBase").GetClass("VRC_EventHandler", "VRC.SDKBase").GetMethod("InternalTriggerEvent"); if (method == null) { throw new Exception(); } pGlobalEvents = IL2Ch.Patch(method, typeof(patch_GlobalEvents).GetMethod("patch_method", BindingFlags.Static | BindingFlags.NonPublic)); ConSole.Success("Patch: Global Events"); } catch { ConSole.Error("Patch: Global Events"); } }
public static void Start() { try { IL2Method method = Assemblies.a["VRCCore-Standalone"].GetClass("API", "VRC.Core").GetMethod("SendRequestInternal"); if (method == null) { throw new Exception(); } pInvisMode = IL2Ch.Patch(method, typeof(patch_InvisAPI).GetMethod("patch_method", BindingFlags.Static | BindingFlags.NonPublic)); ConSole.Success("Patch: InvisAPI"); } catch { ConSole.Error("Patch: InvisAPI"); } }
public static void Start() { try { IL2Method method = UiAvatarList.Instance_Class.GetMethod("Update"); if (method == null) { new Exception(); } pUpdate = IL2Ch.Patch(method, typeof(patch_AvatarTools).GetMethod("patch_method", BindingFlags.Static | BindingFlags.NonPublic)); ConSole.Success("Patch: Avatar Tools"); } catch { ConSole.Error("Patch: Avatar Tools"); } }
public static void Start() { IL2Method[] methods = null; try { methods = Assemblies.a["Assembly-CSharp"].GetClass("RoomManagerBase").GetMethods().Where(x => x.GetParameters().Length == 1).Where(x => x.GetParameters()[0].typeName == "PortalInternal").ToArray(); if (methods == null) { throw new Exception(); } foreach (IL2Method method in methods) { IL2Ch.Patch(method, typeof(patch_MorePortals).GetMethod("patch_method", BindingFlags.Static | BindingFlags.NonPublic)); } ConSole.Success("Patch: More Portals [1]"); } catch { ConSole.Error("Patch: More Portals [1]"); } #if (DEBUG) try { methods = Assemblies.a["Assembly-CSharp"].GetClass("ObjectInstantiator").GetMethods().Where(x => x.GetParameters().Length == 2).Where(x => x.GetParameters()[0].typeName == "VRC.Player" && x.GetParameters()[1].typeName.StartsWith("ObjectInstantiator.")).ToArray(); if (methods == null) { throw new Exception(); } foreach (IL2Method method in methods) { IL2Ch.Patch(method, typeof(patch_MorePortals).GetMethod("patch_method_2", BindingFlags.Static | BindingFlags.NonPublic)); } ConSole.Success("Patch: More Portals [2]"); } catch { ConSole.Error("Patch: More Portals [2]"); } #endif }
public static void Start() { IL2Method method = null; try { method = Assemblies.a["Assembly-CSharp"].GetClass("UserInteractMenu").GetMethod("Update"); if (method == null) { new Exception(); } pAvatarStealer = IL2Ch.Patch(method, typeof(patch_AvatarSteal).GetMethod("patch_method", BindingFlags.Static | BindingFlags.NonPublic)); ConSole.Success("Patch: Avatar Stealer"); } catch { ConSole.Error("Patch: Avatar Stealer"); } }
public static void Start() { try { // ----------------- [ Update ] --------------------------- // IL2Method method = UdonBehaviour.Instance_Class.GetMethod("Update"); if (method == null) { new Exception(); } pList[0] = IL2Ch.Patch(method, typeof(patch_NoUdon).GetMethod("patch_method_0", BindingFlags.Static | BindingFlags.NonPublic)); // ----------------- [ LateUpdate ] --------------------------- // method = UdonBehaviour.Instance_Class.GetMethod("LateUpdate"); if (method == null) { new Exception(); } pList[1] = IL2Ch.Patch(method, typeof(patch_NoUdon).GetMethod("patch_method_1", BindingFlags.Static | BindingFlags.NonPublic)); // ----------------- [ FixedUpdate ] --------------------------- // method = UdonBehaviour.Instance_Class.GetMethod("FixedUpdate"); if (method == null) { new Exception(); } pList[2] = IL2Ch.Patch(method, typeof(patch_NoUdon).GetMethod("patch_method_2", BindingFlags.Static | BindingFlags.NonPublic)); ConSole.Success("Patch: NO-Udon"); } catch { ConSole.Error("Patch: NO-Udon"); } }
public static void Start() { IL2Method method = VRC.Player.Instance_Class.GetMethod("OnNetworkReady"); try { unsafe { var disasm = new Disassembler(*(IntPtr *)method.ptr, 16, ArchitectureMode.x86_64, unchecked ((ulong)(*(IntPtr *)method.ptr).ToInt64()), true, Vendor.Intel); var instruction = disasm.Disassemble().First(x => x.ToString().StartsWith("jmp ")); IntPtr addr = new IntPtr((long)instruction.Offset + instruction.Length + instruction.Operands[0].LvalSDWord); VRC.Player.methodUpdateModeration = VRC.Player.Instance_Class.GetMethods().First(x => *(IntPtr *)x.ptr == addr); if (VRC.Player.methodUpdateModeration == null) { throw new Exception(); } // UpdateModeration() disasm = new Disassembler(*(IntPtr *)VRC.Player.methodUpdateModeration.ptr, 0x1000, ArchitectureMode.x86_64, unchecked ((ulong)(*(IntPtr *)VRC.Player.methodUpdateModeration.ptr).ToInt64()), true, Vendor.Intel); // disasm.Disassemble().ToList().ForEach(x => { Console.WriteLine(x.ToString()); }); var instructions = disasm.Disassemble().TakeWhile(x => x.Mnemonic != ud_mnemonic_code.UD_Iint3); foreach (var instruction1 in instructions) { if (!instruction1.ToString().StartsWith("call ")) { continue; } try { addr = new IntPtr((long)instruction1.Offset + instruction1.Length + instruction1.Operands[0].LvalSDWord); method = ModerationManager.Instance_Class.GetMethods().First(x => *(IntPtr *)x.ptr == addr); if (method.GetParameters().Length != 1 || method.GetReturnType().Name != "System.Boolean") { continue; } if (method.GetParameters()[0].typeName != "System.String") { continue; } pAntiBlock = IL2Ch.Patch(method, typeof(patch_AntiBlock).GetMethod("patch_method", BindingFlags.Static | BindingFlags.NonPublic)); break; } catch { continue; } } } foreach (var ass in BlazeSDK.Main.listAssembly) { ConSole.Debug(ass.FullName); } if (pAntiBlock == null) { throw new Exception(); } ConSole.Success("Patch: Anti-Block"); } catch { ConSole.Error("Patch: Anti-Block"); } }
public static void Start() { string srcYoutubeDL = Application.streamingAssetsPath + "/youtube-dl.exe"; if (File.Exists(srcYoutubeDL)) { currentVersion = FileVersionInfo.GetVersionInfo(srcYoutubeDL).ProductVersion; } Uri uri = new Uri(apiGitHub); ServicePointManager.SecurityProtocol = WebTools.SecureProtocol.SSL; using (WebClient webClient = new WebClient()) { webClient.Headers.Add("User-Agent", "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-GB; rv:1.9.2.12) Gecko/20101026 Firefox/3.6.12"); webClient.Headers.Add("Accept", "*/*"); webClient.Headers.Add("Accept-Language", "en-gb,en;q=0.5"); webClient.Headers.Add("Accept-Charset", "ISO-8859-1,utf-8;q=0.7,*;q=0.7"); Stream stream = webClient.OpenRead(uri); StreamReader streamReader = new StreamReader(stream); try { string _result = streamReader.ReadToEnd(); string[] args = _result.Split('\n').Where(x => x.Contains("\"tag_name\"")).ToArray(); if (args.Length > 0) { foreach (string arg in args) { string[] templist = arg.Split(new char[] { ':' }, 2); if (templist.Length == 2) { string[] temparg = templist[1].Split('"'); if (temparg.Length == 3) { apiVersion = temparg[1]; if (apiVersion == currentVersion) { ConSole.Success("You use last version Youtube-dl! [" + apiVersion + "]"); return; } } } } } else { throw new Exception("Not found a tag_name"); } } catch { ConSole.Error("Patch: Youtube-dl"); } finally { streamReader.Close(); stream.Close(); } } ServicePointManager.SecurityProtocol = WebTools.SecureProtocol.SSL; using (WebClient webClient = new WebClient()) { webClient.Headers.Add("User-Agent", "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-GB; rv:1.9.2.12) Gecko/20101026 Firefox/3.6.12"); webClient.Headers.Add("Accept", "*/*"); webClient.Headers.Add("Accept-Language", "en-gb,en;q=0.5"); webClient.Headers.Add("Accept-Charset", "ISO-8859-1,utf-8;q=0.7,*;q=0.7"); try { webClient.DownloadFile("https://github.com/ytdl-org/youtube-dl/releases/download/" + apiVersion + "/youtube-dl.exe", srcYoutubeDL); ConSole.Success("Downloaded! You are installed last version Youtube-dl! [" + apiVersion + "]"); } catch { ConSole.Error("Patch: Bad download!"); } } }
public static void Start() { IL2Method method; int iError = 0; // ~ Analytics [Count: 3] try { method = Assemblies.a["UnityEngine.UnityAnalyticsModule"].GetClass("Analytics", "UnityEngine.Analytics").GetMethods() .Where(x => x.Name == "CustomEvent" && x.GetParameters().Length == 2) .First(x => x.GetParameters()[1].Name == "eventData"); pAnalytics[0] = IL2Ch.Patch(method, typeof(patch_AntiKick).GetMethod("patch_method_3", BindingFlags.Static | BindingFlags.NonPublic)); } catch { ConSole.Error("Patch: AntiKick [2]"); iError++; } try { method = Assemblies.a["Assembly-CSharp"].GetClass("Analytics").GetMethods() .Where(x => x.GetReturnType().Name == "System.Void" && x.GetParameters().Length == 3) .Where(x => x.GetParameters()[0].typeName[0] == 'A') .First(x => x.HasFlag(IL2BindingFlags.METHOD_STATIC)); pAnalytics[1] = IL2Ch.Patch(method, typeof(patch_AntiKick).GetMethod("patch_method_4", BindingFlags.Static | BindingFlags.NonPublic)); } catch { ConSole.Error("Patch: AntiKick [3]"); iError++; } try { method = Assemblies.a["VRCCore-Standalone"].GetClass("AmplitudeWrapper", "AmplitudeSDKWrapper").GetMethod("CheckedLogEvent"); pAnalytics[2] = IL2Ch.Patch(method, typeof(patch_AntiKick).GetMethod("patch_method_5", BindingFlags.Static | BindingFlags.NonPublic)); } catch { ConSole.Error("Patch: AntiKick [4]"); iError++; } try { foreach (var m in Assemblies.a["Assembly-CSharp"].GetClass("ModerationManager").GetMethods() .Where(x => x.GetReturnType().Name == "System.Boolean" && x.GetParameters().Length == 0)) { //.Where(x => x.HasFlag(IL2BindingFlags.METHOD_STATIC))) IL2Ch.Patch(m, typeof(patch_AntiKick).GetMethod("patch_method_6", BindingFlags.Static | BindingFlags.NonPublic)); } } catch { ConSole.Error("Patch: AntiKick [5]"); iError++; } try { foreach (var m in Assemblies.a["Assembly-CSharp"].GetClass("ModerationManager").GetMethods() .Where(x => x.GetParameters().Length == 3) .Where(x => IL2Import.il2cpp_type_get_name(x.GetParameters()[0].ptr) == "System.String") .Where(x => IL2Import.il2cpp_type_get_name(x.GetParameters()[1].ptr) == "System.String") .Where(x => IL2Import.il2cpp_type_get_name(x.GetParameters()[2].ptr) == "System.String")) { IL2Ch.Patch(m, typeof(patch_AntiKick).GetMethod("patch_method_7", BindingFlags.Static | BindingFlags.NonPublic)); } } catch { ConSole.Error("Patch: AntiKick [6]"); iError++; } try { method = Assemblies.a["Assembly-CSharp"].GetClass("ModerationManager").GetMethod("KickUserRPC"); IL2Ch.Patch(method, typeof(patch_AntiKick).GetMethod("patch_method_5", BindingFlags.Static | BindingFlags.NonPublic)); method = Assemblies.a["Assembly-CSharp"].GetClass("ModerationManager").GetMethod("WarnUserRPC"); IL2Ch.Patch(method, typeof(patch_AntiKick).GetMethod("patch_method_5", BindingFlags.Static | BindingFlags.NonPublic)); } catch { ConSole.Error("Patch: AntiKick [6]"); iError++; } // Debug if (iError == 0) { ConSole.Success("Patch: AntiKick"); } else { ConSole.Error("Patch: AntiKick"); } }