修复挂机检测弹窗拦截

This commit is contained in:
Muihd
2024-09-28 10:29:57 +08:00
parent 64bded736b
commit 4f5f1e1d7d
+10 -5
View File
@@ -474,6 +474,7 @@ namespace BarrageGrab.Proxy
var processid = e.HttpClient.ProcessId.Value; var processid = e.HttpClient.ProcessId.Value;
var processName = base.GetProcessName(processid); var processName = base.GetProcessName(processid);
var contentType = e.HttpClient.Response.ContentType ?? ""; var contentType = e.HttpClient.Response.ContentType ?? "";
var fileName = Path.GetFileName(urlNoQuery);
if (contentType == null) return; if (contentType == null) return;
if (!contentType.Trim().ToLower().Contains("application/javascript")) return; if (!contentType.Trim().ToLower().Contains("application/javascript")) return;
@@ -483,17 +484,15 @@ namespace BarrageGrab.Proxy
if (hostname == SCRIPT_HOST if (hostname == SCRIPT_HOST
//这俩个进程不需要注入 //这俩个进程不需要注入
&& processName != "直播伴侣" && processName != "douyin" && processName != "直播伴侣" && processName != "douyin"
&& fileName.StartsWith("island")
) )
{ {
var js = await e.GetResponseBodyAsString(); var js = await e.GetResponseBodyAsString();
//var reg2 = new Regex(@"if\(!N.DJ\(\)&&(?<variable>\S).current\)\{"); //版本1,已过时 var reg2 = new Regex(@"if\(!\((?<v1>\d,\w{1,2})\.DJ\)\(\)&&");
//if(!(0,k.DJ)()&amp;&amp;_.current){
var reg2 = new Regex(@"if\s*\(\s*\!\s*(?<v1>[\s\S]+\s*\.\s*DJ\s*\))\s*\(\s*\)\s*&\s*&\s*(?<v2>\S)\s*.\s*current\s*\)\s*\{");
var match = reg2.Match(js); var match = reg2.Match(js);
if (match.Success) if (match.Success)
{ {
js = reg2.Replace(js, "if(!${v1}()&&${v2}.current){return;"); js = reg2.Replace(js, "if(false &&");
e.SetResponseBodyString(js); e.SetResponseBodyString(js);
Logger.PrintColor($"已成功绕过JS页面无操作检测 {urlNoQuery}\n", ConsoleColor.Green); Logger.PrintColor($"已成功绕过JS页面无操作检测 {urlNoQuery}\n", ConsoleColor.Green);
} }
@@ -645,13 +644,19 @@ namespace BarrageGrab.Proxy
override public void Start() override public void Start()
{ {
proxyServer.Start(false); proxyServer.Start(false);
if (AppSetting.Current.UsedProxy) if (AppSetting.Current.UsedProxy)
{ {
base.RegisterSystemProxy(); base.RegisterSystemProxy();
Logger.LogInfo($"系统代理代理已启动,127.0.0.1:{base.ProxyPort}");
//使用其自带的系统代理设置可能会导致格式问题 //使用其自带的系统代理设置可能会导致格式问题
//proxyServer.SetAsSystemHttpProxy(explicitEndPoint); //proxyServer.SetAsSystemHttpProxy(explicitEndPoint);
//proxyServer.SetAsSystemHttpsProxy(explicitEndPoint); //proxyServer.SetAsSystemHttpsProxy(explicitEndPoint);
} }
else
{
Logger.LogInfo($"代理已启动(局域代理),127.0.0.1:{base.ProxyPort}");
}
} }
} }
} }