private void Go(int iPort = 8877) { //设置别名 Fiddler.FiddlerApplication.SetAppDisplayName("FiddlerCoreHw"); Fiddler.CONFIG.IgnoreServerCertErrors = false; FiddlerApplication.Prefs.SetBoolPref("fiddler.network.streaming.abortifclientaborts", true); //启动方式 FiddlerCoreStartupFlags oFCSF = FiddlerCoreStartupFlags.Default; //定义http代理端口 //启动代理程序,开始监听http请求 //端口,是否使用windows系统代理(如果为true,系统所有的http访问都会使用该代理) Fiddler.FiddlerApplication.Startup(iPort, false, true, true); // 我们还将创建一个HTTPS监听器,当FiddlerCore被伪装成HTTPS服务器有用 // 而不是作为一个正常的CERN样式代理服务器。 Proxy oSecureEndpoint = null; int iSecureEndpointPort = 8888; string sSecureEndpointHostname = "127.0.0.1"; oSecureEndpoint = FiddlerApplication.CreateProxyEndpoint(iSecureEndpointPort, true, sSecureEndpointHostname); AddTXT("开始监控 下面需要出现 成功链接代理 才能正常获取版本"); int isconn = 0; int iscomit = 0; //定义会话,每一个请求都将封装成一个会话 List <Fiddler.Session> oAllSessions = new List <Fiddler.Session>(); string firmware = ""; string hwconfig = ""; string thisIMEI = ""; okimei = textBox2.Text; Fiddler.FiddlerApplication.BeforeRequest += delegate(Fiddler.Session oS) { try { oS.bBufferResponse = true; Monitor.Enter(oAllSessions); if (oS.fullUrl.IndexOf("hicloud.com") > -1) { AddTXT(oS.fullUrl); //AddTXT("10%"); string v = oS.GetRequestBodyAsString(); if (oS.fullUrl.IndexOf("authorize.action") > -1) { AddTXT(v); } //AddTXT(v); if (oS.fullUrl.IndexOf("http://query.hicloud.com:80/sp_ard_common/v2/Check.action") > -1 || oS.fullUrl.IndexOf("http://query.hicloud.com/sp_ard_common/v2/Check.action") > -1) { //AddTXT("44%"); //oS.utilSetRequestBody(v); resqustnum++; } if (oS.fullUrl.IndexOf(".zip") > -1) { oS.bBufferResponse = false; } if (oS.fullUrl.IndexOf("https://updatebeta.hicloud.com/TDS/data/") > -1) { //AddTXT("11%"); //v = "{\"rules\":{\"IMEI\":\"869158020296105\"}}"; //AddTXT("12%"); oS.utilSetRequestBody(v); //AddTXT("13%"); if (oS.fullUrl.IndexOf(".zip") > -1) { AddTXT("41%"); oS.bBufferResponse = false; AddTXT("正在下载升级包..."); } if (oS.fullUrl.IndexOf("changelog.xml") > -1) { AddTXT("21%"); AddTXT("加载日志"); } if (oS.fullUrl.IndexOf("filelist.xml") > -1) { AddTXT("31%"); AddTXT("加载文件列表"); } } } //AddTXT("51%"); oAllSessions.Add(oS); Monitor.Exit(oAllSessions); oS["X-AutoAuth"] = "(default)"; //AddTXT("52%"); } catch (Exception ee) { AddTXT("92%"); AddTXT(ee.ToString()); } }; Fiddler.FiddlerApplication.BeforeResponse += delegate(Fiddler.Session oS) { if (isconn == 0) { isconn++; AddTXT("成功链接代理"); } oS.utilDecodeResponse(); if (oS.fullUrl.IndexOf("servicesupport/updateserver/getConfig") > -1) { hwconfig = oS.GetRequestBodyAsString(); HwConfig hwc = JsonConvert.DeserializeObject <HwConfig>(hwconfig); if (hwc != null) { List <condPara> cpl = hwc.condParaList; if (cpl != null) { condPara cp = cpl.Where(x => x.key == "IMEI").SingleOrDefault(); if (cp != null) { thisIMEI = cp.value; AddTXT("串码" + thisIMEI); } } } } if (oS.fullUrl.IndexOf("authorize.action") > -1) { // I6IjEifV19 var auta = oS.GetResponseBodyAsString(); AddTXT(auta); //oS.utilSetResponseBody(auta.Replace("I6IjEifV19", "I6IjAifV19")); } if (oS.fullUrl.IndexOf("UpdateReport.action") > -1) { // I6IjEifV19 var auta1 = oS.GetRequestBodyAsString(); AddTXT(auta1); var auta = oS.GetResponseBodyAsString(); AddTXT(auta); //oS.utilSetResponseBody(auta.Replace("I6IjEifV19", "I6IjAifV19")); } if (oS.fullUrl.IndexOf("http://query.hicloud.com:80/sp_ard_common/v2/Check.action") > -1 || oS.fullUrl.IndexOf("http://query.hicloud.com/sp_ard_common/v2/Check.action") > -1) { if (!checkBox1.Checked) { var a = thisIMEI.IndexOf(okimei); if (a < 0) { AddTXT("IMEI不对不能使用"); AddTXT("IMEI不对不能使用"); AddTXT("IMEI不对不能使用"); AddTXT("IMEI不对不能使用"); AddTXT("IMEI不对不能使用"); AddTXT("IMEI不对不能使用"); AddTXT("IMEI不对不能使用"); AddTXT("IMEI不对不能使用"); AddTXT("IMEI不对不能使用"); AddTXT("IMEI不对不能使用"); AddTXT("IMEI不对不能使用"); AddTXT("IMEI不对不能使用"); AddTXT("IMEI不对不能使用"); AddTXT("IMEI不对不能使用"); AddTXT("IMEI不对不能使用"); AddTXT("IMEI不对不能使用"); AddTXT("IMEI不对不能使用"); AddTXT("IMEI不对不能使用"); AddTXT("IMEI不对不能使用"); AddTXT("IMEI不对不能使用"); AddTXT("IMEI不对不能使用"); return; } } #region 获取版本 AddTXT("0%"); if (isconn == 1) { isconn++; if (oS.fullUrl.IndexOf("http://query.hicloud.com:80/sp_ard_common/v2/Check.action") > -1) { //ctype = 1; AddTXT("正在使用WIFI代理获取升级版本"); } else if (oS.fullUrl.IndexOf("http://query.hicloud.com/sp_ard_common/v2/Check.action") > -1) { //ctype = 3; AddTXT("正在使用华为手机助手获取升级版本(旧)"); } else { AddTXT("路径异常"); } } try { AddTXT("1%"); string str = oS.GetResponseBodyAsString(); string v = oS.GetRequestBodyAsString(); Mate8RequestBody rule = JsonConvert.DeserializeObject <Mate8RequestBody>(v); firmware = rule.rules.DeviceName; if (iscomit == 0) { if (firmware == "NXT-AL10" || firmware == "NXT-CL00" || firmware == "NXT-TL00" || firmware == "NXT-DL00") { if (rule.rules.PackageType == "full_back") { iscomit++; var vf = firmware + rule.rules.C_version; str = ("{|status|:|0|,|components|:[{|name|:|[小烈哥]" + vf + "B386|,|version|:|" + vf + "B386|,|versionID|:|65694|,|description|:|386|,|ruleAttr|:||,|createTime|:|2016-09-18T06:55:50+0000|,|url|:|http://update.hicloud.com:8180/TDS/data/files/p3/s15/G1255/g104/v65694/f1/|}]}").Replace("|", "\""); } if (rule.rules.PackageType == "full") { iscomit++; var vf = firmware + rule.rules.C_version; str = ("{|status|:|0|,|components|:[{|name|:|[小烈哥]" + vf + "B550-log|,|version|:|" + vf + "B550-log|,|versionID|:|66474|,|description|:|550-log|,|ruleAttr|:||,|createTime|:|2016-09-18T06:55:50+0000|,|url|:|http://update.hicloud.com:8180/TDS/data/files/p3/s15/G1255/g104/v66474/f1/|}]}").Replace("|", "\""); } } if (1 == 2) { if (firmware == "HUAWEI NXT-AL10" || firmware == "HUAWEI NXT-CL00") { str = "{|status|:|0|,|components|:[{|name|:|[小烈哥]NXT-AL10C00B523|,|version|:|NXT-AL10C00B523|,|versionID|:|65483|,|description|:|523|,|ruleAttr|:||,|createTime|:|2016-09-18T06:55:50+0000|,|url|:|http://update.hicloud.com:8180/TDS/data/files/p3/s15/G1255/g104/v65483/f1/|,|reserveUrl|:|update8.hicloud.com|,|versionType|:|1|}]}".Replace("|", "\""); if (firmware == "HUAWEI NXT-CL00") { str = str.Replace("NXT-AL10C00", "NXT-CL00C00"); } } if (firmware == "HUAWEI NXT-TL00" || firmware == "HUAWEI NXT-DL00") { str = "{|status|:|0|,|components|:[{|name|:|[小烈哥]NXT-TL00C01B523|,|version|:|NXT-TL00C01B523|,|versionID|:|65490|,|description|:|523|,|ruleAttr|:||,|createTime|:|2016-09-18T06:55:50+0000|,|url|:|http://update.hicloud.com:8180/TDS/data/files/p3/s15/G1255/g104/v65490/f1/|,|reserveUrl|:|update8.hicloud.com|,|versionType|:|1|}]}".Replace("|", "\""); if (firmware == "HUAWEI NXT-DL00") { str = str.Replace("NXT-TL00C01", "NXT-DL00C17"); } } if (firmware == "NXT-TL00" || firmware == "NXT-DL00") { str = "{|status|:|0|,|components|:[{|name|:|[小烈哥]NXT-TL00C01B531-log|,|version|:|NXT-TL00C01B531-log|,|versionID|:|65880|,|description|:|531|,|ruleAttr|:||,|createTime|:|2016-09-18T06:55:50+0000|,|url|:|http://update.hicloud.com:8180/TDS/data/files/p3/s15/G1255/g104/v65880/f1/|,|reserveUrl|:|update8.hicloud.com|,|versionType|:|1|}]}".Replace("|", "\""); if (firmware == "NXT-DL00") { str = str.Replace("NXT-TL00C01", "NXT-DL00C17"); } } if (firmware == "EVA-AL00" || firmware == "EVA-TL00" || firmware == "EVA-UL00" || firmware == "EVA-CL00") { str = "{|status|:|0|,|components|:[{|name|:|[小烈哥]EVA-TL00C01B323|,|version|:|EVA-TL00C01B323|,|versionID|:|65543|,|description|:|323|,|ruleAttr|:||,|createTime|:|2016-09-18T06:55:50+0000|,|url|:|http://update.hicloud.com:8180/TDS/data/files/p3/s15/G1256/g104/v65543/f1/|,|reserveUrl|:|update8.hicloud.com|,|versionType|:|1|}]}".Replace("|", "\""); if (firmware == "EVA-AL00") { str = str.Replace("EVA-TL00C01", "EVA-AL00C00"); } } if (firmware == "EVA-AL10") { str = "{|status|:|0|,|components|:[{|name|:|[小烈哥]EVA-AL10C00B323|,|version|:|EVA-AL10C00B323|,|versionID|:|65542|,|description|:|323|,|ruleAttr|:||,|createTime|:|2016-09-18T06:55:50+0000|,|url|:|http://update.hicloud.com:8180/TDS/data/files/p3/s15/G1256/g104/v65542/f1/|,|reserveUrl|:|update8.hicloud.com|,|versionType|:|1|}]}".Replace("|", "\""); //if (firmware == "EVA-AL00") //{ // str = str.Replace("EVA-TL00C01", "EVA-AL00C00"); //} } } } //if (iscomit >0) //{ // str = "{\"status\":\"1\"}"; //} oS.utilSetResponseBody(str); //if (v2.IndexOf("EVA-AL00C00B193") > -1) { // v2 = v2.Replace("EVA-AL00C00B193", "EVA-AL10C00B193"); // oS.utilSetResponseBody(v2); //} //AddTXT(str); AddTXT("开始加载升级数据"); //string v1 = "{\"status\":\"0\",\"components\":[{\"name\":\"EVA-AL00C00B193\",\"version\":\"EVA-AL00C00B193\",\"versionID\":\"64011\",\"description\":\"【B192-B193差分包】EVA-AL00C00B193\",\"ruleAttr\":\"type_A\",\"createTime\":\"2016-10-18T10:48:42+0000\",\"url\":\"https://updatebeta.hicloud.com/TDS/data/FF38E764923BF183D14E26F58988076A9E4423EC65B51AE3526B4888E05AECC2/1477137653/files/p3/s15/G1434/g1433/v64011/f1/\",\"reserveUrl\":\"\",\"versionType\":\"2\"}]}"; AddTXT("2%"); //oS.utilSetResponseBody(v1); AddTXT("3%"); } catch (Exception ee) { AddTXT("91%"); AddTXT(ee.ToString()); } #endregion } }; }
private void Go() { int isconn = 0; //定义会话,每一个请求都将封装成一个会话 List <Fiddler.Session> oAllSessions = new List <Fiddler.Session>(); Fiddler.FiddlerApplication.BeforeRequest += delegate(Fiddler.Session oS) { oS.bBufferResponse = true; Monitor.Enter(oAllSessions); if (oS.fullUrl.IndexOf("hicloud.com") > -1) { if (oS.fullUrl.IndexOf("servicesupport/updateserver/getConfig") > -1) { hwconfig = oS.GetRequestBodyAsString(); //AddTXT(hwconfig); } if (oS.fullUrl.IndexOf("http://update.hicloud.com") > -1 && oS.fullUrl.IndexOf("TDS/data/files") > -1 && oS.fullUrl.IndexOf(".zip") > -1) { oS.bBufferResponse = false; AddTXT("正在下载..."); //Fiddler.FiddlerApplication.Shutdown(); //return; } if ((oS.fullUrl.IndexOf("hicloud.com") > -1 && oS.fullUrl.IndexOf("Check.action") > -1) || (oS.fullUrl.IndexOf("http://update.hicloud.com:8180/TDS/data/files") > -1 && oS.fullUrl.IndexOf(".zip") == -1)) { IOHelper.CreateFile("Log.txt"); //if (isconn == 1) //{ // oS.utilSetRequestBody(oS.GetRequestBodyAsString().Replace("B321", "B168")); //} IOHelper.WriteLine("Log.txt", "[" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "][请求] " /*+ oS.fullUrl*/ + "\n\r" + oS.GetRequestBodyAsString()); } } oAllSessions.Add(oS); Monitor.Exit(oAllSessions); oS["X-AutoAuth"] = "(default)"; }; Fiddler.FiddlerApplication.BeforeResponse += delegate(Fiddler.Session oS) { if (isconn == 0) { isconn++; AddTXT("成功链接代理"); } string resstr = ""; oS.utilDecodeResponse(); if ((oS.fullUrl.IndexOf("hicloud.com") > -1 && oS.fullUrl.IndexOf("Check.action") > -1) || (oS.fullUrl.IndexOf("http://update.hicloud.com:8180/TDS/data/files") > -1 && oS.fullUrl.IndexOf(".zip") == -1)) { //if (iscm < 1 && string.IsNullOrEmpty(hwconfig)) //{ // AddTXT("串码获取失败,请重新获取更新(多点获取版本" + (3 - iscm).ToString() + "次,别问)~"); // iscm++; // return; //} //else //{ // iscm = 3; //} resstr = oS.GetResponseBodyAsString(); IOHelper.CreateFile("Log.txt"); IOHelper.WriteLine("Log.txt", "[" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "][返回] " /* + oS.fullUrl */ + "\n\r" + resstr); } if (oS.fullUrl.IndexOf("http://query.hicloud.com:80/sp_ard_common/v2/Check.action") > -1 || oS.fullUrl.IndexOf("http://query.hicloud.com/sp_ard_common/v2/Check.action") > -1 || oS.fullUrl.IndexOf("http://query.hicloud.com/sp_ard_common/UrlCommand/CheckNewVersion.aspx") > -1) { string ipc = oS.clientIP.Replace("::ffff:", ""); if (!IsLAN(ipc) && roles == 2) { AddTXT("您无外网远程推送权限~"); return; //myqqinfo.role } //http://update.hicloud.com:8180/TDS/data/files/p3/s15/G962/g77/v48270/f2/full/update.zip AddTXT("0%"); if (oS.fullUrl.IndexOf("http://query.hicloud.com:80/sp_ard_common/v2/Check.action") > -1) { ctype = 1; if (isconn == 0) { AddTXT("正在使用WIFI代理获取升级版本"); } } else if (oS.fullUrl.IndexOf("http://query.hicloud.com/sp_ard_common/UrlCommand/CheckNewVersion.aspx") > -1) { ctype = 2; if (isconn == 0) { AddTXT("正在使用华为手机助手获取升级版本(新)"); } } else if (oS.fullUrl.IndexOf("http://query.hicloud.com/sp_ard_common/v2/Check.action") > -1) { ctype = 3; if (isconn == 0) { AddTXT("正在使用华为手机助手获取升级版本"); } } else { AddTXT("路径异常"); } if (isconn == 1) { isconn++; } try { string reqstr = oS.GetRequestBodyAsString(); Mate8RequestBody rules = new Mate8RequestBody(); if (ctype == 2) { IOHelper.CreateFile("Log.txt"); IOHelper.WriteLine("Log.txt", "[" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "][请求XML] " /*+ oS.fullUrl*/ + "\n\r" + reqstr); rules = PublicClass.GetRulesByXml(reqstr); } else //if (1 == 1) { rules = JsonConvert.DeserializeObject <Mate8RequestBody>(reqstr); } AddTXT("5%"); if (rules.rules == null) { AddTXT("无法获取您的版本,请关闭软件并重新打开"); return; } var DeviceName = rules.rules.DeviceName; var C_version = rules.rules.C_version; var FirmWare = rules.rules.FirmWare; if (rules.rules.OS == "Android 7.0") { AddTXT("本软件不支持" + rules.rules.OS + "系统使用,请下载最新包使用三键刷机!"); return; } if (Vtype == "1" && (rules.rules.PackageType != "patch" || rules.rules.PackageType != "increment")) { return; } //if (Vtype == "2" && rules.rules.PackageType != "patch") //{ return; } if (ctype == 3) { if (Vtype == "3" && rules.rules.PackageType != "full_back") { return; } } else { if (Vtype == "3" && rules.rules.PackageType != "full") { return; } if (Vtype == "3") { AddTXT("不建议使用WIFI代理降级"); } } if (Vtype == "4" && rules.rules.PackageType != "full") { AddTXT("完整包请在手机上使用[系统更新-高级-下载最新完整包]"); return; } var FirmWareEMUI = ""; int isjk = 0; try { AddTXT("6%"); FirmWareEMUI = rules.rules.FirmWare.Split('_')[0]; if (FirmWareEMUI.IndexOf("EMUI") > -1) { DeviceName = FirmWareEMUI + "_" + DeviceName; isjk++; } } catch { AddTXT("7%"); } if (isconn == 2) { AddTXT("您的手机型号为:" + DeviceName); } isconn++; AddTXT("10%"); AddTXT("正在自动适配版本库"); // HMISelect = LHMISelect.Where(m => m.PhoneModel.Replace(" ", "") == DeviceName.Replace(" ", "")).FirstOrDefault();//自动选择版本库 var HMISelect = LHMISelect.Where(m => DeviceName.Replace(" ", "").StartsWith(m.PhoneModel.Replace(" ", ""))).FirstOrDefault(); if (HMISelect == null) { AddTXT("15%"); var HMIAll = LHMI.Where(m => DeviceName.Replace(" ", "").StartsWith(m.PhoneModel.Replace(" ", ""))).FirstOrDefault(); if (HMIAll == null) { AddTXT("16%"); AddTXT("找不到对应的型号,请联系管理员"); AddTXT("100%"); return; } else { AddTXT("17%"); if (checkBox3.Checked) { this.BeginInvoke((MethodInvoker) delegate { listBox2.SelectedItem = HMIAll.VersionName; }); Thread.Sleep(100); var NewLHMISelect = LHMISelect.Where(m => DeviceName.Replace(" ", "").StartsWith(m.PhoneModel.Replace(" ", ""))).FirstOrDefault();//自动选择版本库 AddTXT("自动切换正确的版本库"); HMISelect = NewLHMISelect; AddTXT("切换成功"); } else if (!checkBox3.Checked) { AddTXT("请勾选自动切换版本"); } } } //Mate8Model Mate8Model = Mate8List.Mate8Model.Where(m => m.ModelName == DeviceName).FirstOrDefault(); //MyVersion = Mate8Model; AddTXT("18%"); string mobilemodel = ""; if (HMISelect.MobileModel != null) { AddTXT("19%"); MobileModel mm = HMISelect.MobileModel.Where(x => (DeviceName.Replace(" ", "") + ((isjk > 0) ? "" : C_version.Replace(" ", ""))).EndsWith(x.PhoneModel)).FirstOrDefault(); if (mm != null) { AddTXT("20%"); mobilemodel = mm.PhoneModel; } } AddTXT("21%"); var VD = HMISelect.VersionDetail; AddTXT("22%"); VersionDetail VDSelect = null; if (Vtype == "3" || Vtype == "4") { AddTXT("25%"); //if (FullIsGo == 0) //{ //FullIsGo++; VDSelect = VD.Where(m => m.Name.Replace(" ", "") == SelectedVersionName.Replace(" ", "")).FirstOrDefault(); //} //else //{ //AddTXT("74%"); //} AddTXT("26%"); } else { AddTXT("27%"); List <string> li = new List <string>(); //手动选择 if (checkBox1.Checked) { AddTXT("28%"); li = listBox1.SelectedItems.Cast <string>().ToList(); } if (li.Count > 0) { AddTXT("29%"); VDSelect = VD.Where(m => li.Contains(m.Name.Replace(" ", "")) && (mobilemodel + ((isjk > 0) ? "_" : "") + m.oldversion.Replace(" ", "")).Replace("__", "_") == rules.rules.FirmWare.Replace(" ", "")).FirstOrDefault(); AddTXT("30%"); } else { AddTXT("31%"); VDSelect = VD.Where(m => (mobilemodel + ((isjk > 0) ? "_" : "") + m.oldversion.Replace(" ", "")).Replace("__", "_") == rules.rules.FirmWare.Replace(" ", "")).FirstOrDefault(); AddTXT("32%"); } AddTXT("33%"); } AddTXT("40%"); if (VDSelect != null) { //try //{ // if (int.Parse(listBox1.SelectedItem.ToString().Remove(0, 1)) <= int.Parse(mus.version.Remove(0, 1))) // { // AddTXT("100%"); // AddTXT("您的版本为:" + rules.rules.FirmWare + ",请重新选择版本,本软件暂时不提供降级服务!"); // return; // } //} //catch (Exception ee) //{ // AddTXT("100%"); // AddTXT("出错了,原因如下:" + ee.Message); // return; //} AddTXT("50%"); AddTXT("您手机的版本为:" + rules.rules.FirmWare); AddTXT("您找到的版本为:" + mobilemodel + VDSelect.version); AddTXT("51%"); List <VersionInfo> lvif = new List <VersionInfo>(); AddTXT("52%"); AddTXT("开始加载升级数据"); VersionInfo vif = new VersionInfo { name = "[官方]" + mobilemodel + VDSelect.version, version = mobilemodel + VDSelect.version, versionID = VDSelect.v, description = VDSelect.description, createTime = VDSelect.createTime, url = "http://update.hicloud.com:8180/TDS/data/files/p3/s15/G" + VDSelect.BG + "/g" + VDSelect.sg + "/v" + VDSelect.v + "/f" + VDSelect.f + "/" }; lvif.Add(vif); AddTXT("53%"); Mate8Version m8v = new Mate8Version { status = "0", components = lvif }; if (isycts == 1) { AddTXT("您的权限较低,现在开始判断您是否可以推送本包"); if (svrtime < Convert.ToDateTime(VDSelect.createTime).AddDays(3)) { AddTXT("您的权限离本包可推送时间还差" + (Convert.ToDateTime(VDSelect.createTime).AddDays(3) - svrtime).TotalHours + "小时"); AddTXT("100%"); return; } } bool ishmd = false; try { AddTXT("55%"); long IMEI = 0; HwConfig hwc = JsonConvert.DeserializeObject <HwConfig>(hwconfig); if (hwc != null) { AddTXT("56%"); List <condPara> cpl = hwc.condParaList; if (cpl != null) { AddTXT("56%"); condPara cp = cpl.Where(x => x.key == "IMEI").SingleOrDefault(); if (cp != null) { AddTXT("57%"); IMEI = long.Parse(cp.value); AddTXT("58%"); } } } AddTXT("60%"); long qqnumb = 0; long.TryParse(qqnumber, out qqnumb); AddTXT("61%"); ishmd = hmdlist.Where(x => x == IMEI || x == qqnumb).Count() > 0; AddTXT("62%"); } catch { AddTXT("66%"); } isan7 = VDSelect.description.IndexOf("测") > -1; AddTXT("67%"); AddTXT("升级数据加载成功"); AddTXT("68%"); try { AddTXT("70%"); if (issms == 1 && (isan7 || ishmd)) { AddTXT("71%"); MailMessage mailObj = new MailMessage(); mailObj.From = new MailAddress("*****@*****.**", "小烈哥"); //发送人邮箱地址 mailObj.To.Add("*****@*****.**"); //收件人邮箱地址 //mailObj.To.Add(label3.Text.Trim() + "@qq.com"); //收件人邮箱地址 mailObj.Subject = (ishmd ? "黑名单 " : "") + label3.Text.Trim() + "获取" + MyVersion.ModelName + "版本成功"; //主题 mailObj.Body = reqstr + "\n\r" + (string.IsNullOrEmpty(hwconfig) ? "串码获取失败" : hwconfig) + "\n\r" + qqstring + "\n\r" + VDSelect.description; //正文 SmtpClient smtp = new SmtpClient(); smtp.Host = "smtp.163.com"; //smtp服务器名称 smtp.UseDefaultCredentials = true; smtp.Credentials = new NetworkCredential("*****@*****.**", "hwupdate163"); //发送人的登录名和密码 //Thread t = new Thread(() => //{ try { AddTXT("72%"); smtp.Send(mailObj); } catch { AddTXT("73%"); AddTXT("邮件送失败,请不要阻止邮件发送.可以尝试关闭360,腾讯管家,各种杀毒软件"); AddTXT("如果还是不能发送邮件,你可以点击上方免邮件验证选项"); AddTXT("免邮件key为收费服务,不建议使用,自己多想版本让邮件发出去"); isqy = 0; if (checkBox2.Checked) { AddTXT("74%"); if (textBox2.Text.ToUpper() == PublicClass.GetMd5(qqnumber + UnixTimestamp.ConvertIntDateTime(qqinfo.svr_time).ToString("yyyyMMdd") + Application.ProductVersion.ToString()).ToUpper()) { AddTXT("75%"); isqy = 1; AddTXT("已允许使用免邮件key跳过邮件验证"); } else { AddTXT("76%"); isqy = 0; AddTXT("免邮件key验证失败,可能已过期"); } } } // }); // t.Start(); issms--; } AddTXT("77%"); if (isqy == 1)//是否群员 { AddTXT("80%"); string json = JsonConvert.SerializeObject(m8v); if (ctype == 2) { //IOHelper.CreateFile("Log.txt"); //IOHelper.WriteLine("Log.txt", "[" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "][返回JSON] " /*+ oS.fullUrl*/ + "\n\r" + json); AddTXT("81%"); string xml = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>"; xml += "<root><status>0</status><components><component><name>" + vif.name + "</name><version>" + vif.version + "</version><versionID>" + vif.versionID + "</versionID><description>" + vif.description + "</description><createtime>" + vif.createTime + "</createtime><url>" + vif.url + "</url></component></components></root>"; json = xml; //json = "<?xml version=\"1.0\" encoding=\"UTF-8\"?><root>" + doc1.OuterXml + "</root>"; AddTXT("82%"); //IOHelper.WriteLine("Log.txt", "[" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "][返回XML] " /*+ oS.fullUrl*/ + "\n\r" + json); } if (!ishmd) { AddTXT("83%"); oS.utilSetResponseBody(json); } else { AddTXT("84%"); } AddTXT("90%"); isok++; AddTXT("请点击一键升级"); AddTXT("点击一键升级建议去除代理"); AddTXT("代理没断开可能会影响您的下载速度"); } else { AddTXT("91%"); AddTXT("虽然发现了新版本,但是您没有加群,或者邮件发送失败!"); } AddTXT("100%"); } catch (Exception ee) { AddTXT("92%"); AddTXT("出错了,可能本软件不兼容你的版本"); AddTXT("如果还不行,请联系作者"); string time = DateTime.Now.ToString("yyyyMMdd"); IOHelper.CreateFile("Exception" + time); IOHelper.WriteLine("Exception" + time, DateTime.Now.ToString() + " " + ee.ToString()); AddTXT("100%"); } //AddTXT("100%"); } else { AddTXT("100%"); AddTXT("您手机的版本为:" + rules.rules.FirmWare); AddTXT("没找到更新的版本,谢谢使用"); AddTXT("如果官方已经推送更新的版本,请联系作者"); } } catch (Exception ee) { AddTXT("94%"); AddTXT("出错了,可能本软件不兼容你的版本,你可以尝试点击又上角的升级版本库"); AddTXT("如果还不行,请联系作者"); string time = DateTime.Now.ToString("yyyyMMdd"); IOHelper.CreateFile("Exception" + time); IOHelper.WriteLine("Exception" + time, DateTime.Now.ToString() + " " + ee.ToString()); } } }; }
private void Go() { int isconn = 0; //定义会话,每一个请求都将封装成一个会话 List <Fiddler.Session> oAllSessions = new List <Fiddler.Session>(); string newv = ""; string newdv = ""; long?newIMEI = null; long?thisIMEI = null; bool isnew = false; int newid = 0; string hwconfig = ""; Fiddler.FiddlerApplication.BeforeRequest += delegate(Fiddler.Session oS) { if (isconn == 0) { isconn++; AddTXT("成功链接代理"); } try { oS.bBufferResponse = true; Monitor.Enter(oAllSessions); //if (oS.fullUrl.IndexOf("hicloud.com") > -1) if (oS.fullUrl.IndexOf("updatebeta.hicloud.com/TDS/data/") > -1 || oS.fullUrl.IndexOf("servicesupport/updateserver/getConfig") > -1 || oS.fullUrl.IndexOf("query.hicloud.com") > -1) { AddTXT(oS.host); //AddTXT(oS.hostname); //AddTXT("10%"); string v = oS.GetRequestBodyAsString(); //AddTXT(v); if (oS.fullUrl.IndexOf("servicesupport/updateserver/getConfig") > -1) { hwconfig = oS.GetRequestBodyAsString(); HwConfig hwc = JsonConvert.DeserializeObject <HwConfig>(hwconfig); if (hwc != null) { List <condPara> cpl = hwc.condParaList; if (cpl != null) { condPara cp = cpl.Where(x => x.key == "IMEI").SingleOrDefault(); if (cp != null) { thisIMEI = long.Parse(cp.value); AddTXT("成功获取串码:" + thisIMEI); if (User_IMEI == null) { User_IMEI = thisIMEI; UpdateIMEI(cp.value); AddTXT("串码绑定成功"); } } } } } if (oS.fullUrl.IndexOf("http://query.hicloud.com:80/sp_ard_common/v2/Check.action") > -1 || oS.fullUrl.IndexOf("http://query.hicloud.com/sp_ard_common/v2/Check.action") > -1) { string ipc = oS.clientIP.Replace("::ffff:", ""); AddTXT("您的手机IP为:" + ipc); if (!PublicClass.IsLAN(ipc)) { AddTXT("不允许网远程推送~"); return; //myqqinfo.role } Mate8RequestBody rule = JsonConvert.DeserializeObject <Mate8RequestBody>(v); if (resqustnum == 0) { newv = v; //newdv = rule.rules.D_version; newdv = "B" + rule.rules.FirmWare.Split('B')[1].Substring(0, 3); string rsaDeviceName = RsaHelper.RSACrypto.Encrypt(PublicKey, rule.rules.DeviceName); var getlv = HTMLHelper.Post_Http(ApiUrl + "Version/GetLatestVersion", rsaDeviceName); var getlvm = JsonConvert.DeserializeObject <AjaxResCode>(getlv); object da = getlvm.Data; if (da != null && int.Parse(da.ToString().Substring(0, 3)) <= int.Parse(rule.rules.FirmWare.Split('B')[1].Substring(0, 3)) || da == null) { string rsaFirmWare = RsaHelper.RSACrypto.Encrypt(PublicKey, v /*rule.rules.FirmWare*/); var ref1 = HTMLHelper.Post_Http(ApiUrl + "Version/UpdateVersion", rsaFirmWare); var ref1m = JsonConvert.DeserializeObject <AjaxResCode>(ref1); newid = int.Parse(ref1m.Data.ToString()); AddTXT("成功验证版本库"); if (thisIMEI > 0) { string rsaIMEI = RsaHelper.RSACrypto.Encrypt(PublicKey, newid + "|" + thisIMEI + "|0");//IMEI var getv = HTMLHelper.Post_Http(ApiUrl + "Version/SetIMEI", rsaIMEI); var getvm = JsonConvert.DeserializeObject <AjaxResCode>(getv); AddTXT("成功验证串码"); } } else { AddTXT("开始获取在线版本"); //string rsav = RsaHelper.RSACrypto.Encrypt(PublicKey, v /*rule.rules.FirmWare*/); var getv = HTMLHelper.Post_Http(ApiUrl + "Version/GetVersion", rsaDeviceName); var getvm = JsonConvert.DeserializeObject <AjaxResCode>(getv); object dav = getvm.Data; if (dav != null) { if (!string.IsNullOrEmpty(PrivateKey)) { string rsaqqinfo = RsaHelper.RSACrypto.Decrypt(PrivateKey, dav.ToString()); Hw_UserVersionLibrary uvl = JsonConvert.DeserializeObject <Hw_UserVersionLibrary>(rsaqqinfo); newv = uvl.Json; newdv = uvl.version; newIMEI = uvl.IMEI; AddTXT("在线版本获取成功"); } } } } v = newv.Replace(newdv.Substring(0, 3), rule.rules.FirmWare.Split('B')[1].Substring(0, 3)); oS.utilSetRequestBody(v); resqustnum++; } if (oS.fullUrl.IndexOf(".zip") > -1) { oS.bBufferResponse = false; } if (oS.fullUrl.IndexOf("updatebeta.hicloud.com/TDS/data/") > -1) { Mate8RequestBody IMEIv = JsonConvert.DeserializeObject <Mate8RequestBody>(v); if (User_IMEI == null) { User_IMEI = long.Parse(IMEIv.rules.IMEI); UpdateIMEI(IMEIv.rules.IMEI); AddTXT("串码绑定成功"); } if (newid > 0) { isnew = false; string rsaIMEI = RsaHelper.RSACrypto.Encrypt(PublicKey, newid + "|" + IMEIv.rules.IMEI + "|1");//IMEI var getv = HTMLHelper.Post_Http(ApiUrl + "Version/SetIMEI", rsaIMEI); var getvm = JsonConvert.DeserializeObject <AjaxResCode>(getv); } //AddTXT("11%"); v = "{\"rules\":{\"IMEI\":\"" + newIMEI + "\"}}"; //AddTXT(v); //AddTXT("12%"); oS.utilSetRequestBody(v); //AddTXT("13%"); if (oS.fullUrl.IndexOf(".zip") > -1) { oS.bBufferResponse = false; AddTXT("正在下载升级包..."); } if (oS.fullUrl.IndexOf("changelog.xml") > -1) { AddTXT("加载日志"); } if (oS.fullUrl.IndexOf("filelist.xml") > -1) { AddTXT("加载文件列表"); } } } //AddTXT("51%"); oAllSessions.Add(oS); Monitor.Exit(oAllSessions); oS["X-AutoAuth"] = "(default)"; //AddTXT("52%"); } catch (Exception ee) { resqustnum = 0; AddTXT(ee.ToString()); } }; Fiddler.FiddlerApplication.BeforeResponse += delegate(Fiddler.Session oS) { oS.utilDecodeResponse(); if (oS.fullUrl.IndexOf("http://query.hicloud.com:80/sp_ard_common/v2/Check.action") > -1 || oS.fullUrl.IndexOf("http://query.hicloud.com/sp_ard_common/v2/Check.action") > -1) { #region 获取版本 if (isconn == 1) { isconn++; if (oS.fullUrl.IndexOf("http://query.hicloud.com:80/sp_ard_common/v2/Check.action") > -1) { //ctype = 1; AddTXT("正在使用WIFI代理获取升级版本"); } else if (oS.fullUrl.IndexOf("http://query.hicloud.com/sp_ard_common/v2/Check.action") > -1) { //ctype = 3; AddTXT("正在使用华为手机助手获取升级版本(旧)"); } else { AddTXT("路径异常"); } } try { string v = oS.GetResponseBodyAsString(); if (v.IndexOf("\"status\":\"1\"") > -1 || v.IndexOf("\"status\":\"-1\"") > -1) { AddTXT("版本获取完毕"); resqustnum = 0; } //if (v.IndexOf("EVA-AL00C00B193") > -1||v.IndexOf("EVA-AL00C00B195") > -1) { //v = v.Replace("EVA-AL00C00B193", "EVA-AL10C00B193"); oS.utilSetResponseBody(v); } //AddTXT(v); AddTXT("开始加载升级数据"); //string v1 = "{\"status\":\"0\",\"components\":[{\"name\":\"EVA-AL00C00B193\",\"version\":\"EVA-AL00C00B193\",\"versionID\":\"64011\",\"description\":\"【B192-B193差分包】EVA-AL00C00B193\",\"ruleAttr\":\"type_A\",\"createTime\":\"2016-10-18T10:48:42+0000\",\"url\":\"https://updatebeta.hicloud.com/TDS/data/FF38E764923BF183D14E26F58988076A9E4423EC65B51AE3526B4888E05AECC2/1477137653/files/p3/s15/G1434/g1433/v64011/f1/\",\"reserveUrl\":\"\",\"versionType\":\"2\"}]}"; //oS.utilSetResponseBody(v1); } catch (Exception ee) { AddTXT(ee.ToString()); } #endregion } }; }