From 53f6fb50b414362c4682d33b50525710fb5901a5 Mon Sep 17 00:00:00 2001 From: ruri Date: Wed, 11 Mar 2020 03:58:40 +0100 Subject: [PATCH] Switched back to CloudflareSolverRe with fixed multithreading --- CloudflareSolverRe.Captcha.dll | Bin 0 -> 7680 bytes CloudflareSolverRe.dll | Bin 0 -> 81408 bytes RuriLib/Blocks/BlockBypassCF.cs | 183 ++++++++++++++++++++------------ 3 files changed, 115 insertions(+), 68 deletions(-) create mode 100644 CloudflareSolverRe.Captcha.dll create mode 100644 CloudflareSolverRe.dll diff --git a/CloudflareSolverRe.Captcha.dll b/CloudflareSolverRe.Captcha.dll new file mode 100644 index 0000000000000000000000000000000000000000..ae5bd465fc820692d436fa77b1690f11c619a97f GIT binary patch literal 7680 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 EKb9UyL;wH) literal 0 HcmV?d00001 diff --git a/CloudflareSolverRe.dll b/CloudflareSolverRe.dll new file mode 100644 index 0000000000000000000000000000000000000000..ee41a91a2e1e131ea8fa749b171ab1529d13fd6a GIT binary patch literal 81408 zcmcG%2b`4E)jxjk^UTc7&K7pIvy|=2Y@sPqtV@-qf^CFOEFxe*BNie` zBA^m`3)UC|7HpXKCdB9)L^k#mqlrm0G5G&}&%MvgGs|M~etw_->YRJdx#ymH?>Xm| z=RSqwPP$&XN~r*T-+ZIglSuj3D)8GuC$jS^pUzj?vR|)$Qcr!odgi%{+N&;Xi=WfB z@cgPX7G7{cd}-C`XH~T=yP#^(1y$otm{E0p{LHfk<>f`{tmloX*JX1{WobW>-A` z-RMG8ISCrUjiXbM*s17QBosdx2^8mKwFF15Vdr95;KT<*Bsbi0v`1s~Mohs_d=3SM zvIZ;c&zzUaRLzHbEh|IIOu3i?yTzq>rl)NtkHvg>Yt*>3ZrWz z)20T;4a7zPZF4UV`$PR<%l0FXQQyg&SO7MX7EmbweEI~FKoUz~AQVhK#UyqNYD+#wv?RHWNrHrNE#eKXCCv#T(nK3kcZ9lY ztnTeBT3X=p0qZ9!LrKF8g=wq8{bF3fHc1$`lSM6pwH~DKOM&YlBmLz}4BtgO` zgr}g8w5O2z;8~SNea%+iUKTTo-XU6&+`}Y6!YG0}pop|lRO7_ZDg;zp`L*b_t}kta z)(f}Pm$gl2+6nsvn!aU$sDjHev7MKm_Yr{J%ndvE=jnX5b&zfAhsZ7c&I9t`M=D}n`SbOPXIrDEP$PA z{R;=p;Vm3!z(E%dDdQwWd?HnOy3pAOSK(&NMwp69?Tp3o~3Ks>U0Z%;6jJ9Jajup}CRNE{vu&v_~SQLx~J#oosyNbC3 zDc+>|z;*~rI*7Kzu#L1`%lu|wFhaX(`#wll4ClrXbdlJJ0PQmXa;@Kn01wA!0_Lgg z_$;JFf#$MkAYK7RvK*P(e{zHj-W;%H;E8s9oU($4wnh) z2rxBuU~ICEZ=?U#-H)~(W$P$qSvQI8BI_t*5=<5`K^@rCAPpu< zn3}o@h?XRKF-edxbrncmq%-S+zoPA9Y+VCb$W3C2VqLXNg2_52s0)jW)YZV$)P-Tm zx~iBYNSL~!QWxoTU9=s7EZRQa)-{BM+++)rKyo0HU=ow9)P>p0s{?BV>u6$nCR&o5#Uw$( z=!2D^kF;N38}wmHiDDq`FTv#OV3EZ(FNCQ-yd3juAkvI!B?fbZFu{kHV_E>K2&^N) zl4(4&92X7&Z13D;OhyY9xxm1JP+|bm7=nm1ICgP4S)mwQ)Lay7R?#5lGLBEwt@@$< zUOI;5E(9&5YcaJr`%4LBgD7*wfpWe7OSy_3<*?=`tmRR(w6ObvI<`U{zIF&l>N}Ye!#vS!^@o<9lPP;jT9!FR zRx0-V;HpDWFM1JGa-4$TO|VbKGUhBG#iEfcOUhr~em>h_WiJ4(K!}tOO>a6ejD*m@ zthO%nyV*+0X+Yb1;27aF9gEX(!yR`Sb`nku@f~W~>J~GWLM{DGJ+53wA6j6_y7s!5 zj-wr2bqx9gcSlv#$s32}M?zJNvu53OQtU!#whg@q=-h4@(rB9@eVgF4WIL{0%{K>J zY|th0G0IHj8=oP1%pdkboDZF#%!Dm&adWioBXls(rX6)*Q2LeROzB{~=KSekZ-53P z4J8|yc3>O@_Lp$RQecmz;Y)gH4+d5(Nc4A9}Q6XWtC3Z1XwOEZ0(R{ZW}#~%ysilX2BtF8S3$O>dRNx1cYzq1EWL$Zwz_CYw)zU~MPx+P z^5LnTMx2o8Y?GVOSr`DtZQh{FJY%l5!@;!zM`sAM9S^eXS}eo3Hg{sMU`Q^NoEU5y ziaiamD2^^h*3N>+me{4V?ui6f`fJTpnjD2TJKv@)c{n9(i+c1Orq@+o3!DTMN@JV^ zOD>svGQ4pTn(ldnR-zZMSusWz1dJm+h9F=Z
    S<7kf|2pE_vj1EEiJI4E``x_Kn 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.Key, header.Value.First()); + data.ResponseHeaders.Add(h.Key, h.Value); + if (PrintResponseInfo) data.Log(new LogEntry($"{h.Key}: {h.Value}", Colors.LightPink)); } - if (!response.ContainsHeader(HttpHeader.ContentLength)) + + // Add the Content-Length header if it was not sent by the server + if (!data.ResponseHeaders.ContainsKey("Content-Length")) { if (data.ResponseHeaders.ContainsKey("Content-Encoding") && data.ResponseHeaders["Content-Encoding"].Contains("gzip")) { @@ -210,13 +256,13 @@ namespace RuriLib // Get cookies if (PrintResponseInfo) data.Log(new LogEntry("Received cookies:", Colors.Goldenrod)); - foreach (Cookie cookie in response.Cookies.GetCookies(localUrl)) + foreach (Cookie cookie in cookies.GetCookies(uri)) { - if (data.Cookies.ContainsKey(cookie.Name)) data.Cookies[cookie.Name] = cookie.Value; - else data.Cookies.Add(cookie.Name, cookie.Value); + data.Cookies[cookie.Name] = cookie.Value; if (PrintResponseInfo) data.Log(new LogEntry($"{cookie.Name}: {cookie.Value}", Colors.LightGoldenrodYellow)); } + // Print source data.ResponseSource = responseString; if (PrintResponseInfo) { @@ -224,7 +270,8 @@ namespace RuriLib data.Log(new LogEntry(data.ResponseSource, Colors.GreenYellow)); } - if (ErrorOn302 && data.ResponseCode.Contains("302")) + // Error on 302 status + if (ErrorOn302 && response.StatusCode == HttpStatusCode.Redirect) { data.Status = BotStatus.ERROR; }