mirror of
https://github.com/huiyadanli/RevokeMsgPatcher.git
synced 2025-05-23 22:06:06 +08:00
[#] 完善了补丁更新机制
This commit is contained in:
parent
b1b339ac63
commit
8ae2607d7b
|
@ -5,6 +5,8 @@ VisualStudioVersion = 15.0.28010.2016
|
|||
MinimumVisualStudioVersion = 10.0.40219.1
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RevokeMsgPatcher", "RevokeMsgPatcher\RevokeMsgPatcher.csproj", "{977BF781-CED8-4389-9404-0FA08FDF21DF}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RevokeMsgPatcher.Assistant", "RevokeMsgPatcher.Assistant\RevokeMsgPatcher.Assistant.csproj", "{6992004F-17E6-45BF-8D72-180A31E9C23C}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|Any CPU = Debug|Any CPU
|
||||
|
@ -15,6 +17,10 @@ Global
|
|||
{977BF781-CED8-4389-9404-0FA08FDF21DF}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{977BF781-CED8-4389-9404-0FA08FDF21DF}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{977BF781-CED8-4389-9404-0FA08FDF21DF}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{6992004F-17E6-45BF-8D72-180A31E9C23C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{6992004F-17E6-45BF-8D72-180A31E9C23C}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{6992004F-17E6-45BF-8D72-180A31E9C23C}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{6992004F-17E6-45BF-8D72-180A31E9C23C}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
|
|
4
RevokeMsgPatcher/FormMain.Designer.cs
generated
4
RevokeMsgPatcher/FormMain.Designer.cs
generated
|
@ -116,9 +116,9 @@
|
|||
// lblUpdatePachJson
|
||||
//
|
||||
this.lblUpdatePachJson.Cursor = System.Windows.Forms.Cursors.Hand;
|
||||
this.lblUpdatePachJson.Location = new System.Drawing.Point(312, 89);
|
||||
this.lblUpdatePachJson.Location = new System.Drawing.Point(166, 89);
|
||||
this.lblUpdatePachJson.Name = "lblUpdatePachJson";
|
||||
this.lblUpdatePachJson.Size = new System.Drawing.Size(162, 12);
|
||||
this.lblUpdatePachJson.Size = new System.Drawing.Size(308, 12);
|
||||
this.lblUpdatePachJson.TabIndex = 9;
|
||||
this.lblUpdatePachJson.Text = "[ 获取最新补丁信息中... ]";
|
||||
this.lblUpdatePachJson.TextAlign = System.Drawing.ContentAlignment.TopRight;
|
||||
|
|
|
@ -6,21 +6,33 @@ using System.Collections.Generic;
|
|||
using System.IO;
|
||||
using System.Net;
|
||||
using System.Threading.Tasks;
|
||||
using System.Web.Script.Serialization;
|
||||
using System.Windows.Forms;
|
||||
|
||||
namespace RevokeMsgPatcher
|
||||
{
|
||||
public partial class FormMain : Form
|
||||
{
|
||||
AppModifier modifier = null;
|
||||
// 当前使用的修改者
|
||||
private AppModifier modifier = null;
|
||||
|
||||
private WechatModifier wechatModifier = null;
|
||||
private QQModifier qqModifier = null;
|
||||
private TIMModifier timModifier = null;
|
||||
|
||||
private string thisVersion;
|
||||
private bool needUpdate = false;
|
||||
|
||||
public void InitModifier()
|
||||
{
|
||||
Bag bag = new JsonData().Bag();
|
||||
// 从配置文件中读取配置
|
||||
JavaScriptSerializer serializer = new JavaScriptSerializer();
|
||||
Bag bag = serializer.Deserialize<Bag>(Properties.Resources.PatchJson);
|
||||
|
||||
WechatModifier wechatModifier = new WechatModifier(bag.Apps["Wechat"]);
|
||||
QQModifier qqModifier = new QQModifier(bag.Apps["QQ"]);
|
||||
TIMModifier timModifier = new TIMModifier(bag.Apps["TIM"]);
|
||||
// 初始化每个应用对应的修改者
|
||||
wechatModifier = new WechatModifier(bag.Apps["Wechat"]);
|
||||
qqModifier = new QQModifier(bag.Apps["QQ"]);
|
||||
timModifier = new TIMModifier(bag.Apps["TIM"]);
|
||||
|
||||
rbtWechat.Tag = wechatModifier;
|
||||
rbtQQ.Tag = qqModifier;
|
||||
|
@ -39,7 +51,8 @@ namespace RevokeMsgPatcher
|
|||
string currentVersion = System.Reflection.Assembly.GetExecutingAssembly().GetName().Version.ToString();
|
||||
if (currentVersion.Length > 3)
|
||||
{
|
||||
currentVersion = " v" + currentVersion.Substring(0, 3);
|
||||
thisVersion = currentVersion.Substring(0, 3);
|
||||
currentVersion = " v" + thisVersion;
|
||||
}
|
||||
this.Text += currentVersion;
|
||||
|
||||
|
@ -158,7 +171,25 @@ namespace RevokeMsgPatcher
|
|||
// 异步获取最新的补丁信息
|
||||
Task<string> t = new Task<string>(() =>
|
||||
{
|
||||
return new WebClient().DownloadString("https://huiyadanli.coding.me/i/patch.json");
|
||||
string downStr = null;
|
||||
WebClient wc = new WebClient();
|
||||
try
|
||||
{
|
||||
downStr = wc.DownloadString("https://huiyadanli.coding.me/i/revokemsg/05.json");
|
||||
}
|
||||
catch (Exception ex1)
|
||||
{
|
||||
Console.WriteLine(ex1.Message);
|
||||
try
|
||||
{
|
||||
downStr = wc.DownloadString("https://www.huiyadan.com/i/revokemsg/05.json");
|
||||
}
|
||||
catch (Exception ex2)
|
||||
{
|
||||
Console.WriteLine(ex2.Message);
|
||||
}
|
||||
}
|
||||
return downStr;
|
||||
});
|
||||
t.Start();
|
||||
string json = await t;
|
||||
|
@ -169,19 +200,51 @@ namespace RevokeMsgPatcher
|
|||
}
|
||||
else
|
||||
{
|
||||
//patcher.SetNewPatchJson(json);
|
||||
lblUpdatePachJson.Text = "[ 获取成功 ]";
|
||||
try
|
||||
{
|
||||
JavaScriptSerializer serializer = new JavaScriptSerializer();
|
||||
Bag bag = serializer.Deserialize<Bag>(json);
|
||||
|
||||
wechatModifier.Config = bag.Apps["Wechat"];
|
||||
qqModifier.Config = bag.Apps["QQ"];
|
||||
timModifier.Config = bag.Apps["TIM"];
|
||||
|
||||
if (Convert.ToDecimal(bag.LatestVersion) > Convert.ToDecimal(thisVersion))
|
||||
{
|
||||
needUpdate = true;
|
||||
lblUpdatePachJson.Text = $"[ 请到软件主页下载最新版本 {bag.LatestVersion} ]";
|
||||
}
|
||||
else
|
||||
{
|
||||
needUpdate = false;
|
||||
lblUpdatePachJson.Text = "[ 获取成功 ]";
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Console.WriteLine(ex.Message);
|
||||
lblUpdatePachJson.Text = "[ 更换新配置时异常 ]";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void lblUpdatePachJson_Click(object sender, EventArgs e)
|
||||
{
|
||||
string versions = "";
|
||||
//patcher.TargetFiles.ForEach(t =>
|
||||
//{
|
||||
// versions += t.Version + Environment.NewLine;
|
||||
//});
|
||||
MessageBox.Show("当前所支持的微信版本:" + Environment.NewLine + versions);
|
||||
string tips = "";
|
||||
if(needUpdate)
|
||||
{
|
||||
tips += "【当前存在最新版本,点击确定进入软件主页下载最新版本。】" + Environment.NewLine + Environment.NewLine;
|
||||
}
|
||||
tips += "支持以下版本" +Environment.NewLine;
|
||||
tips += " ➯ 微信:" + wechatModifier.Config.GetSupportVersionStr() + Environment.NewLine;
|
||||
tips += " ➯ QQ:" + qqModifier.Config.GetSupportVersionStr() + Environment.NewLine;
|
||||
tips += " ➯ TIM:" + timModifier.Config.GetSupportVersionStr() + Environment.NewLine;
|
||||
|
||||
DialogResult dr = MessageBox.Show(tips, "当前支持防撤回的版本", MessageBoxButtons.OKCancel);
|
||||
if (dr == DialogResult.OK && needUpdate)
|
||||
{
|
||||
System.Diagnostics.Process.Start("https://github.com/huiyadanli/RevokeMsgPatcher/releases");
|
||||
}
|
||||
}
|
||||
|
||||
private void radioButtons_CheckedChanged(object sender, EventArgs e)
|
||||
|
|
|
@ -1,192 +0,0 @@
|
|||
using RevokeMsgPatcher.Model;
|
||||
using System.Collections.Generic;
|
||||
using System.Web.Script.Serialization;
|
||||
|
||||
namespace RevokeMsgPatcher
|
||||
{
|
||||
|
||||
public class JsonData
|
||||
{
|
||||
|
||||
public Bag Bag()
|
||||
{
|
||||
return new Bag
|
||||
{
|
||||
Apps = AppConfig(),
|
||||
LatestVersion = "0.5",
|
||||
Notice = "公告"
|
||||
};
|
||||
}
|
||||
|
||||
public string BagJson()
|
||||
{
|
||||
JavaScriptSerializer serializer = new JavaScriptSerializer();
|
||||
return serializer.Serialize(Bag());
|
||||
}
|
||||
|
||||
public Dictionary<string, App> AppConfig()
|
||||
{
|
||||
return new Dictionary<string, App>
|
||||
{
|
||||
{ "Wechat" , Wechat() },
|
||||
{ "QQ" , QQ() },
|
||||
{ "TIM" , TIM() }
|
||||
};
|
||||
}
|
||||
|
||||
public string AppConfigJson()
|
||||
{
|
||||
JavaScriptSerializer serializer = new JavaScriptSerializer();
|
||||
return serializer.Serialize(AppConfig());
|
||||
}
|
||||
|
||||
public App Wechat()
|
||||
{
|
||||
return new App
|
||||
{
|
||||
Name = "Wechat",
|
||||
FileTargetInfos = new Dictionary<string, TargetInfo>
|
||||
{
|
||||
{
|
||||
"WeChatWin.dll",
|
||||
new TargetInfo
|
||||
{
|
||||
Name = "WeChatWin.dll",
|
||||
RelativePath = "WeChatWin.dll"
|
||||
}
|
||||
}
|
||||
},
|
||||
FileModifyInfos = new Dictionary<string, List<ModifyInfo>>
|
||||
{
|
||||
{
|
||||
"WeChatWin.dll",
|
||||
new List<ModifyInfo>
|
||||
{
|
||||
new ModifyInfo {
|
||||
Name="WeChatWin.dll",
|
||||
Version="2.7.1.65",
|
||||
SHA1Before="8346b97d264725da924d240c6eb77df3e693385e",
|
||||
SHA1After="42bab2c9c79ef4f2088c00ea6d817973e14a5e6e",
|
||||
Changes = new List<Change>
|
||||
{
|
||||
new Change
|
||||
{
|
||||
Position =2495545,
|
||||
Content =new byte[] { 235}
|
||||
}
|
||||
}
|
||||
},
|
||||
new ModifyInfo {Name="WeChatWin.dll",Version="2.7.1.59",SHA1Before="df954d403edaca89cd5394927a325a0023e93281",SHA1After="6aa22460c91bb5c5e2f0ec1af99b8a5f6d4318c0",Changes = new List<Change> { new Change {Position=2496073,Content=new byte[] { 235} } } },new ModifyInfo {Name="WeChatWin.dll",Version="2.7.1.43",SHA1Before="39cd9e09e1a3eac09e6808749bff525c9e3216ce",SHA1After="7b829f1ff0217e346a80f9510fdd7634ddd49445",Changes = new List<Change> { new Change {Position=2494169,Content=new byte[] { 235} } } },new ModifyInfo {Name="WeChatWin.dll",Version="2.7.0.70",SHA1Before="3b0601864aff3c1d792f812ad1ca05f02aa761e3",SHA1After="1e8734d32b0a8c12758e30f99c77f729991fb071",Changes = new List<Change> { new Change {Position=2475657,Content=new byte[] { 235} } } },new ModifyInfo {Name="WeChatWin.dll",Version="2.7.0.65",SHA1Before="063c2e05a0df1bdb8987c2d978d93499bd2052ba",SHA1After="5ed4c09a4f18643b967f063a824d7e65d0567f8a",Changes = new List<Change> { new Change {Position=2475449,Content=new byte[] { 117} } } },new ModifyInfo {Name="WeChatWin.dll",Version="2.6.8.68",SHA1Before="2e9417f4276b12fe32ca7b4fee49272a4a2af334",SHA1After="699602ee3cbb9ae5714f6e6ebc658c875a6c66e6",Changes = new List<Change> { new Change {Position=2454006,Content=new byte[] { 116} } } },new ModifyInfo {Name="WeChatWin.dll",Version="2.6.8.65",SHA1Before="e01f6855a96c12c30808960903ed199a33e4952c",SHA1After="d9120569cfd0433aebea107d7b90805cbbac7518",Changes = new List<Change> { new Change {Position=2454265,Content=new byte[] { 117} } } },new ModifyInfo {Name="WeChatWin.dll",Version="2.6.8.52",SHA1Before="88131302f664df6a657c9ca49d152da536fe5729",SHA1After="8d1454b73831644181e962c1fa0ea4e2da4124a3",Changes = new List<Change> { new Change {Position=2453049,Content=new byte[] { 117} } } },new ModifyInfo {Name="WeChatWin.dll",Version="2.6.8.51",SHA1Before="d0a5517b1292a751501b00b4b1f0702db2d9fc30",SHA1After="53e7b1525d49bf2c3250a8131ff0ba2510779b78",Changes = new List<Change> { new Change {Position=2452614,Content=new byte[] { 116} } } },new ModifyInfo {Name="WeChatWin.dll",Version="2.6.8.37",SHA1Before="7e01f8b04a158a4a50bc5a6e67c2fb8b02233170",SHA1After="a1895004415fe9bcd7e690bd6e482b833b515599",Changes = new List<Change> { new Change {Position=2452614,Content=new byte[] { 116} } } },new ModifyInfo {Name="WeChatWin.dll",Version="2.6.7.57",SHA1Before="80a91aaf941bcb1c24a7d672838ac73e9ebb2e40",SHA1After="a0d3f9a45a835f97aef7fe0872387d8cfb5c25a4",Changes = new List<Change> { new Change {Position=2433413,Content=new byte[] { 116} } } },new ModifyInfo {Name="WeChatWin.dll",Version="2.6.7.40",SHA1Before="04bd0cb28df6630b518f42a3f9c2caa4a9359fbc",SHA1After="13c91cf1d4609959771fd137b9a86a5ca365e1b6",Changes = new List<Change> { new Change {Position=2432934,Content=new byte[] { 116} } } },new ModifyInfo {Name="WeChatWin.dll",Version="2.6.7.32",SHA1Before="a02519c1007ee6723947c262c720d63c619f633e",SHA1After="f3007471ca8734c29783c25f0bb49949a783a44",Changes = new List<Change> { new Change {Position=2432806,Content=new byte[] { 116} } } },new ModifyInfo {Name="WeChatWin.dll",Version="2.6.6.28",SHA1Before="0b19cb17a62c3ea0efce0fb675a1d3b17845cba3",SHA1After="260948656725446b818ea668273ceff02ddfb44d",Changes = new List<Change> { new Change {Position=2401678,Content=new byte[] { 116} } } }
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
public App QQ()
|
||||
{
|
||||
return new App
|
||||
{
|
||||
Name = "QQ",
|
||||
FileTargetInfos = new Dictionary<string, TargetInfo>
|
||||
{
|
||||
{
|
||||
"IM.dll",
|
||||
new TargetInfo
|
||||
{
|
||||
Name = "IM.dll",
|
||||
RelativePath = @"Bin\IM.dll"
|
||||
}
|
||||
}
|
||||
},
|
||||
FileModifyInfos = new Dictionary<string, List<ModifyInfo>>
|
||||
{
|
||||
{
|
||||
"IM.dll",
|
||||
new List<ModifyInfo>
|
||||
{
|
||||
new ModifyInfo
|
||||
{
|
||||
Name = "IM.dll",
|
||||
Version = "9.1.7.25980",
|
||||
SHA1Before = "c6632339fbe675312a70ae4620e70699c258cd36",
|
||||
SHA1After = "e9ddc5cc681950796fc8fe4c55f580428c890b51",
|
||||
Changes = new List<Change>
|
||||
{
|
||||
new Change
|
||||
{
|
||||
Position = 0x0005009F,
|
||||
Content = new byte[] { 0xEB, 0x90, 0x90, 0x90, 0x90 }
|
||||
},
|
||||
new Change
|
||||
{
|
||||
Position = 0x000502BC,
|
||||
Content = new byte[] { 0xEB, 0x90, 0x90, 0x90, 0x90 }
|
||||
},
|
||||
new Change
|
||||
{
|
||||
Position = 0x0005046C,
|
||||
Content = new byte[] { 0xEB, 0x08, 0x90, 0x90, 0x90, 0x90 }
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
public App TIM()
|
||||
{
|
||||
return new App
|
||||
{
|
||||
Name = "TIM",
|
||||
FileTargetInfos = new Dictionary<string, TargetInfo>
|
||||
{
|
||||
{
|
||||
"IM.dll",
|
||||
new TargetInfo
|
||||
{
|
||||
Name = "IM.dll",
|
||||
RelativePath = @"Bin\IM.dll"
|
||||
}
|
||||
}
|
||||
},
|
||||
FileModifyInfos = new Dictionary<string, List<ModifyInfo>>
|
||||
{
|
||||
{
|
||||
"IM.dll",
|
||||
new List<ModifyInfo>
|
||||
{
|
||||
new ModifyInfo
|
||||
{
|
||||
Name = "IM.dll",
|
||||
Version = "2.3.2.21173",
|
||||
SHA1Before = "ecf3e69f3fb100ffe2fee095ffded591b9781024",
|
||||
SHA1After = "0514d1304e7ac46b4d33386ec3313888f5ae7171",
|
||||
Changes = new List<Change>
|
||||
{
|
||||
new Change
|
||||
{
|
||||
Position = 0x0004D78A,
|
||||
Content = new byte[] { 0xEB, 0x90, 0x90, 0x90, 0x90 }
|
||||
},
|
||||
new Change
|
||||
{
|
||||
Position = 0x0004D9A7,
|
||||
Content = new byte[] { 0xEB, 0x90, 0x90, 0x90, 0x90 }
|
||||
},
|
||||
new Change
|
||||
{
|
||||
Position = 0x0004DB57,
|
||||
Content = new byte[] { 0xEB, 0x08, 0x90, 0x90, 0x90, 0x90 }
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
}
|
||||
}
|
|
@ -13,5 +13,33 @@ namespace RevokeMsgPatcher.Model
|
|||
public Dictionary<string, TargetInfo> FileTargetInfos { get; set; }
|
||||
|
||||
public Dictionary<string, List<ModifyInfo>> FileModifyInfos { get; set; }
|
||||
|
||||
public HashSet<string> GetSupportVersions()
|
||||
{
|
||||
// 使用 HashSet 防重
|
||||
HashSet<string> versions = new HashSet<string>();
|
||||
foreach (List<ModifyInfo> modifyInfos in FileModifyInfos.Values)
|
||||
{
|
||||
foreach (ModifyInfo modifyInfo in modifyInfos)
|
||||
{
|
||||
versions.Add(modifyInfo.Version);
|
||||
}
|
||||
}
|
||||
return versions;
|
||||
}
|
||||
|
||||
public string GetSupportVersionStr()
|
||||
{
|
||||
string str = "";
|
||||
foreach (string v in GetSupportVersions())
|
||||
{
|
||||
str += v + "、";
|
||||
}
|
||||
if (str.Length > 1)
|
||||
{
|
||||
str = str.Substring(0, str.Length - 1);
|
||||
}
|
||||
return str;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -19,7 +19,7 @@ namespace RevokeMsgPatcher.Modifier
|
|||
{
|
||||
protected App config;
|
||||
|
||||
public App Config { set { config = value; } }
|
||||
public App Config { set { config = value; } get { return config; } }
|
||||
|
||||
protected List<FileHexEditor> editors;
|
||||
|
||||
|
|
|
@ -61,7 +61,7 @@ namespace RevokeMsgPatcher.Properties {
|
|||
}
|
||||
|
||||
/// <summary>
|
||||
/// 查找类似 [{"FileName":"WeChatWin.dll","Version":"2.6.8.65","SHA1Before":"e01f6855a96c12c30808960903ed199a33e4952c","SHA1After":"d9120569cfd0433aebea107d7b90805cbbac7518","Position":2454265,"Content":117},{"FileName":"WeChatWin.dll","Version":"2.6.8.52","SHA1Before":"88131302f664df6a657c9ca49d152da536fe5729","SHA1After":"8d1454b73831644181e962c1fa0ea4e2da4124a3","Position":2453049,"Content":117},{"FileName":"WeChatWin.dll","Version":"2.6.8.51","SHA1Before":"d0a5517b1292a751501b00b4b1f0702db2d9fc30","SHA1After":"53e7b [字符串的其余部分被截断]"; 的本地化字符串。
|
||||
/// 查找类似 {"Apps":{"Wechat":{"Name":"Wechat","FileTargetInfos":{"WeChatWin.dll":{"Name":"WeChatWin.dll","RelativePath":"WeChatWin.dll","Memo":null}},"FileModifyInfos":{"WeChatWin.dll":[{"Name":"WeChatWin.dll","Version":"2.7.1.65","SHA1Before":"8346b97d264725da924d240c6eb77df3e693385e","SHA1After":"42bab2c9c79ef4f2088c00ea6d817973e14a5e6e","Changes":[{"Position":2495545,"Content":[235]}]},{"Name":"WeChatWin.dll","Version":"2.7.1.59","SHA1Before":"df954d403edaca89cd5394927a325a0023e93281","SHA1After":"6aa22460c91bb5c5e [字符串的其余部分被截断]"; 的本地化字符串。
|
||||
/// </summary>
|
||||
internal static string PatchJson {
|
||||
get {
|
||||
|
|
|
@ -118,6 +118,6 @@
|
|||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<data name="PatchJson" xml:space="preserve">
|
||||
<value>[{"FileName":"WeChatWin.dll","Version":"2.6.8.65","SHA1Before":"e01f6855a96c12c30808960903ed199a33e4952c","SHA1After":"d9120569cfd0433aebea107d7b90805cbbac7518","Position":2454265,"Content":117},{"FileName":"WeChatWin.dll","Version":"2.6.8.52","SHA1Before":"88131302f664df6a657c9ca49d152da536fe5729","SHA1After":"8d1454b73831644181e962c1fa0ea4e2da4124a3","Position":2453049,"Content":117},{"FileName":"WeChatWin.dll","Version":"2.6.8.51","SHA1Before":"d0a5517b1292a751501b00b4b1f0702db2d9fc30","SHA1After":"53e7b1525d49bf2c3250a8131ff0ba2510779b78","Position":2452614,"Content":116},{"FileName":"WeChatWin.dll","Version":"2.6.8.37","SHA1Before":"7e01f8b04a158a4a50bc5a6e67c2fb8b02233170","SHA1After":"a1895004415fe9bcd7e690bd6e482b833b515599","Position":2452614,"Content":116},{"FileName":"WeChatWin.dll","Version":"2.6.7.57","SHA1Before":"80a91aaf941bcb1c24a7d672838ac73e9ebb2e40","SHA1After":"a0d3f9a45a835f97aef7fe0872387d8cfb5c25a4","Position":2433413,"Content":116},{"FileName":"WeChatWin.dll","Version":"2.6.7.40","SHA1Before":"04bd0cb28df6630b518f42a3f9c2caa4a9359fbc","SHA1After":"13c91cf1d4609959771fd137b9a86a5ca365e1b6","Position":2432934,"Content":116},{"FileName":"WeChatWin.dll","Version":"2.6.7.32","SHA1Before":"a02519c1007ee6723947c262c720d63c619f633e","SHA1After":"f3007471ca8734c29783c25f0bb49949a783a44","Position":2432806,"Content":116},{"FileName":"WeChatWin.dll","Version":"2.6.6.28","SHA1Before":"0b19cb17a62c3ea0efce0fb675a1d3b17845cba3","SHA1After":"260948656725446b818ea668273ceff02ddfb44d","Position":2401678,"Content":116}]</value>
|
||||
<value>{"Apps":{"Wechat":{"Name":"Wechat","FileTargetInfos":{"WeChatWin.dll":{"Name":"WeChatWin.dll","RelativePath":"WeChatWin.dll","Memo":null}},"FileModifyInfos":{"WeChatWin.dll":[{"Name":"WeChatWin.dll","Version":"2.7.1.65","SHA1Before":"8346b97d264725da924d240c6eb77df3e693385e","SHA1After":"42bab2c9c79ef4f2088c00ea6d817973e14a5e6e","Changes":[{"Position":2495545,"Content":[235]}]},{"Name":"WeChatWin.dll","Version":"2.7.1.59","SHA1Before":"df954d403edaca89cd5394927a325a0023e93281","SHA1After":"6aa22460c91bb5c5e2f0ec1af99b8a5f6d4318c0","Changes":[{"Position":2496073,"Content":[235]}]},{"Name":"WeChatWin.dll","Version":"2.7.1.43","SHA1Before":"39cd9e09e1a3eac09e6808749bff525c9e3216ce","SHA1After":"7b829f1ff0217e346a80f9510fdd7634ddd49445","Changes":[{"Position":2494169,"Content":[235]}]},{"Name":"WeChatWin.dll","Version":"2.7.0.70","SHA1Before":"3b0601864aff3c1d792f812ad1ca05f02aa761e3","SHA1After":"1e8734d32b0a8c12758e30f99c77f729991fb071","Changes":[{"Position":2475657,"Content":[235]}]},{"Name":"WeChatWin.dll","Version":"2.7.0.65","SHA1Before":"063c2e05a0df1bdb8987c2d978d93499bd2052ba","SHA1After":"5ed4c09a4f18643b967f063a824d7e65d0567f8a","Changes":[{"Position":2475449,"Content":[117]}]},{"Name":"WeChatWin.dll","Version":"2.6.8.68","SHA1Before":"2e9417f4276b12fe32ca7b4fee49272a4a2af334","SHA1After":"699602ee3cbb9ae5714f6e6ebc658c875a6c66e6","Changes":[{"Position":2454006,"Content":[116]}]},{"Name":"WeChatWin.dll","Version":"2.6.8.65","SHA1Before":"e01f6855a96c12c30808960903ed199a33e4952c","SHA1After":"d9120569cfd0433aebea107d7b90805cbbac7518","Changes":[{"Position":2454265,"Content":[117]}]},{"Name":"WeChatWin.dll","Version":"2.6.8.52","SHA1Before":"88131302f664df6a657c9ca49d152da536fe5729","SHA1After":"8d1454b73831644181e962c1fa0ea4e2da4124a3","Changes":[{"Position":2453049,"Content":[117]}]},{"Name":"WeChatWin.dll","Version":"2.6.8.51","SHA1Before":"d0a5517b1292a751501b00b4b1f0702db2d9fc30","SHA1After":"53e7b1525d49bf2c3250a8131ff0ba2510779b78","Changes":[{"Position":2452614,"Content":[116]}]},{"Name":"WeChatWin.dll","Version":"2.6.8.37","SHA1Before":"7e01f8b04a158a4a50bc5a6e67c2fb8b02233170","SHA1After":"a1895004415fe9bcd7e690bd6e482b833b515599","Changes":[{"Position":2452614,"Content":[116]}]},{"Name":"WeChatWin.dll","Version":"2.6.7.57","SHA1Before":"80a91aaf941bcb1c24a7d672838ac73e9ebb2e40","SHA1After":"a0d3f9a45a835f97aef7fe0872387d8cfb5c25a4","Changes":[{"Position":2433413,"Content":[116]}]},{"Name":"WeChatWin.dll","Version":"2.6.7.40","SHA1Before":"04bd0cb28df6630b518f42a3f9c2caa4a9359fbc","SHA1After":"13c91cf1d4609959771fd137b9a86a5ca365e1b6","Changes":[{"Position":2432934,"Content":[116]}]},{"Name":"WeChatWin.dll","Version":"2.6.7.32","SHA1Before":"a02519c1007ee6723947c262c720d63c619f633e","SHA1After":"f3007471ca8734c29783c25f0bb49949a783a44","Changes":[{"Position":2432806,"Content":[116]}]},{"Name":"WeChatWin.dll","Version":"2.6.6.28","SHA1Before":"0b19cb17a62c3ea0efce0fb675a1d3b17845cba3","SHA1After":"260948656725446b818ea668273ceff02ddfb44d","Changes":[{"Position":2401678,"Content":[116]}]}]}},"QQ":{"Name":"QQ","FileTargetInfos":{"IM.dll":{"Name":"IM.dll","RelativePath":"Bin\\IM.dll","Memo":null}},"FileModifyInfos":{"IM.dll":[{"Name":"IM.dll","Version":"9.1.7.25980","SHA1Before":"c6632339fbe675312a70ae4620e70699c258cd36","SHA1After":"e9ddc5cc681950796fc8fe4c55f580428c890b51","Changes":[{"Position":327839,"Content":[235,144,144,144,144]},{"Position":328380,"Content":[235,144,144,144,144]},{"Position":328812,"Content":[235,8,144,144,144,144]}]}]}},"TIM":{"Name":"TIM","FileTargetInfos":{"IM.dll":{"Name":"IM.dll","RelativePath":"Bin\\IM.dll","Memo":null}},"FileModifyInfos":{"IM.dll":[{"Name":"IM.dll","Version":"2.3.2.21173","SHA1Before":"ecf3e69f3fb100ffe2fee095ffded591b9781024","SHA1After":"0514d1304e7ac46b4d33386ec3313888f5ae7171","Changes":[{"Position":317322,"Content":[235,144,144,144,144]},{"Position":317863,"Content":[235,144,144,144,144]},{"Position":318295,"Content":[235,8,144,144,144,144]}]}]}}},"LatestVersion":"0.5","Notice":"公告"}</value>
|
||||
</data>
|
||||
</root>
|
|
@ -69,7 +69,6 @@
|
|||
<Compile Include="Utils\PathUtil.cs" />
|
||||
<Compile Include="Program.cs" />
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
<Compile Include="JsonData.cs" />
|
||||
<EmbeddedResource Include="FormMain.resx">
|
||||
<DependentUpon>FormMain.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
|
|
Loading…
Reference in New Issue
Block a user