diff --git a/RevokeMsgPatcher.Assistant/Data/1.8/patch.json b/RevokeMsgPatcher.Assistant/Data/1.8/patch.json new file mode 100644 index 00000000..5503f151 --- /dev/null +++ b/RevokeMsgPatcher.Assistant/Data/1.8/patch.json @@ -0,0 +1 @@ +{"Apps":{"Wechat":{"Name":"WeChat","FileTargetInfos":{"WeChatWin.dll":{"Name":"WeChatWin.dll","RelativePath":"WeChatWin.dll","Memo":null,"StartVersion":"1.0.0.0","EndVersion":null},"WeChat.exe":{"Name":"WeChat.exe","RelativePath":"../WeChat.exe","Memo":null,"StartVersion":"3.7.0.0","EndVersion":"3.7.0.26"}},"FileModifyInfos":{"WeChat.exe":[],"WeChatWin.dll":[{"Name":"WeChatWin.dll","Version":"3.3.5.25","SHA1Before":"3e94753ccbc2799d98f3c741377e99bdae33b4cf","SHA1After":"ab98f83fc16674ac4911380882c79c3ca4c2fd71","Changes":[{"Position":3413977,"Content":[235]},{"Position":12159591,"Content":[235]}]},{"Name":"WeChatWin.dll","Version":"3.3.5.15","SHA1Before":"7d06e076c525aec6783e919dde4ee11ba9fdb198","SHA1After":"f22ab996a1779c2b41132d42c4fdf98c003284e0","Changes":[{"Position":3397481,"Content":[235]},{"Position":12120775,"Content":[235]}]},{"Name":"WeChatWin.dll","Version":"2.8.0.112","SHA1Before":"7497fc006f061799138aa33419280e41891a7981","SHA1After":"07e681be40af32738d59a9332fe966c83c05e455","Changes":[{"Position":2682233,"Content":[235]},{"Position":8289040,"Content":[195]}]},{"Name":"WeChatWin.dll","Version":"2.8.0.106","SHA1Before":"e772c81c8a1b79cac77b22dbe67b375fa340ba30","SHA1After":"bcbc491910f07cb995ef154a281450f2d052e90b","Changes":[{"Position":2658457,"Content":[235]},{"Position":8280416,"Content":[195]}]},{"Name":"WeChatWin.dll","Version":"2.8.0.88","SHA1Before":"b34c73e38cfec186890b58caac5fc9962377cd9b","SHA1After":"8c108e92de0b6b4d9e61ce38ab8dd339a27e505b","Changes":[{"Position":2655369,"Content":[235]},{"Position":8273280,"Content":[195]}]},{"Name":"WeChatWin.dll","Version":"2.8.0.82","SHA1Before":"c359cc1a391441d261753f2844f9156638df8631","SHA1After":"d1b4dee8f7f91e34d68501987fd0675b33fe85da","Changes":[{"Position":2645961,"Content":[235]},{"Position":8263344,"Content":[195]}]},{"Name":"WeChatWin.dll","Version":"2.7.2.78","SHA1Before":"26a5c5503f1e176676da5657c12812da8aaa0243","SHA1After":"d338215a815c09755c04949995ec3e4eab8dce60","Changes":[{"Position":2645673,"Content":[235]},{"Position":8262528,"Content":[195]}]},{"Name":"WeChatWin.dll","Version":"2.7.2.76","SHA1Before":"0003c7b2c0136a0eb2a6cfc2c694cb57b04b5517","SHA1After":"88af6055a0f4d3bdaa6f717ec8b263d4418487b6","Changes":[{"Position":2644905,"Content":[235]},{"Position":8261024,"Content":[195]}]},{"Name":"WeChatWin.dll","Version":"2.7.1.88","SHA1Before":"034059bad50dd793140952391bfa7936133e69b4","SHA1After":"dd6d80c30ca9e0ea9f7d2f1add498fc9aa4bc7a0","Changes":[{"Position":2499465,"Content":[235]},{"Position":7952304,"Content":[195]}]},{"Name":"WeChatWin.dll","Version":"2.7.1.85","SHA1Before":"de0df4e138b72460450f66c029e33f4510f5e2df","SHA1After":"fbd35720aaff3cdcfd3ff18ea503dc06450e5c99","Changes":[{"Position":2499465,"Content":[235]},{"Position":7952000,"Content":[195]}]},{"Name":"WeChatWin.dll","Version":"2.7.1.82","SHA1Before":"20e111a18872bf6c7148a897c11da26c1ec95520","SHA1After":"1e0741d325ca6b1cd2402b829a3d13a2524af617","Changes":[{"Position":2499465,"Content":[235]},{"Position":7951952,"Content":[195]}]},{"Name":"WeChatWin.dll","Version":"2.7.1.74","SHA1Before":"b1eaf7edc074a88be5d0f89230436cc2084d24d2","SHA1After":"eb3d74ccd87a09059a005f4972861898fc3de463","Changes":[{"Position":2499465,"Content":[235]},{"Position":7951696,"Content":[195]}]},{"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]}]}]},"FileCommonModifyInfos":{"WeChat.exe":[{"Name":"WeChatWin.dll","StartVersion":"3.7.0.8","EndVersion":"3.7.0.26","ReplacePatterns":[{"Search":[131,196,8,132,192,117,63,104],"Replace":[131,196,8,132,192,235,63,104],"Category":"去除校验","Tips":null,"SimilarCategories":null,"ChooseSimilarCategoriesMsg":null}]},{"Name":"WeChatWin.dll","StartVersion":"3.7.0.0","EndVersion":"3.7.0.8","ReplacePatterns":[{"Search":[133,192,117,89],"Replace":[133,192,235,89],"Category":"去除校验","Tips":null,"SimilarCategories":null,"ChooseSimilarCategoriesMsg":null}]}],"WeChatWin.dll":[{"Name":"WeChatWin.dll","StartVersion":"3.9.11.0","EndVersion":"","ReplacePatterns":[{"Search":[15,31,68,0,0,73,139,80,8,72,133,210,116,63,72,199,193],"Replace":[15,31,68,0,0,73,139,80,8,72,133,210,117,63,72,199,193],"Category":"防撤回(老)","Tips":null,"SimilarCategories":null,"ChooseSimilarCategoriesMsg":null},{"Search":[77,133,192,15,132,63,63,63,63,235,191,65,139],"Replace":[77,133,192,15,132,63,63,63,63,144,144,65,139],"Category":"防撤回带提示(新)","Tips":null,"SimilarCategories":null,"ChooseSimilarCategoriesMsg":null},{"Search":[69,50,246,76,141,37,63,63,63,63,72,133,192,15,132],"Replace":[69,50,246,76,141,37,63,63,63,63,72,133,192,144,233],"Category":"多开","Tips":null,"SimilarCategories":null,"ChooseSimilarCategoriesMsg":null}]},{"Name":"WeChatWin.dll","StartVersion":"3.9.9.0","EndVersion":"3.9.11.0","ReplacePatterns":[{"Search":[15,31,68,0,0,73,139,80,8,72,133,210,116,63,72,199,193],"Replace":[15,31,68,0,0,73,139,80,8,72,133,210,117,63,72,199,193],"Category":"防撤回(老)","Tips":null,"SimilarCategories":null,"ChooseSimilarCategoriesMsg":null},{"Search":[77,133,192,15,132,63,63,63,63,235,191,65,139],"Replace":[77,133,192,15,132,63,63,63,63,144,144,65,139],"Category":"防撤回带提示(新)","Tips":null,"SimilarCategories":null,"ChooseSimilarCategoriesMsg":null},{"Search":[1,61,183,0,0,0,15,133,63,63,63,63,72,139,207],"Replace":[1,61,183,0,0,0,144,233,63,63,63,63,72,139,207],"Category":"多开","Tips":null,"SimilarCategories":null,"ChooseSimilarCategoriesMsg":null}]},{"Name":"WeChatWin.dll","StartVersion":"3.9.6.0","EndVersion":"3.9.9.0","ReplacePatterns":[{"Search":[15,31,68,0,0,73,139,80,8,72,133,210,116,63,72,199,193],"Replace":[15,31,68,0,0,73,139,80,8,72,133,210,117,63,72,199,193],"Category":"防撤回(老)","Tips":null,"SimilarCategories":null,"ChooseSimilarCategoriesMsg":null},{"Search":[1,61,183,0,0,0,15,133,63,63,63,63,72,139,207],"Replace":[1,61,183,0,0,0,144,233,63,63,63,63,72,139,207],"Category":"多开","Tips":null,"SimilarCategories":null,"ChooseSimilarCategoriesMsg":null}]},{"Name":"WeChatWin.dll","StartVersion":"3.9.5.0","EndVersion":"3.9.6.0","ReplacePatterns":[{"Search":[15,31,68,0,0,73,139,80,8,72,133,210,116,63,72,199,193],"Replace":[15,31,68,0,0,73,139,80,8,72,133,210,117,63,72,199,193],"Category":"防撤回(老)","Tips":null,"SimilarCategories":null,"ChooseSimilarCategoriesMsg":null},{"Search":[24,1,61,183,0,0,0,15,133,63,63,63,63,72,139,207],"Replace":[24,1,61,183,0,0,0,144,233,63,63,63,63,72,139,207],"Category":"多开","Tips":null,"SimilarCategories":null,"ChooseSimilarCategoriesMsg":null}]},{"Name":"WeChatWin.dll","StartVersion":"3.9.2.0","EndVersion":"3.9.5.0","ReplacePatterns":[{"Search":[131,196,16,132,192,116,10,190,2,0,0,0,233],"Replace":[131,196,16,132,192,144,144,190,2,0,0,0,233],"Category":"防撤回(老)","Tips":null,"SimilarCategories":null,"ChooseSimilarCategoriesMsg":null},{"Search":[131,196,4,132,219,15,132,63,63,63,63,139,61],"Replace":[131,196,4,132,219,144,233,63,63,63,63,139,61],"Category":"多开","Tips":null,"SimilarCategories":null,"ChooseSimilarCategoriesMsg":null}]},{"Name":"WeChatWin.dll","StartVersion":"3.9.0.0","EndVersion":"3.9.2.0","ReplacePatterns":[{"Search":[133,192,116,50,185,63,63,63,63,138],"Replace":[133,192,235,50,185,63,63,63,63,138],"Category":"防撤回(老)","Tips":null,"SimilarCategories":null,"ChooseSimilarCategoriesMsg":null},{"Search":[195,51,192,163,63,63,63,63,195,204,204,204,204,204,204,204,204,204,204,204,204,85,139,236],"Replace":[195,51,192,163,63,63,63,63,195,204,204,204,204,204,204,204,204,204,204,204,204,195,139,236],"Category":"多开","Tips":null,"SimilarCategories":null,"ChooseSimilarCategoriesMsg":null}]},{"Name":"WeChatWin.dll","StartVersion":"3.8.1.0","EndVersion":"3.9.0.0","ReplacePatterns":[{"Search":[133,192,116,50,185,63,63,63,63,138],"Replace":[133,192,235,50,185,63,63,63,63,138],"Category":"防撤回(老)","Tips":null,"SimilarCategories":null,"ChooseSimilarCategoriesMsg":null},{"Search":[131,196,4,132,219,15,132,38,1,0,0,139,61],"Replace":[131,196,4,132,219,144,233,38,1,0,0,139,61],"Category":"多开","Tips":null,"SimilarCategories":null,"ChooseSimilarCategoriesMsg":null}]},{"Name":"WeChatWin.dll","StartVersion":"3.8.0.0","EndVersion":"3.8.1.0","ReplacePatterns":[{"Search":[133,192,116,50,185,63,63,63,63,138],"Replace":[133,192,235,50,185,63,63,63,63,138],"Category":"防撤回(老)","Tips":null,"SimilarCategories":null,"ChooseSimilarCategoriesMsg":null},{"Search":[131,196,4,128,189,223,251,255,255,0,116,88,139,61],"Replace":[131,196,4,128,189,223,251,255,255,0,235,88,139,61],"Category":"多开","Tips":null,"SimilarCategories":null,"ChooseSimilarCategoriesMsg":null}]},{"Name":"WeChatWin.dll","StartVersion":"3.7.6.0","EndVersion":"3.8.0.0","ReplacePatterns":[{"Search":[133,192,116,50,185,63,63,63,63,138],"Replace":[133,192,235,50,185,63,63,63,63,138],"Category":"防撤回(老)","Tips":null,"SimilarCategories":null,"ChooseSimilarCategoriesMsg":null},{"Search":[131,196,4,128,189,255,251,255,255,0,116,88,139,61],"Replace":[131,196,4,128,189,255,251,255,255,0,235,88,139,61],"Category":"多开","Tips":null,"SimilarCategories":null,"ChooseSimilarCategoriesMsg":null}]},{"Name":"WeChatWin.dll","StartVersion":"3.7.0.0","EndVersion":"3.7.6.0","ReplacePatterns":[{"Search":[0,133,192,116,50,185,63,63,63,63,138],"Replace":[0,133,192,235,50,185,63,63,63,63,138],"Category":"防撤回(老)","Tips":null,"SimilarCategories":null,"ChooseSimilarCategoriesMsg":null},{"Search":[128,125,242,0,106,1,116],"Replace":[128,125,242,0,106,1,235],"Category":"防撤回带提示(新)","Tips":null,"SimilarCategories":null,"ChooseSimilarCategoriesMsg":null},{"Search":[131,196,4,128,189,63,252,255,255,0,116,88,139,61],"Replace":[131,196,4,128,189,63,252,255,255,0,235,88,139,61],"Category":"多开","Tips":null,"SimilarCategories":null,"ChooseSimilarCategoriesMsg":null}]},{"Name":"WeChatWin.dll","StartVersion":"3.6.5.0","EndVersion":"3.7.0.0","ReplacePatterns":[{"Search":[0,133,192,116,50,185,63,63,63,17,138],"Replace":[0,133,192,235,50,185,63,63,63,17,138],"Category":"防撤回","Tips":null,"SimilarCategories":null,"ChooseSimilarCategoriesMsg":null},{"Search":[131,196,4,128,189,63,252,255,255,0,116,88,139,61],"Replace":[131,196,4,128,189,63,252,255,255,0,235,88,139,61],"Category":"多开","Tips":null,"SimilarCategories":null,"ChooseSimilarCategoriesMsg":null}]},{"Name":"WeChatWin.dll","StartVersion":"3.6.0.5","EndVersion":"3.6.5.0","ReplacePatterns":[{"Search":[239,0,133,192,116,50,185,63,63,63,17,138],"Replace":[239,0,133,192,235,50,185,63,63,63,17,138],"Category":"防撤回","Tips":null,"SimilarCategories":null,"ChooseSimilarCategoriesMsg":null},{"Search":[131,196,4,128,189,47,252,255,255,0,116,88,139,61],"Replace":[131,196,4,128,189,47,252,255,255,0,235,88,139,61],"Category":"多开","Tips":null,"SimilarCategories":null,"ChooseSimilarCategoriesMsg":null}]},{"Name":"WeChatWin.dll","StartVersion":"3.5.0.28","EndVersion":"3.6.0.0","ReplacePatterns":[{"Search":[237,0,133,192,116,50,185],"Replace":[237,0,51,192,116,50,185],"Category":"防撤回","Tips":null,"SimilarCategories":null,"ChooseSimilarCategoriesMsg":null},{"Search":[131,196,4,128,189,47,252,255,255,0,116,88,139,61],"Replace":[131,196,4,128,189,47,252,255,255,0,235,88,139,61],"Category":"多开","Tips":null,"SimilarCategories":null,"ChooseSimilarCategoriesMsg":null}]},{"Name":"WeChatWin.dll","StartVersion":"3.4.0.0","EndVersion":"3.5.0.0","ReplacePatterns":[{"Search":[0,133,192,116,50,185,63,63,63,17,138],"Replace":[0,133,192,235,50,185,63,63,63,17,138],"Category":"防撤回","Tips":null,"SimilarCategories":null,"ChooseSimilarCategoriesMsg":null},{"Search":[232,107,0,0,0,132,192,116,86,86,106,0],"Replace":[232,107,0,0,0,132,192,235,86,86,106,0],"Category":"多开","Tips":null,"SimilarCategories":null,"ChooseSimilarCategoriesMsg":null}]},{"Name":"WeChatWin.dll","StartVersion":"3.3.5.15","EndVersion":"3.4.0.0","ReplacePatterns":[{"Search":[0,133,192,116,50,185,63,63,149,17,138],"Replace":[0,133,192,235,50,185,63,63,149,17,138],"Category":"防撤回","Tips":null,"SimilarCategories":null,"ChooseSimilarCategoriesMsg":null},{"Search":[232,107,0,0,0,132,192,116,86,86,106,0],"Replace":[232,107,0,0,0,132,192,235,86,86,106,0],"Category":"多开","Tips":null,"SimilarCategories":null,"ChooseSimilarCategoriesMsg":null}]},{"Name":"WeChatWin.dll","StartVersion":"3.2.0.00","EndVersion":"3.3.5.00","ReplacePatterns":[{"Search":[0,133,192,116,123,139,200,232],"Replace":[0,133,192,235,123,139,200,232],"Category":"防撤回","Tips":null,"SimilarCategories":null,"ChooseSimilarCategoriesMsg":null},{"Search":[232,107,0,0,0,132,192,116,86,86,106,0],"Replace":[232,107,0,0,0,132,192,235,86,86,106,0],"Category":"多开","Tips":null,"SimilarCategories":null,"ChooseSimilarCategoriesMsg":null}]},{"Name":"WeChatWin.dll","StartVersion":"3.1.0.00","EndVersion":"3.2.0.00","ReplacePatterns":[{"Search":[0,133,192,116,123,139,200,232],"Replace":[0,133,192,235,123,139,200,232],"Category":"防撤回","Tips":null,"SimilarCategories":null,"ChooseSimilarCategoriesMsg":null},{"Search":[255,232,155,239,255,255,132,192,116,8,131],"Replace":[255,144,144,144,144,144,132,192,116,8,131],"Category":"多开","Tips":null,"SimilarCategories":null,"ChooseSimilarCategoriesMsg":null}]},{"Name":"WeChatWin.dll","StartVersion":"2.8.0.88","EndVersion":"3.1.0.00","ReplacePatterns":[{"Search":[0,133,192,116,123,139,200,232],"Replace":[0,133,192,235,123,139,200,232],"Category":"防撤回","Tips":null,"SimilarCategories":null,"ChooseSimilarCategoriesMsg":null},{"Search":[192,195,204,204,204,204,204,204,204,204,204,204,204,204,204,204,85,139,236,131,236,20,83,86,87,106,255,15,87,192,199],"Replace":[192,195,204,204,204,204,204,204,204,204,204,204,204,204,204,204,195,139,236,131,236,20,83,86,87,106,255,15,87,192,199],"Category":"多开","Tips":null,"SimilarCategories":null,"ChooseSimilarCategoriesMsg":null}]},{"Name":"WeChatWin.dll","StartVersion":"2.7.0.00","EndVersion":"2.8.0.88","ReplacePatterns":[{"Search":[0,133,192,116,50,185],"Replace":[0,133,192,235,50,185],"Category":"防撤回","Tips":null,"SimilarCategories":null,"ChooseSimilarCategoriesMsg":null},{"Search":[192,195,204,204,204,204,204,204,204,204,204,204,204,204,204,204,85,139,236,131,236,20,83,86,87,106,255,15,87,192,199],"Replace":[192,195,204,204,204,204,204,204,204,204,204,204,204,204,204,204,195,139,236,131,236,20,83,86,87,106,255,15,87,192,199],"Category":"多开","Tips":null,"SimilarCategories":null,"ChooseSimilarCategoriesMsg":null}]}]}},"QQ":{"Name":"QQ","FileTargetInfos":{"IM.dll":{"Name":"IM.dll","RelativePath":"Bin\\IM.dll","Memo":null,"StartVersion":null,"EndVersion":null}},"FileModifyInfos":{"IM.dll":[{"Name":"IM.dll","Version":"9.2.3.26592","SHA1Before":"9114e7869572b4b868afcbc8b28eae932559ec60","SHA1After":"42e15175fd53768bb48772dc69fb07a4eac5a623","Changes":[{"Position":371605,"Content":[235,9,144,144,144]},{"Position":372146,"Content":[235,9,144,144,144]},{"Position":372576,"Content":[235,8,144,144,144,144]}]},{"Name":"IM.dll","Version":"9.2.2.26569","SHA1Before":"434254e76c520789558e075af677821258536311","SHA1After":"237c9e489a97858a175f0f7c72ade4ebcbac7a69","Changes":[{"Position":371146,"Content":[235,9,144,144,144]},{"Position":371687,"Content":[235,9,144,144,144]},{"Position":372117,"Content":[235,8,144,144,144,144]}]},{"Name":"IM.dll","Version":"9.2.1.26546","SHA1Before":"8d8ea2c2cbf43f5acf8d684b153e90035352d5f5","SHA1After":"7d194dd5be03982b533d7375c93d9a72587fe28d","Changes":[{"Position":369545,"Content":[235,9,144,144,144]},{"Position":370086,"Content":[235,9,144,144,144]},{"Position":370516,"Content":[235,8,144,144,144,144]}]},{"Name":"IM.dll","Version":"9.2.0.26453","SHA1Before":"c1935ca6347b0c2a7e6108a7f8ee0643d39deb66","SHA1After":"42811188a7e7b346a6a3c1066936b98c747acaf6","Changes":[{"Position":353794,"Content":[235,9,144,144,144]},{"Position":354335,"Content":[235,9,144,144,144]},{"Position":354767,"Content":[235,8,144,144,144,144]}]},{"Name":"IM.dll","Version":"9.2.0.26389","SHA1Before":"6f8855fb80acfa456f8f69989fe949308fe4d154","SHA1After":"f6b8e05a178b9b10ba17c597fa0a44b7a2a966a8","Changes":[{"Position":356808,"Content":[235,9,144,144,144]},{"Position":357349,"Content":[235,9,144,144,144]},{"Position":357781,"Content":[235,8,144,144,144,144]}]},{"Name":"IM.dll","Version":"9.1.9.26361","SHA1Before":"022d3433d13d07a354c38816f61cb0b7ac60d3fd","SHA1After":"873a57c1fb51cdd099c8cb7108b5ab5cb4459557","Changes":[{"Position":354270,"Content":[235,9,144,144,144]},{"Position":354811,"Content":[235,9,144,144,144]},{"Position":355243,"Content":[235,8,144,144,144,144]}]},{"Name":"IM.dll","Version":"9.1.9.26346","SHA1Before":"895eb70f707b8222e6460c91492b1281e525059b","SHA1After":"0bb83990e2b5b5f23b7b43249941ff638201af54","Changes":[{"Position":354270,"Content":[235,9,144,144,144]},{"Position":354811,"Content":[235,9,144,144,144]},{"Position":355243,"Content":[235,8,144,144,144,144]}]},{"Name":"IM.dll","Version":"9.1.8.26211","SHA1Before":"a950d3cf5e8925f7775624271105ef78d9c5cb57","SHA1After":"dffc1cb87b91e6467e13c935611f2f7fd76b9a8d","Changes":[{"Position":337135,"Content":[235,9,144,144,144]},{"Position":337676,"Content":[235,9,144,144,144]},{"Position":338108,"Content":[235,8,144,144,144,144]}]},{"Name":"IM.dll","Version":"9.1.7.25980","SHA1Before":"c6632339fbe675312a70ae4620e70699c258cd36","SHA1After":"e9ddc5cc681950796fc8fe4c55f580428c890b51","Changes":[{"Position":327839,"Content":[235,9,144,144,144]},{"Position":328380,"Content":[235,9,144,144,144]},{"Position":328812,"Content":[235,8,144,144,144,144]}]},{"Name":"IM.dll","Version":"9.0.4.23786","SHA1Before":"69a714f4eadb09f1453f6f022d4adbcd801cfab8","SHA1After":"b48e77a924076b3ebdffc4af514c868c551d2bca","Changes":[{"Position":318321,"Content":[235,7,144,144,144]},{"Position":318862,"Content":[235,7,144,144,144]},{"Position":319379,"Content":[235,7,144,144,144]}]}]},"FileCommonModifyInfos":{"IM.dll":[{"Name":"IM.dll","StartVersion":"9.4.7.00000","EndVersion":"","ReplacePatterns":[{"Search":[28,233,157,0,0,0,139,69,232,141,85,236,82,137,93,236,104,63,63,63,63,139,8,80,255,81,120,133,192,121,45,141,69,12,199,69,12],"Replace":[28,233,157,0,0,0,139,69,232,141,85,236,82,137,93,236,235,9,144,144,144,139,8,80,255,81,120,133,192,121,45,141,69,12,199,69,12],"Category":"防撤回","Tips":null,"SimilarCategories":null,"ChooseSimilarCategoriesMsg":null},{"Search":[28,233,157,0,0,0,139,69,240,141,85,236,82,137,93,236,104,63,63,63,63,139,8,80,255,81,120,133,192,121,45,141,69,12,199,69,12],"Replace":[28,233,157,0,0,0,139,69,240,141,85,236,82,137,93,236,235,9,144,144,144,139,8,80,255,81,120,133,192,121,45,141,69,12,199,69,12],"Category":"防撤回","Tips":null,"SimilarCategories":null,"ChooseSimilarCategoriesMsg":null},{"Search":[139,117,20,141,77,244,131,196,32,51,255,137,125,244,139,6,81,104,63,63,63,63,86,255,80,120,133,192,121,57,141,69,12,199,69,12],"Replace":[139,117,20,141,77,244,131,196,32,51,255,137,125,244,139,6,235,8,144,144,144,144,86,255,80,120,133,192,121,57,141,69,12,199,69,12],"Category":"防撤回","Tips":null,"SimilarCategories":null,"ChooseSimilarCategoriesMsg":null}]},{"Name":"IM.dll","StartVersion":"9.1.6.00000","EndVersion":"9.4.7.00000","ReplacePatterns":[{"Search":[28,233,157,0,0,0,139,69,232,141,85,236,82,137,93,236,104,63,63,63,84,139,8,80,255,81,120,133,192,121,45,141,69,12,199,69,12],"Replace":[28,233,157,0,0,0,139,69,232,141,85,236,82,137,93,236,235,9,144,144,144,139,8,80,255,81,120,133,192,121,45,141,69,12,199,69,12],"Category":"防撤回","Tips":null,"SimilarCategories":null,"ChooseSimilarCategoriesMsg":null},{"Search":[28,233,157,0,0,0,139,69,240,141,85,236,82,137,93,236,104,63,63,63,84,139,8,80,255,81,120,133,192,121,45,141,69,12,199,69,12],"Replace":[28,233,157,0,0,0,139,69,240,141,85,236,82,137,93,236,235,9,144,144,144,139,8,80,255,81,120,133,192,121,45,141,69,12,199,69,12],"Category":"防撤回","Tips":null,"SimilarCategories":null,"ChooseSimilarCategoriesMsg":null},{"Search":[139,117,20,141,77,244,131,196,32,51,255,137,125,244,139,6,81,104,63,63,63,84,86,255,80,120,133,192,121,57,141,69,12,199,69,12],"Replace":[139,117,20,141,77,244,131,196,32,51,255,137,125,244,139,6,235,8,144,144,144,144,86,255,80,120,133,192,121,57,141,69,12,199,69,12],"Category":"防撤回","Tips":null,"SimilarCategories":null,"ChooseSimilarCategoriesMsg":null}]}]}},"TIM":{"Name":"TIM","FileTargetInfos":{"IM.dll":{"Name":"IM.dll","RelativePath":"Bin\\IM.dll","Memo":null,"StartVersion":null,"EndVersion":null}},"FileModifyInfos":{"IM.dll":[{"Name":"IM.dll","Version":"2.3.2.21173","SHA1Before":"ecf3e69f3fb100ffe2fee095ffded591b9781024","SHA1After":"0514d1304e7ac46b4d33386ec3313888f5ae7171","Changes":[{"Position":317322,"Content":[235,9,144,144,144]},{"Position":317863,"Content":[235,9,144,144,144]},{"Position":318295,"Content":[235,8,144,144,144,144]}]}]},"FileCommonModifyInfos":{"IM.dll":[{"Name":"IM.dll","StartVersion":"3.4.0.00000","EndVersion":"","ReplacePatterns":[{"Search":[28,233,157,0,0,0,139,69,232,141,85,236,82,137,93,236,104,63,63,63,63,139,8,80,255,81,120,133,192,121,45,141,69,12,199,69,12],"Replace":[28,233,157,0,0,0,139,69,232,141,85,236,82,137,93,236,235,9,144,144,144,139,8,80,255,81,120,133,192,121,45,141,69,12,199,69,12],"Category":"防撤回","Tips":null,"SimilarCategories":null,"ChooseSimilarCategoriesMsg":null},{"Search":[28,233,157,0,0,0,139,69,240,141,85,236,82,137,93,236,104,63,63,63,63,139,8,80,255,81,120,133,192,121,45,141,69,12,199,69,12],"Replace":[28,233,157,0,0,0,139,69,240,141,85,236,82,137,93,236,235,9,144,144,144,139,8,80,255,81,120,133,192,121,45,141,69,12,199,69,12],"Category":"防撤回","Tips":null,"SimilarCategories":null,"ChooseSimilarCategoriesMsg":null},{"Search":[139,117,20,141,77,244,131,196,32,51,255,137,125,244,139,6,81,104,63,63,63,63,86,255,80,120,133,192,121,57,141,69,12,199,69,12],"Replace":[139,117,20,141,77,244,131,196,32,51,255,137,125,244,139,6,235,8,144,144,144,144,86,255,80,120,133,192,121,57,141,69,12,199,69,12],"Category":"防撤回","Tips":null,"SimilarCategories":null,"ChooseSimilarCategoriesMsg":null}]},{"Name":"IM.dll","StartVersion":"3.0.0.00000","EndVersion":"3.4.0.00000","ReplacePatterns":[{"Search":[28,233,157,0,0,0,139,69,232,141,85,236,82,137,93,236,104,63,63,63,84,139,8,80,255,81,120,133,192,121,45,141,69,12,199,69,12],"Replace":[28,233,157,0,0,0,139,69,232,141,85,236,82,137,93,236,235,9,144,144,144,139,8,80,255,81,120,133,192,121,45,141,69,12,199,69,12],"Category":"防撤回","Tips":null,"SimilarCategories":null,"ChooseSimilarCategoriesMsg":null},{"Search":[28,233,157,0,0,0,139,69,240,141,85,236,82,137,93,236,104,63,63,63,84,139,8,80,255,81,120,133,192,121,45,141,69,12,199,69,12],"Replace":[28,233,157,0,0,0,139,69,240,141,85,236,82,137,93,236,235,9,144,144,144,139,8,80,255,81,120,133,192,121,45,141,69,12,199,69,12],"Category":"防撤回","Tips":null,"SimilarCategories":null,"ChooseSimilarCategoriesMsg":null},{"Search":[139,117,20,141,77,244,131,196,32,51,255,137,125,244,139,6,81,104,63,63,63,84,86,255,80,120,133,192,121,57,141,69,12,199,69,12],"Replace":[139,117,20,141,77,244,131,196,32,51,255,137,125,244,139,6,235,8,144,144,144,144,86,255,80,120,133,192,121,57,141,69,12,199,69,12],"Category":"防撤回","Tips":null,"SimilarCategories":null,"ChooseSimilarCategoriesMsg":null}]}]}},"QQLite":{"Name":"QQLite","FileTargetInfos":{"IM.dll":{"Name":"IM.dll","RelativePath":"Bin\\IM.dll","Memo":null,"StartVersion":null,"EndVersion":null}},"FileModifyInfos":{"IM.dll":[{"Name":"IM.dll","Version":"7.9.14314.0","SHA1Before":"2e97d7671963fa148a1beeda6ce4964314310593","SHA1After":"723c008fb53435ead20fa6f2e951c9a4a8ff46da","Changes":[{"Position":148741,"Content":[235,2,144,144]},{"Position":149689,"Content":[235,2,144,144]}]},{"Name":"IM.dll","Version":"7.9.14308.0","SHA1Before":"b8a7a873178706b97be11c25f13bcf09e9e578a2","SHA1After":"c5bf533c7af6996b42d1fb2a0fb3f26dfd52f8bf","Changes":[{"Position":148741,"Content":[235,2,144,144]},{"Position":149689,"Content":[235,2,144,144]}]}]},"FileCommonModifyInfos":null},"QQNT":{"Name":"QQNT","FileTargetInfos":{"QQ.exe":{"Name":"QQ.exe","RelativePath":"QQ.exe","Memo":null,"StartVersion":null,"EndVersion":null}},"FileModifyInfos":null,"FileCommonModifyInfos":{"QQ.exe":[{"Name":"QQ.exe","StartVersion":"9.9.10.00000","EndVersion":"","ReplacePatterns":[{"Search":[72,137,206,72,139,17,76,139,65,8,73,41,208,72,139,73,24,232,63,63,63,63],"Replace":[72,137,206,72,139,17,76,139,65,8,73,41,208,72,139,73,24,184,1,0,0,0],"Category":"LiteLoaderQQNT+插件列表+防撤回","Tips":null,"SimilarCategories":null,"ChooseSimilarCategoriesMsg":null}]}]}}},"LatestVersion":"1.8","Notice":"","NoticeUrl":"","PatchVersion":20240615} \ No newline at end of file diff --git a/RevokeMsgPatcher.Assistant/JsonData.cs b/RevokeMsgPatcher.Assistant/JsonData.cs index 882bce35..d1ec3b83 100644 --- a/RevokeMsgPatcher.Assistant/JsonData.cs +++ b/RevokeMsgPatcher.Assistant/JsonData.cs @@ -16,8 +16,8 @@ public Bag Bag() return new Bag { Apps = AppConfig(), - LatestVersion = "1.7", - PatchVersion = 20240614, + LatestVersion = "1.8", + PatchVersion = 20240615, Notice = "", NoticeUrl = "", }; @@ -36,7 +36,8 @@ public Dictionary AppConfig() { "Wechat" , Wechat() }, { "QQ" , QQ() }, { "TIM" , TIM() }, - { "QQLite" , QQLite() } + { "QQLite" , QQLite() }, + { "QQNT" , QQNT() } }; } @@ -1344,5 +1345,49 @@ public App QQLite() } }; } + + + public App QQNT() + { + return new App + { + Name = "QQNT", + FileTargetInfos = new Dictionary + { + { + "QQ.exe", + new TargetInfo + { + Name = "QQ.exe", + RelativePath = "QQ.exe" + } + } + }, + FileCommonModifyInfos = new Dictionary> + { + { + "QQ.exe", + new List + { + new CommonModifyInfo + { + Name="QQ.exe", + StartVersion="9.9.10.00000", + EndVersion="", + ReplacePatterns = new List + { + new ReplacePattern + { + Search = ByteUtil.HexStringToByteArray("48 89 CE 48 8B 11 4C 8B 41 08 49 29 D0 48 8B 49 18 E8 3F 3F 3F 3F"), + Replace = ByteUtil.HexStringToByteArray("48 89 CE 48 8B 11 4C 8B 41 08 49 29 D0 48 8B 49 18 B8 01 00 00 00"), + Category = "LiteLoaderQQNT+插件列表+防撤回" + } + } + } + } + } + } + }; + } } } diff --git a/RevokeMsgPatcher.Assistant/RevokeMsgPatcher.Assistant.csproj b/RevokeMsgPatcher.Assistant/RevokeMsgPatcher.Assistant.csproj index 0185f95a..bb234023 100644 --- a/RevokeMsgPatcher.Assistant/RevokeMsgPatcher.Assistant.csproj +++ b/RevokeMsgPatcher.Assistant/RevokeMsgPatcher.Assistant.csproj @@ -95,6 +95,7 @@ + SettingsSingleFileGenerator Settings.Designer.cs diff --git a/RevokeMsgPatcher/FormMain.Designer.cs b/RevokeMsgPatcher/FormMain.Designer.cs index 82fd3a34..0f7220bb 100644 --- a/RevokeMsgPatcher/FormMain.Designer.cs +++ b/RevokeMsgPatcher/FormMain.Designer.cs @@ -63,6 +63,7 @@ private void InitializeComponent() this.toolTip1 = new System.Windows.Forms.ToolTip(this.components); this.panelNotice = new System.Windows.Forms.Panel(); this.labelNotice = new System.Windows.Forms.Label(); + this.rbtQQNT = new System.Windows.Forms.RadioButton(); this.menuStrip1.SuspendLayout(); this.panelNotice.SuspendLayout(); this.SuspendLayout(); @@ -185,7 +186,7 @@ private void InitializeComponent() // rbtQQ // this.rbtQQ.AutoSize = true; - this.rbtQQ.Location = new System.Drawing.Point(142, 36); + this.rbtQQ.Location = new System.Drawing.Point(190, 36); this.rbtQQ.Name = "rbtQQ"; this.rbtQQ.Size = new System.Drawing.Size(35, 16); this.rbtQQ.TabIndex = 13; @@ -196,7 +197,7 @@ private void InitializeComponent() // rbtTIM // this.rbtTIM.AutoSize = true; - this.rbtTIM.Location = new System.Drawing.Point(188, 36); + this.rbtTIM.Location = new System.Drawing.Point(236, 36); this.rbtTIM.Name = "rbtTIM"; this.rbtTIM.Size = new System.Drawing.Size(41, 16); this.rbtTIM.TabIndex = 14; @@ -216,7 +217,7 @@ private void InitializeComponent() // rbtQQLite // this.rbtQQLite.AutoSize = true; - this.rbtQQLite.Location = new System.Drawing.Point(237, 36); + this.rbtQQLite.Location = new System.Drawing.Point(285, 36); this.rbtQQLite.Name = "rbtQQLite"; this.rbtQQLite.Size = new System.Drawing.Size(71, 16); this.rbtQQLite.TabIndex = 18; @@ -372,11 +373,23 @@ private void InitializeComponent() this.labelNotice.TabIndex = 0; this.labelNotice.Text = "测试测试测试测试"; // + // rbtQQNT + // + this.rbtQQNT.AutoSize = true; + this.rbtQQNT.Location = new System.Drawing.Point(135, 36); + this.rbtQQNT.Name = "rbtQQNT"; + this.rbtQQNT.Size = new System.Drawing.Size(47, 16); + this.rbtQQNT.TabIndex = 24; + this.rbtQQNT.Text = "QQNT"; + this.rbtQQNT.UseVisualStyleBackColor = true; + this.rbtQQNT.CheckedChanged += new System.EventHandler(this.radioButtons_CheckedChanged); + // // FormMain // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.ClientSize = new System.Drawing.Size(490, 169); + this.Controls.Add(this.rbtQQNT); this.Controls.Add(this.panelNotice); this.Controls.Add(this.panelCategories); this.Controls.Add(this.lblCategory); @@ -445,6 +458,7 @@ private void InitializeComponent() private System.Windows.Forms.ToolTip toolTip1; private System.Windows.Forms.Panel panelNotice; private System.Windows.Forms.Label labelNotice; + private System.Windows.Forms.RadioButton rbtQQNT; } } diff --git a/RevokeMsgPatcher/FormMain.cs b/RevokeMsgPatcher/FormMain.cs index 332a21b0..bef9c022 100644 --- a/RevokeMsgPatcher/FormMain.cs +++ b/RevokeMsgPatcher/FormMain.cs @@ -22,6 +22,7 @@ public partial class FormMain : Form private QQModifier qqModifier = null; private TIMModifier timModifier = null; private QQLiteModifier qqLiteModifier = null; + private QQNTModifier qqntModifier = null; private string thisVersion; private bool needUpdate = false; @@ -42,11 +43,13 @@ public void InitModifier() qqModifier = new QQModifier(bag.Apps["QQ"]); timModifier = new TIMModifier(bag.Apps["TIM"]); qqLiteModifier = new QQLiteModifier(bag.Apps["QQLite"]); + qqntModifier = new QQNTModifier(bag.Apps["QQNT"]); rbtWechat.Tag = wechatModifier; rbtQQ.Tag = qqModifier; rbtTIM.Tag = timModifier; rbtQQLite.Tag = qqLiteModifier; + rbtQQNT.Tag = qqntModifier; // 默认微信 rbtWechat.Enabled = true; @@ -168,7 +171,7 @@ private void btnPatch_Click(object sender, EventArgs e) { DialogResult result = MessageBox.Show(@"防撤回(老) 和 防撤回带提示(新) 两个功能二选一即可! -1. 防撤回(老) 没有提示; +1. 防撤回(老) 没有提示,新版本会出现撤回自己消息不断转圈的情况(实际撤回成功); 2. 防撤回带提示(新) 有撤回提示 但是存在以下问题: a. 如果正在和对方聊天时,对方撤回了消息,那撤回提示依然不会显示,只有在左侧预览窗有显示撤回,需要切换到和别人的聊天窗再切回来才能看到撤回提示,如果是把聊天拉出单独窗口,一直不会有撤回提示。 @@ -218,7 +221,7 @@ c. 部分历史消息无法防撤回; { modifier.Patch(); ga.RequestPageView($"{enName}/{version}/patch/succ", "补丁安装成功"); - MessageBox.Show("补丁安装成功!"); + MessageBox.Show("补丁安装成功!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); } catch (BusinessException ex) { @@ -277,7 +280,16 @@ private void btnRestore_Click(object sender, EventArgs e) EnableAllButton(false); try { - bool succ = modifier.Restore(); + bool succ; + if (rbtQQNT.Checked) + { + succ = qqntModifier.Restore(); + } + else + { + succ = modifier.Restore(); + } + if (succ) { MessageBox.Show("还原成功!"); @@ -368,6 +380,7 @@ private void lblUpdatePachJson_Click(object sender, EventArgs e) tips += "支持以下版本" + Environment.NewLine; tips += " ➯ 微信:" + wechatModifier.Config.GetSupportVersionStr() + Environment.NewLine; + tips += " ➯ QQNT:" + qqntModifier.Config.GetSupportVersionStr() + Environment.NewLine; tips += " ➯ QQ:" + qqModifier.Config.GetSupportVersionStr() + Environment.NewLine; tips += " ➯ QQ轻聊版:" + qqLiteModifier.Config.GetSupportVersionStr() + Environment.NewLine; tips += " ➯ TIM:" + timModifier.Config.GetSupportVersionStr() + Environment.NewLine; @@ -406,6 +419,10 @@ private void radioButtons_CheckedChanged(object sender, EventArgs e) { modifier = (QQLiteModifier)rbtQQLite.Tag; } + else if (rbtQQNT.Checked) + { + modifier = (QQNTModifier)rbtQQNT.Tag; + } EnableAllButton(true); // 触发了 txtPath_TextChanged 方法 已经调用了 InitEditorsAndUI(txtPath.Text); @@ -433,6 +450,10 @@ private string GetCheckedRadioButtonNameEn() { return "qqlite"; } + else if (rbtQQNT.Checked) + { + return "qqnt"; + } return "none"; } diff --git a/RevokeMsgPatcher/Modifier/AppModifier.cs b/RevokeMsgPatcher/Modifier/AppModifier.cs index f3d467f5..297199fa 100644 --- a/RevokeMsgPatcher/Modifier/AppModifier.cs +++ b/RevokeMsgPatcher/Modifier/AppModifier.cs @@ -22,7 +22,11 @@ public abstract class AppModifier { protected App config; - public App Config { set { config = value; } get { return config; } } + public App Config + { + set { config = value; } + get { return config; } + } protected List editors; @@ -56,18 +60,22 @@ public void SetVersionLabelAndCategoryCategories(Label label, Panel panel) foreach (FileHexEditor editor in editors) // 多种文件 { // 精确版本匹配 - bool haven = false; - foreach (ModifyInfo modifyInfo in config.FileModifyInfos[editor.FileName]) // 多个版本信息 + if (config.FileModifyInfos != null && config.FileModifyInfos.Count > 0) { - if (editor.FileVersion == modifyInfo.Version) + bool haven = false; + foreach (ModifyInfo modifyInfo in config.FileModifyInfos[editor.FileName]) // 多个版本信息 { - haven = true; - break; + if (editor.FileVersion == modifyInfo.Version) + { + haven = true; + break; + } + } + + if (haven) + { + i++; } - } - if (haven) - { - i++; } } @@ -102,16 +110,19 @@ public void SetVersionLabelAndCategoryCategories(Label label, Panel panel) categories.Add(c); } } + // 获取已经安装过的功能类型 SortedSet replaced = ModifyFinder.FindReplacedFunction(editor.FilePath, commonModifyInfo.ReplacePatterns); foreach (string c in replaced) { installed.Add(c); } + inRange = true; break; } } + if (inRange) { j++; @@ -123,6 +134,12 @@ public void SetVersionLabelAndCategoryCategories(Label label, Panel panel) if (j == editors.Count) { label.Text = version + "(支持特征防撤回)"; + // QQNT 特殊处理 + if (config.Name == "QQNT") + { + label.Text = version + "(支持LiteLoader)"; + } + label.ForeColor = Color.LimeGreen; UIController.AddCategoryCheckBoxToPanel(panel, categories.ToArray(), installed.ToArray()); } @@ -132,7 +149,6 @@ public void SetVersionLabelAndCategoryCategories(Label label, Panel panel) label.ForeColor = Color.Red; UIController.AddMsgToPanel(panel, "无功能选项"); } - } /// @@ -146,6 +162,7 @@ public bool IsAllFilesExist(string installPath) { return false; } + int success = 0, count = 0; foreach (TargetInfo info in config.FileTargetInfos.Values) { @@ -159,6 +176,7 @@ public bool IsAllFilesExist(string installPath) } } } + if (success == count && success >= 1) { return true; @@ -189,6 +207,7 @@ public bool IsInVersionRange(string version, string start, string end) { Console.WriteLine("判断版本范围时出错:" + e.Message); } + return false; } @@ -207,6 +226,7 @@ private CommonModifyInfo FindCommonModifyInfo(FileHexEditor editor) return commonModifyInfo; } } + return null; } @@ -225,6 +245,7 @@ public bool EditorsHasCommonModifyInfos() break; } } + if (i == editors.Count) { return true; @@ -241,6 +262,8 @@ public bool EditorsHasCommonModifyInfos() /// APP安装路径 public bool InitEditors(string installPath) { + InstallPath = null; + // 初始化文件修改器 editors = new List(); foreach (TargetInfo info in config.FileTargetInfos.Values) @@ -253,11 +276,15 @@ public bool InitEditors(string installPath) editors.Add(editor); } } + if (editors.Count == 0) { MessageBox.Show("当前版本没有对应的文件修改信息,请确认补丁信息是否正常!"); return false; } + + InstallPath = installPath; + return true; } @@ -272,26 +299,30 @@ public void ValidateAndFindModifyInfo(List categories) { // 通过SHA1和文件版本判断是否可以打补丁 根据不同结果返回不同的提示 ModifyInfo matchingSHA1Before = null, matchingSHA1After = null, matchingVersion = null; - foreach (ModifyInfo modifyInfo in config.FileModifyInfos[editor.FileName]) // 多个版本信息 + if (config.FileModifyInfos != null && config.FileModifyInfos.Count > 0) { - if (modifyInfo.Name == editor.FileName) // 保险用的无用判断 + foreach (ModifyInfo modifyInfo in config.FileModifyInfos[editor.FileName]) // 多个版本信息 { - if (editor.FileSHA1 == modifyInfo.SHA1After) - { - matchingSHA1After = modifyInfo; - } - else if (editor.FileSHA1 == modifyInfo.SHA1Before) + if (modifyInfo.Name == editor.FileName) // 保险用的无用判断 { - matchingSHA1Before = modifyInfo; - } + if (editor.FileSHA1 == modifyInfo.SHA1After) + { + matchingSHA1After = modifyInfo; + } + else if (editor.FileSHA1 == modifyInfo.SHA1Before) + { + matchingSHA1Before = modifyInfo; + } - if (editor.FileVersion == modifyInfo.Version) - { - matchingVersion = modifyInfo; + if (editor.FileVersion == modifyInfo.Version) + { + matchingVersion = modifyInfo; + } } } } + // 补丁前SHA1匹配上,肯定是正确的dll if (matchingSHA1Before != null) { @@ -299,6 +330,7 @@ public void ValidateAndFindModifyInfo(List categories) editor.TargetChanges = matchingSHA1Before.Changes; continue; } + // 补丁后SHA1匹配上,肯定已经打过补丁 if (matchingSHA1After != null) { @@ -324,6 +356,7 @@ public void ValidateAndFindModifyInfo(List categories) { replacePatterns = editor.FileCommonModifyInfo.ReplacePatterns.Where(info => categories.Contains(info.Category)).ToList(); } + // 如果能顺利得到 TargetChanges 不报错则可以使用特征替换方式 editor.TargetChanges = ModifyFinder.FindChanges(editor.FilePath, replacePatterns); continue; @@ -335,6 +368,7 @@ public void ValidateAndFindModifyInfo(List categories) { throw new BusinessException("not_support", $"不支持的文件:名称 {editor.FileName} 版本 {editor.FileVersion}!"); } + // SHA1不匹配,但是版本匹配,可能dll已经被其他补丁程序修改过 if (matchingVersion != null) { @@ -357,6 +391,7 @@ public bool Patch() { throw new Exception("补丁安装失败,原因:无对应的文件修改器"); } + foreach (FileHexEditor editor in editors) { if (editor == null) @@ -364,11 +399,13 @@ public bool Patch() throw new Exception("补丁安装失败,原因:文件修改器初始化失败!"); } } + // 再备份所有文件 foreach (FileHexEditor editor in editors) { editor.Backup(); } + // 打补丁! List done = new List(); // 已经打上补丁的 try @@ -386,6 +423,8 @@ public bool Patch() done.Add(editor); } } + + AfterPatchSuccess(); } catch (Exception ex) { @@ -394,8 +433,11 @@ public bool Patch() { editor.Restore(); } + + AfterPatchFail(); throw ex; } + return true; } @@ -408,6 +450,7 @@ public bool BackupExists() return false; } } + return true; } @@ -440,6 +483,7 @@ public bool Restore() editor.Restore(); } } + return true; } else @@ -447,5 +491,9 @@ public bool Restore() throw new Exception("备份文件不存在,还原失败!"); } } + + public abstract void AfterPatchSuccess(); + + public abstract void AfterPatchFail(); } -} +} \ No newline at end of file diff --git a/RevokeMsgPatcher/Modifier/QQLiteModifier.cs b/RevokeMsgPatcher/Modifier/QQLiteModifier.cs index 1ef039e4..07577827 100644 --- a/RevokeMsgPatcher/Modifier/QQLiteModifier.cs +++ b/RevokeMsgPatcher/Modifier/QQLiteModifier.cs @@ -12,6 +12,14 @@ public QQLiteModifier(App config) this.config = config; } + public override void AfterPatchSuccess() + { + } + + public override void AfterPatchFail() + { + } + /// /// 自动寻找获取微信安装路径 /// diff --git a/RevokeMsgPatcher/Modifier/QQModifier.cs b/RevokeMsgPatcher/Modifier/QQModifier.cs index b82958bd..85f9f195 100644 --- a/RevokeMsgPatcher/Modifier/QQModifier.cs +++ b/RevokeMsgPatcher/Modifier/QQModifier.cs @@ -12,6 +12,14 @@ public QQModifier(App config) this.config = config; } + public override void AfterPatchSuccess() + { + } + + public override void AfterPatchFail() + { + } + /// /// 自动寻找获取微信安装路径 /// diff --git a/RevokeMsgPatcher/Modifier/QQNTModifier.cs b/RevokeMsgPatcher/Modifier/QQNTModifier.cs new file mode 100644 index 00000000..c6bab8c6 --- /dev/null +++ b/RevokeMsgPatcher/Modifier/QQNTModifier.cs @@ -0,0 +1,154 @@ +using RevokeMsgPatcher.Model; +using RevokeMsgPatcher.Utils; +using System; +using System.Collections.Generic; +using System.Diagnostics; +using System.IO; +using System.Text.RegularExpressions; +using System.Windows.Forms; + +namespace RevokeMsgPatcher.Modifier +{ + class QQNTModifier : AppModifier + { + public QQNTModifier(App config) + { + this.config = config; + } + + /// + /// 自动寻找获取微信安装路径 + /// + /// + public override string FindInstallPath() + { + try + { + string installPath = PathUtil.FindInstallPathFromRegistryWOW6432Node("QQ"); + if (!string.IsNullOrEmpty(installPath)) + { + installPath = Path.GetDirectoryName(installPath); + if (IsAllFilesExist(installPath)) + { + return installPath; + } + } + + installPath = PathUtil.FindInstallPathFromRegistry("QQNT"); + if (!IsAllFilesExist(installPath)) + { + List defaultPathList = PathUtil.GetDefaultInstallPaths(@"Tencent\QQNT"); + foreach (string defaultPath in defaultPathList) + { + if (IsAllFilesExist(defaultPath)) + { + return defaultPath; + } + } + } + else + { + return installPath; + } + } + catch (Exception e) + { + Console.WriteLine(e.Message); + } + + return null; + } + + /// + /// 获取整个APP的当前版本 + /// + /// + public override string GetVersion() + { + if (editors != null && editors.Count > 0) + { + foreach (FileHexEditor editor in editors) + { + if (editor.FileName == "QQ.exe") + { + return editor.FileVersion; + } + } + } + + return ""; + } + + public string GetIndexJsPath() + { + if (string.IsNullOrEmpty(InstallPath)) + { + throw new Exception("未获取到QQNT安装路径或者QQNT安装路径不合法"); + } + + string indexPath = Path.Combine(InstallPath, @"resources\app\app_launcher\index.js"); + if (!File.Exists(indexPath)) + { + throw new Exception("未找到index.js文件"); + } + + return indexPath; + } + + public string GetLiteLoaderPath() + { + return Path.Combine(Application.StartupPath, @"LiteLoaderQQNT"); + } + + public override void AfterPatchSuccess() + { + string indexPath = GetIndexJsPath(); + string content = File.ReadAllText(indexPath); + // 正则 require\(String.raw`.*`\); + string pattern = @"require\(String.raw`.*`\);"; + string liteLoaderPath = GetLiteLoaderPath(); + if (!File.Exists(liteLoaderPath)) + { + MessageBox.Show("LiteLoaderQQNT文件夹不存在,仅安装QQNT去验证补丁", "警告", MessageBoxButtons.OK, MessageBoxIcon.Warning); + return; + } + + string replacement = $"require(String.raw`{liteLoaderPath}`);"; + if (Regex.IsMatch(content, pattern)) + { + content = Regex.Replace(content, pattern, replacement); + } + else + { + content = replacement + "\n" + content; + } + + File.WriteAllText(indexPath, content); + } + + public override void AfterPatchFail() + { + try + { + string indexPath = GetIndexJsPath(); + string content = File.ReadAllText(indexPath); + string pattern = @"require\(String.raw`.*`\);\n"; + if (Regex.IsMatch(content, pattern)) + { + content = Regex.Replace(content, pattern, ""); + File.WriteAllText(indexPath, content); + } + } + catch (Exception e) + { + Debug.WriteLine(e); + } + } + + public new bool Restore() + { + AfterPatchFail(); + return base.Restore(); + } + } +} \ No newline at end of file diff --git a/RevokeMsgPatcher/Modifier/TIMModifier.cs b/RevokeMsgPatcher/Modifier/TIMModifier.cs index 37938b80..fa003523 100644 --- a/RevokeMsgPatcher/Modifier/TIMModifier.cs +++ b/RevokeMsgPatcher/Modifier/TIMModifier.cs @@ -10,6 +10,15 @@ public TIMModifier(App config) { this.config = config; } + + public override void AfterPatchSuccess() + { + } + + public override void AfterPatchFail() + { + } + /// /// 自动寻找获取微信安装路径 /// diff --git a/RevokeMsgPatcher/Modifier/WechatModifier.cs b/RevokeMsgPatcher/Modifier/WechatModifier.cs index 1a92ad7c..aa201544 100644 --- a/RevokeMsgPatcher/Modifier/WechatModifier.cs +++ b/RevokeMsgPatcher/Modifier/WechatModifier.cs @@ -14,6 +14,14 @@ public WechatModifier(App config) this.config = config; } + public override void AfterPatchSuccess() + { + } + + public override void AfterPatchFail() + { + } + /// /// 自动寻找获取微信安装路径 /// diff --git a/RevokeMsgPatcher/Properties/AssemblyInfo.cs b/RevokeMsgPatcher/Properties/AssemblyInfo.cs index 2705e635..d847cc5e 100644 --- a/RevokeMsgPatcher/Properties/AssemblyInfo.cs +++ b/RevokeMsgPatcher/Properties/AssemblyInfo.cs @@ -32,5 +32,5 @@ // 可以指定所有值,也可以使用以下所示的 "*" 预置版本号和修订号 // 方法是按如下所示使用“*”: : //[assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.7")] -[assembly: AssemblyFileVersion("1.7")] +[assembly: AssemblyVersion("1.8")] +[assembly: AssemblyFileVersion("1.8")] diff --git a/RevokeMsgPatcher/Properties/Resources.resx b/RevokeMsgPatcher/Properties/Resources.resx index 757264d0..54c0dbfc 100644 --- a/RevokeMsgPatcher/Properties/Resources.resx +++ b/RevokeMsgPatcher/Properties/Resources.resx @@ -118,6 +118,6 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - {"Apps":{"Wechat":{"Name":"WeChat","FileTargetInfos":{"WeChatWin.dll":{"Name":"WeChatWin.dll","RelativePath":"WeChatWin.dll","Memo":null,"StartVersion":"1.0.0.0","EndVersion":null},"WeChat.exe":{"Name":"WeChat.exe","RelativePath":"../WeChat.exe","Memo":null,"StartVersion":"3.7.0.0","EndVersion":"3.7.0.26"}},"FileModifyInfos":{"WeChat.exe":[],"WeChatWin.dll":[{"Name":"WeChatWin.dll","Version":"3.3.5.25","SHA1Before":"3e94753ccbc2799d98f3c741377e99bdae33b4cf","SHA1After":"ab98f83fc16674ac4911380882c79c3ca4c2fd71","Changes":[{"Position":3413977,"Content":[235]},{"Position":12159591,"Content":[235]}]},{"Name":"WeChatWin.dll","Version":"3.3.5.15","SHA1Before":"7d06e076c525aec6783e919dde4ee11ba9fdb198","SHA1After":"f22ab996a1779c2b41132d42c4fdf98c003284e0","Changes":[{"Position":3397481,"Content":[235]},{"Position":12120775,"Content":[235]}]},{"Name":"WeChatWin.dll","Version":"2.8.0.112","SHA1Before":"7497fc006f061799138aa33419280e41891a7981","SHA1After":"07e681be40af32738d59a9332fe966c83c05e455","Changes":[{"Position":2682233,"Content":[235]},{"Position":8289040,"Content":[195]}]},{"Name":"WeChatWin.dll","Version":"2.8.0.106","SHA1Before":"e772c81c8a1b79cac77b22dbe67b375fa340ba30","SHA1After":"bcbc491910f07cb995ef154a281450f2d052e90b","Changes":[{"Position":2658457,"Content":[235]},{"Position":8280416,"Content":[195]}]},{"Name":"WeChatWin.dll","Version":"2.8.0.88","SHA1Before":"b34c73e38cfec186890b58caac5fc9962377cd9b","SHA1After":"8c108e92de0b6b4d9e61ce38ab8dd339a27e505b","Changes":[{"Position":2655369,"Content":[235]},{"Position":8273280,"Content":[195]}]},{"Name":"WeChatWin.dll","Version":"2.8.0.82","SHA1Before":"c359cc1a391441d261753f2844f9156638df8631","SHA1After":"d1b4dee8f7f91e34d68501987fd0675b33fe85da","Changes":[{"Position":2645961,"Content":[235]},{"Position":8263344,"Content":[195]}]},{"Name":"WeChatWin.dll","Version":"2.7.2.78","SHA1Before":"26a5c5503f1e176676da5657c12812da8aaa0243","SHA1After":"d338215a815c09755c04949995ec3e4eab8dce60","Changes":[{"Position":2645673,"Content":[235]},{"Position":8262528,"Content":[195]}]},{"Name":"WeChatWin.dll","Version":"2.7.2.76","SHA1Before":"0003c7b2c0136a0eb2a6cfc2c694cb57b04b5517","SHA1After":"88af6055a0f4d3bdaa6f717ec8b263d4418487b6","Changes":[{"Position":2644905,"Content":[235]},{"Position":8261024,"Content":[195]}]},{"Name":"WeChatWin.dll","Version":"2.7.1.88","SHA1Before":"034059bad50dd793140952391bfa7936133e69b4","SHA1After":"dd6d80c30ca9e0ea9f7d2f1add498fc9aa4bc7a0","Changes":[{"Position":2499465,"Content":[235]},{"Position":7952304,"Content":[195]}]},{"Name":"WeChatWin.dll","Version":"2.7.1.85","SHA1Before":"de0df4e138b72460450f66c029e33f4510f5e2df","SHA1After":"fbd35720aaff3cdcfd3ff18ea503dc06450e5c99","Changes":[{"Position":2499465,"Content":[235]},{"Position":7952000,"Content":[195]}]},{"Name":"WeChatWin.dll","Version":"2.7.1.82","SHA1Before":"20e111a18872bf6c7148a897c11da26c1ec95520","SHA1After":"1e0741d325ca6b1cd2402b829a3d13a2524af617","Changes":[{"Position":2499465,"Content":[235]},{"Position":7951952,"Content":[195]}]},{"Name":"WeChatWin.dll","Version":"2.7.1.74","SHA1Before":"b1eaf7edc074a88be5d0f89230436cc2084d24d2","SHA1After":"eb3d74ccd87a09059a005f4972861898fc3de463","Changes":[{"Position":2499465,"Content":[235]},{"Position":7951696,"Content":[195]}]},{"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]}]}]},"FileCommonModifyInfos":{"WeChat.exe":[{"Name":"WeChatWin.dll","StartVersion":"3.7.0.8","EndVersion":"3.7.0.26","ReplacePatterns":[{"Search":[131,196,8,132,192,117,63,104],"Replace":[131,196,8,132,192,235,63,104],"Category":"去除校验","Tips":null,"SimilarCategories":null,"ChooseSimilarCategoriesMsg":null}]},{"Name":"WeChatWin.dll","StartVersion":"3.7.0.0","EndVersion":"3.7.0.8","ReplacePatterns":[{"Search":[133,192,117,89],"Replace":[133,192,235,89],"Category":"去除校验","Tips":null,"SimilarCategories":null,"ChooseSimilarCategoriesMsg":null}]}],"WeChatWin.dll":[{"Name":"WeChatWin.dll","StartVersion":"3.9.11.0","EndVersion":"","ReplacePatterns":[{"Search":[15,31,68,0,0,73,139,80,8,72,133,210,116,63,72,199,193],"Replace":[15,31,68,0,0,73,139,80,8,72,133,210,117,63,72,199,193],"Category":"防撤回(老)","Tips":null,"SimilarCategories":null,"ChooseSimilarCategoriesMsg":null},{"Search":[77,133,192,15,132,63,63,63,63,235,191,65,139],"Replace":[77,133,192,15,132,63,63,63,63,144,144,65,139],"Category":"防撤回带提示(新)","Tips":null,"SimilarCategories":null,"ChooseSimilarCategoriesMsg":null},{"Search":[69,50,246,76,141,37,63,63,63,63,72,133,192,15,132],"Replace":[69,50,246,76,141,37,63,63,63,63,72,133,192,144,233],"Category":"多开","Tips":null,"SimilarCategories":null,"ChooseSimilarCategoriesMsg":null}]},{"Name":"WeChatWin.dll","StartVersion":"3.9.9.0","EndVersion":"3.9.11.0","ReplacePatterns":[{"Search":[15,31,68,0,0,73,139,80,8,72,133,210,116,63,72,199,193],"Replace":[15,31,68,0,0,73,139,80,8,72,133,210,117,63,72,199,193],"Category":"防撤回(老)","Tips":null,"SimilarCategories":null,"ChooseSimilarCategoriesMsg":null},{"Search":[77,133,192,15,132,63,63,63,63,235,191,65,139],"Replace":[77,133,192,15,132,63,63,63,63,144,144,65,139],"Category":"防撤回带提示(新)","Tips":null,"SimilarCategories":null,"ChooseSimilarCategoriesMsg":null},{"Search":[1,61,183,0,0,0,15,133,63,63,63,63,72,139,207],"Replace":[1,61,183,0,0,0,144,233,63,63,63,63,72,139,207],"Category":"多开","Tips":null,"SimilarCategories":null,"ChooseSimilarCategoriesMsg":null}]},{"Name":"WeChatWin.dll","StartVersion":"3.9.6.0","EndVersion":"3.9.9.0","ReplacePatterns":[{"Search":[15,31,68,0,0,73,139,80,8,72,133,210,116,63,72,199,193],"Replace":[15,31,68,0,0,73,139,80,8,72,133,210,117,63,72,199,193],"Category":"防撤回(老)","Tips":null,"SimilarCategories":null,"ChooseSimilarCategoriesMsg":null},{"Search":[1,61,183,0,0,0,15,133,63,63,63,63,72,139,207],"Replace":[1,61,183,0,0,0,144,233,63,63,63,63,72,139,207],"Category":"多开","Tips":null,"SimilarCategories":null,"ChooseSimilarCategoriesMsg":null}]},{"Name":"WeChatWin.dll","StartVersion":"3.9.5.0","EndVersion":"3.9.6.0","ReplacePatterns":[{"Search":[15,31,68,0,0,73,139,80,8,72,133,210,116,63,72,199,193],"Replace":[15,31,68,0,0,73,139,80,8,72,133,210,117,63,72,199,193],"Category":"防撤回(老)","Tips":null,"SimilarCategories":null,"ChooseSimilarCategoriesMsg":null},{"Search":[24,1,61,183,0,0,0,15,133,63,63,63,63,72,139,207],"Replace":[24,1,61,183,0,0,0,144,233,63,63,63,63,72,139,207],"Category":"多开","Tips":null,"SimilarCategories":null,"ChooseSimilarCategoriesMsg":null}]},{"Name":"WeChatWin.dll","StartVersion":"3.9.2.0","EndVersion":"3.9.5.0","ReplacePatterns":[{"Search":[131,196,16,132,192,116,10,190,2,0,0,0,233],"Replace":[131,196,16,132,192,144,144,190,2,0,0,0,233],"Category":"防撤回(老)","Tips":null,"SimilarCategories":null,"ChooseSimilarCategoriesMsg":null},{"Search":[131,196,4,132,219,15,132,63,63,63,63,139,61],"Replace":[131,196,4,132,219,144,233,63,63,63,63,139,61],"Category":"多开","Tips":null,"SimilarCategories":null,"ChooseSimilarCategoriesMsg":null}]},{"Name":"WeChatWin.dll","StartVersion":"3.9.0.0","EndVersion":"3.9.2.0","ReplacePatterns":[{"Search":[133,192,116,50,185,63,63,63,63,138],"Replace":[133,192,235,50,185,63,63,63,63,138],"Category":"防撤回(老)","Tips":null,"SimilarCategories":null,"ChooseSimilarCategoriesMsg":null},{"Search":[195,51,192,163,63,63,63,63,195,204,204,204,204,204,204,204,204,204,204,204,204,85,139,236],"Replace":[195,51,192,163,63,63,63,63,195,204,204,204,204,204,204,204,204,204,204,204,204,195,139,236],"Category":"多开","Tips":null,"SimilarCategories":null,"ChooseSimilarCategoriesMsg":null}]},{"Name":"WeChatWin.dll","StartVersion":"3.8.1.0","EndVersion":"3.9.0.0","ReplacePatterns":[{"Search":[133,192,116,50,185,63,63,63,63,138],"Replace":[133,192,235,50,185,63,63,63,63,138],"Category":"防撤回(老)","Tips":null,"SimilarCategories":null,"ChooseSimilarCategoriesMsg":null},{"Search":[131,196,4,132,219,15,132,38,1,0,0,139,61],"Replace":[131,196,4,132,219,144,233,38,1,0,0,139,61],"Category":"多开","Tips":null,"SimilarCategories":null,"ChooseSimilarCategoriesMsg":null}]},{"Name":"WeChatWin.dll","StartVersion":"3.8.0.0","EndVersion":"3.8.1.0","ReplacePatterns":[{"Search":[133,192,116,50,185,63,63,63,63,138],"Replace":[133,192,235,50,185,63,63,63,63,138],"Category":"防撤回(老)","Tips":null,"SimilarCategories":null,"ChooseSimilarCategoriesMsg":null},{"Search":[131,196,4,128,189,223,251,255,255,0,116,88,139,61],"Replace":[131,196,4,128,189,223,251,255,255,0,235,88,139,61],"Category":"多开","Tips":null,"SimilarCategories":null,"ChooseSimilarCategoriesMsg":null}]},{"Name":"WeChatWin.dll","StartVersion":"3.7.6.0","EndVersion":"3.8.0.0","ReplacePatterns":[{"Search":[133,192,116,50,185,63,63,63,63,138],"Replace":[133,192,235,50,185,63,63,63,63,138],"Category":"防撤回(老)","Tips":null,"SimilarCategories":null,"ChooseSimilarCategoriesMsg":null},{"Search":[131,196,4,128,189,255,251,255,255,0,116,88,139,61],"Replace":[131,196,4,128,189,255,251,255,255,0,235,88,139,61],"Category":"多开","Tips":null,"SimilarCategories":null,"ChooseSimilarCategoriesMsg":null}]},{"Name":"WeChatWin.dll","StartVersion":"3.7.0.0","EndVersion":"3.7.6.0","ReplacePatterns":[{"Search":[0,133,192,116,50,185,63,63,63,63,138],"Replace":[0,133,192,235,50,185,63,63,63,63,138],"Category":"防撤回(老)","Tips":null,"SimilarCategories":null,"ChooseSimilarCategoriesMsg":null},{"Search":[128,125,242,0,106,1,116],"Replace":[128,125,242,0,106,1,235],"Category":"防撤回带提示(新)","Tips":null,"SimilarCategories":null,"ChooseSimilarCategoriesMsg":null},{"Search":[131,196,4,128,189,63,252,255,255,0,116,88,139,61],"Replace":[131,196,4,128,189,63,252,255,255,0,235,88,139,61],"Category":"多开","Tips":null,"SimilarCategories":null,"ChooseSimilarCategoriesMsg":null}]},{"Name":"WeChatWin.dll","StartVersion":"3.6.5.0","EndVersion":"3.7.0.0","ReplacePatterns":[{"Search":[0,133,192,116,50,185,63,63,63,17,138],"Replace":[0,133,192,235,50,185,63,63,63,17,138],"Category":"防撤回","Tips":null,"SimilarCategories":null,"ChooseSimilarCategoriesMsg":null},{"Search":[131,196,4,128,189,63,252,255,255,0,116,88,139,61],"Replace":[131,196,4,128,189,63,252,255,255,0,235,88,139,61],"Category":"多开","Tips":null,"SimilarCategories":null,"ChooseSimilarCategoriesMsg":null}]},{"Name":"WeChatWin.dll","StartVersion":"3.6.0.5","EndVersion":"3.6.5.0","ReplacePatterns":[{"Search":[239,0,133,192,116,50,185,63,63,63,17,138],"Replace":[239,0,133,192,235,50,185,63,63,63,17,138],"Category":"防撤回","Tips":null,"SimilarCategories":null,"ChooseSimilarCategoriesMsg":null},{"Search":[131,196,4,128,189,47,252,255,255,0,116,88,139,61],"Replace":[131,196,4,128,189,47,252,255,255,0,235,88,139,61],"Category":"多开","Tips":null,"SimilarCategories":null,"ChooseSimilarCategoriesMsg":null}]},{"Name":"WeChatWin.dll","StartVersion":"3.5.0.28","EndVersion":"3.6.0.0","ReplacePatterns":[{"Search":[237,0,133,192,116,50,185],"Replace":[237,0,51,192,116,50,185],"Category":"防撤回","Tips":null,"SimilarCategories":null,"ChooseSimilarCategoriesMsg":null},{"Search":[131,196,4,128,189,47,252,255,255,0,116,88,139,61],"Replace":[131,196,4,128,189,47,252,255,255,0,235,88,139,61],"Category":"多开","Tips":null,"SimilarCategories":null,"ChooseSimilarCategoriesMsg":null}]},{"Name":"WeChatWin.dll","StartVersion":"3.4.0.0","EndVersion":"3.5.0.0","ReplacePatterns":[{"Search":[0,133,192,116,50,185,63,63,63,17,138],"Replace":[0,133,192,235,50,185,63,63,63,17,138],"Category":"防撤回","Tips":null,"SimilarCategories":null,"ChooseSimilarCategoriesMsg":null},{"Search":[232,107,0,0,0,132,192,116,86,86,106,0],"Replace":[232,107,0,0,0,132,192,235,86,86,106,0],"Category":"多开","Tips":null,"SimilarCategories":null,"ChooseSimilarCategoriesMsg":null}]},{"Name":"WeChatWin.dll","StartVersion":"3.3.5.15","EndVersion":"3.4.0.0","ReplacePatterns":[{"Search":[0,133,192,116,50,185,63,63,149,17,138],"Replace":[0,133,192,235,50,185,63,63,149,17,138],"Category":"防撤回","Tips":null,"SimilarCategories":null,"ChooseSimilarCategoriesMsg":null},{"Search":[232,107,0,0,0,132,192,116,86,86,106,0],"Replace":[232,107,0,0,0,132,192,235,86,86,106,0],"Category":"多开","Tips":null,"SimilarCategories":null,"ChooseSimilarCategoriesMsg":null}]},{"Name":"WeChatWin.dll","StartVersion":"3.2.0.00","EndVersion":"3.3.5.00","ReplacePatterns":[{"Search":[0,133,192,116,123,139,200,232],"Replace":[0,133,192,235,123,139,200,232],"Category":"防撤回","Tips":null,"SimilarCategories":null,"ChooseSimilarCategoriesMsg":null},{"Search":[232,107,0,0,0,132,192,116,86,86,106,0],"Replace":[232,107,0,0,0,132,192,235,86,86,106,0],"Category":"多开","Tips":null,"SimilarCategories":null,"ChooseSimilarCategoriesMsg":null}]},{"Name":"WeChatWin.dll","StartVersion":"3.1.0.00","EndVersion":"3.2.0.00","ReplacePatterns":[{"Search":[0,133,192,116,123,139,200,232],"Replace":[0,133,192,235,123,139,200,232],"Category":"防撤回","Tips":null,"SimilarCategories":null,"ChooseSimilarCategoriesMsg":null},{"Search":[255,232,155,239,255,255,132,192,116,8,131],"Replace":[255,144,144,144,144,144,132,192,116,8,131],"Category":"多开","Tips":null,"SimilarCategories":null,"ChooseSimilarCategoriesMsg":null}]},{"Name":"WeChatWin.dll","StartVersion":"2.8.0.88","EndVersion":"3.1.0.00","ReplacePatterns":[{"Search":[0,133,192,116,123,139,200,232],"Replace":[0,133,192,235,123,139,200,232],"Category":"防撤回","Tips":null,"SimilarCategories":null,"ChooseSimilarCategoriesMsg":null},{"Search":[192,195,204,204,204,204,204,204,204,204,204,204,204,204,204,204,85,139,236,131,236,20,83,86,87,106,255,15,87,192,199],"Replace":[192,195,204,204,204,204,204,204,204,204,204,204,204,204,204,204,195,139,236,131,236,20,83,86,87,106,255,15,87,192,199],"Category":"多开","Tips":null,"SimilarCategories":null,"ChooseSimilarCategoriesMsg":null}]},{"Name":"WeChatWin.dll","StartVersion":"2.7.0.00","EndVersion":"2.8.0.88","ReplacePatterns":[{"Search":[0,133,192,116,50,185],"Replace":[0,133,192,235,50,185],"Category":"防撤回","Tips":null,"SimilarCategories":null,"ChooseSimilarCategoriesMsg":null},{"Search":[192,195,204,204,204,204,204,204,204,204,204,204,204,204,204,204,85,139,236,131,236,20,83,86,87,106,255,15,87,192,199],"Replace":[192,195,204,204,204,204,204,204,204,204,204,204,204,204,204,204,195,139,236,131,236,20,83,86,87,106,255,15,87,192,199],"Category":"多开","Tips":null,"SimilarCategories":null,"ChooseSimilarCategoriesMsg":null}]}]}},"QQ":{"Name":"QQ","FileTargetInfos":{"IM.dll":{"Name":"IM.dll","RelativePath":"Bin\\IM.dll","Memo":null,"StartVersion":null,"EndVersion":null}},"FileModifyInfos":{"IM.dll":[{"Name":"IM.dll","Version":"9.2.3.26592","SHA1Before":"9114e7869572b4b868afcbc8b28eae932559ec60","SHA1After":"42e15175fd53768bb48772dc69fb07a4eac5a623","Changes":[{"Position":371605,"Content":[235,9,144,144,144]},{"Position":372146,"Content":[235,9,144,144,144]},{"Position":372576,"Content":[235,8,144,144,144,144]}]},{"Name":"IM.dll","Version":"9.2.2.26569","SHA1Before":"434254e76c520789558e075af677821258536311","SHA1After":"237c9e489a97858a175f0f7c72ade4ebcbac7a69","Changes":[{"Position":371146,"Content":[235,9,144,144,144]},{"Position":371687,"Content":[235,9,144,144,144]},{"Position":372117,"Content":[235,8,144,144,144,144]}]},{"Name":"IM.dll","Version":"9.2.1.26546","SHA1Before":"8d8ea2c2cbf43f5acf8d684b153e90035352d5f5","SHA1After":"7d194dd5be03982b533d7375c93d9a72587fe28d","Changes":[{"Position":369545,"Content":[235,9,144,144,144]},{"Position":370086,"Content":[235,9,144,144,144]},{"Position":370516,"Content":[235,8,144,144,144,144]}]},{"Name":"IM.dll","Version":"9.2.0.26453","SHA1Before":"c1935ca6347b0c2a7e6108a7f8ee0643d39deb66","SHA1After":"42811188a7e7b346a6a3c1066936b98c747acaf6","Changes":[{"Position":353794,"Content":[235,9,144,144,144]},{"Position":354335,"Content":[235,9,144,144,144]},{"Position":354767,"Content":[235,8,144,144,144,144]}]},{"Name":"IM.dll","Version":"9.2.0.26389","SHA1Before":"6f8855fb80acfa456f8f69989fe949308fe4d154","SHA1After":"f6b8e05a178b9b10ba17c597fa0a44b7a2a966a8","Changes":[{"Position":356808,"Content":[235,9,144,144,144]},{"Position":357349,"Content":[235,9,144,144,144]},{"Position":357781,"Content":[235,8,144,144,144,144]}]},{"Name":"IM.dll","Version":"9.1.9.26361","SHA1Before":"022d3433d13d07a354c38816f61cb0b7ac60d3fd","SHA1After":"873a57c1fb51cdd099c8cb7108b5ab5cb4459557","Changes":[{"Position":354270,"Content":[235,9,144,144,144]},{"Position":354811,"Content":[235,9,144,144,144]},{"Position":355243,"Content":[235,8,144,144,144,144]}]},{"Name":"IM.dll","Version":"9.1.9.26346","SHA1Before":"895eb70f707b8222e6460c91492b1281e525059b","SHA1After":"0bb83990e2b5b5f23b7b43249941ff638201af54","Changes":[{"Position":354270,"Content":[235,9,144,144,144]},{"Position":354811,"Content":[235,9,144,144,144]},{"Position":355243,"Content":[235,8,144,144,144,144]}]},{"Name":"IM.dll","Version":"9.1.8.26211","SHA1Before":"a950d3cf5e8925f7775624271105ef78d9c5cb57","SHA1After":"dffc1cb87b91e6467e13c935611f2f7fd76b9a8d","Changes":[{"Position":337135,"Content":[235,9,144,144,144]},{"Position":337676,"Content":[235,9,144,144,144]},{"Position":338108,"Content":[235,8,144,144,144,144]}]},{"Name":"IM.dll","Version":"9.1.7.25980","SHA1Before":"c6632339fbe675312a70ae4620e70699c258cd36","SHA1After":"e9ddc5cc681950796fc8fe4c55f580428c890b51","Changes":[{"Position":327839,"Content":[235,9,144,144,144]},{"Position":328380,"Content":[235,9,144,144,144]},{"Position":328812,"Content":[235,8,144,144,144,144]}]},{"Name":"IM.dll","Version":"9.0.4.23786","SHA1Before":"69a714f4eadb09f1453f6f022d4adbcd801cfab8","SHA1After":"b48e77a924076b3ebdffc4af514c868c551d2bca","Changes":[{"Position":318321,"Content":[235,7,144,144,144]},{"Position":318862,"Content":[235,7,144,144,144]},{"Position":319379,"Content":[235,7,144,144,144]}]}]},"FileCommonModifyInfos":{"IM.dll":[{"Name":"IM.dll","StartVersion":"9.4.7.00000","EndVersion":"","ReplacePatterns":[{"Search":[28,233,157,0,0,0,139,69,232,141,85,236,82,137,93,236,104,63,63,63,63,139,8,80,255,81,120,133,192,121,45,141,69,12,199,69,12],"Replace":[28,233,157,0,0,0,139,69,232,141,85,236,82,137,93,236,235,9,144,144,144,139,8,80,255,81,120,133,192,121,45,141,69,12,199,69,12],"Category":"防撤回","Tips":null,"SimilarCategories":null,"ChooseSimilarCategoriesMsg":null},{"Search":[28,233,157,0,0,0,139,69,240,141,85,236,82,137,93,236,104,63,63,63,63,139,8,80,255,81,120,133,192,121,45,141,69,12,199,69,12],"Replace":[28,233,157,0,0,0,139,69,240,141,85,236,82,137,93,236,235,9,144,144,144,139,8,80,255,81,120,133,192,121,45,141,69,12,199,69,12],"Category":"防撤回","Tips":null,"SimilarCategories":null,"ChooseSimilarCategoriesMsg":null},{"Search":[139,117,20,141,77,244,131,196,32,51,255,137,125,244,139,6,81,104,63,63,63,63,86,255,80,120,133,192,121,57,141,69,12,199,69,12],"Replace":[139,117,20,141,77,244,131,196,32,51,255,137,125,244,139,6,235,8,144,144,144,144,86,255,80,120,133,192,121,57,141,69,12,199,69,12],"Category":"防撤回","Tips":null,"SimilarCategories":null,"ChooseSimilarCategoriesMsg":null}]},{"Name":"IM.dll","StartVersion":"9.1.6.00000","EndVersion":"9.4.7.00000","ReplacePatterns":[{"Search":[28,233,157,0,0,0,139,69,232,141,85,236,82,137,93,236,104,63,63,63,84,139,8,80,255,81,120,133,192,121,45,141,69,12,199,69,12],"Replace":[28,233,157,0,0,0,139,69,232,141,85,236,82,137,93,236,235,9,144,144,144,139,8,80,255,81,120,133,192,121,45,141,69,12,199,69,12],"Category":"防撤回","Tips":null,"SimilarCategories":null,"ChooseSimilarCategoriesMsg":null},{"Search":[28,233,157,0,0,0,139,69,240,141,85,236,82,137,93,236,104,63,63,63,84,139,8,80,255,81,120,133,192,121,45,141,69,12,199,69,12],"Replace":[28,233,157,0,0,0,139,69,240,141,85,236,82,137,93,236,235,9,144,144,144,139,8,80,255,81,120,133,192,121,45,141,69,12,199,69,12],"Category":"防撤回","Tips":null,"SimilarCategories":null,"ChooseSimilarCategoriesMsg":null},{"Search":[139,117,20,141,77,244,131,196,32,51,255,137,125,244,139,6,81,104,63,63,63,84,86,255,80,120,133,192,121,57,141,69,12,199,69,12],"Replace":[139,117,20,141,77,244,131,196,32,51,255,137,125,244,139,6,235,8,144,144,144,144,86,255,80,120,133,192,121,57,141,69,12,199,69,12],"Category":"防撤回","Tips":null,"SimilarCategories":null,"ChooseSimilarCategoriesMsg":null}]}]}},"TIM":{"Name":"TIM","FileTargetInfos":{"IM.dll":{"Name":"IM.dll","RelativePath":"Bin\\IM.dll","Memo":null,"StartVersion":null,"EndVersion":null}},"FileModifyInfos":{"IM.dll":[{"Name":"IM.dll","Version":"2.3.2.21173","SHA1Before":"ecf3e69f3fb100ffe2fee095ffded591b9781024","SHA1After":"0514d1304e7ac46b4d33386ec3313888f5ae7171","Changes":[{"Position":317322,"Content":[235,9,144,144,144]},{"Position":317863,"Content":[235,9,144,144,144]},{"Position":318295,"Content":[235,8,144,144,144,144]}]}]},"FileCommonModifyInfos":{"IM.dll":[{"Name":"IM.dll","StartVersion":"3.4.0.00000","EndVersion":"","ReplacePatterns":[{"Search":[28,233,157,0,0,0,139,69,232,141,85,236,82,137,93,236,104,63,63,63,63,139,8,80,255,81,120,133,192,121,45,141,69,12,199,69,12],"Replace":[28,233,157,0,0,0,139,69,232,141,85,236,82,137,93,236,235,9,144,144,144,139,8,80,255,81,120,133,192,121,45,141,69,12,199,69,12],"Category":"防撤回","Tips":null,"SimilarCategories":null,"ChooseSimilarCategoriesMsg":null},{"Search":[28,233,157,0,0,0,139,69,240,141,85,236,82,137,93,236,104,63,63,63,63,139,8,80,255,81,120,133,192,121,45,141,69,12,199,69,12],"Replace":[28,233,157,0,0,0,139,69,240,141,85,236,82,137,93,236,235,9,144,144,144,139,8,80,255,81,120,133,192,121,45,141,69,12,199,69,12],"Category":"防撤回","Tips":null,"SimilarCategories":null,"ChooseSimilarCategoriesMsg":null},{"Search":[139,117,20,141,77,244,131,196,32,51,255,137,125,244,139,6,81,104,63,63,63,63,86,255,80,120,133,192,121,57,141,69,12,199,69,12],"Replace":[139,117,20,141,77,244,131,196,32,51,255,137,125,244,139,6,235,8,144,144,144,144,86,255,80,120,133,192,121,57,141,69,12,199,69,12],"Category":"防撤回","Tips":null,"SimilarCategories":null,"ChooseSimilarCategoriesMsg":null}]},{"Name":"IM.dll","StartVersion":"3.0.0.00000","EndVersion":"3.4.0.00000","ReplacePatterns":[{"Search":[28,233,157,0,0,0,139,69,232,141,85,236,82,137,93,236,104,63,63,63,84,139,8,80,255,81,120,133,192,121,45,141,69,12,199,69,12],"Replace":[28,233,157,0,0,0,139,69,232,141,85,236,82,137,93,236,235,9,144,144,144,139,8,80,255,81,120,133,192,121,45,141,69,12,199,69,12],"Category":"防撤回","Tips":null,"SimilarCategories":null,"ChooseSimilarCategoriesMsg":null},{"Search":[28,233,157,0,0,0,139,69,240,141,85,236,82,137,93,236,104,63,63,63,84,139,8,80,255,81,120,133,192,121,45,141,69,12,199,69,12],"Replace":[28,233,157,0,0,0,139,69,240,141,85,236,82,137,93,236,235,9,144,144,144,139,8,80,255,81,120,133,192,121,45,141,69,12,199,69,12],"Category":"防撤回","Tips":null,"SimilarCategories":null,"ChooseSimilarCategoriesMsg":null},{"Search":[139,117,20,141,77,244,131,196,32,51,255,137,125,244,139,6,81,104,63,63,63,84,86,255,80,120,133,192,121,57,141,69,12,199,69,12],"Replace":[139,117,20,141,77,244,131,196,32,51,255,137,125,244,139,6,235,8,144,144,144,144,86,255,80,120,133,192,121,57,141,69,12,199,69,12],"Category":"防撤回","Tips":null,"SimilarCategories":null,"ChooseSimilarCategoriesMsg":null}]}]}},"QQLite":{"Name":"QQLite","FileTargetInfos":{"IM.dll":{"Name":"IM.dll","RelativePath":"Bin\\IM.dll","Memo":null,"StartVersion":null,"EndVersion":null}},"FileModifyInfos":{"IM.dll":[{"Name":"IM.dll","Version":"7.9.14314.0","SHA1Before":"2e97d7671963fa148a1beeda6ce4964314310593","SHA1After":"723c008fb53435ead20fa6f2e951c9a4a8ff46da","Changes":[{"Position":148741,"Content":[235,2,144,144]},{"Position":149689,"Content":[235,2,144,144]}]},{"Name":"IM.dll","Version":"7.9.14308.0","SHA1Before":"b8a7a873178706b97be11c25f13bcf09e9e578a2","SHA1After":"c5bf533c7af6996b42d1fb2a0fb3f26dfd52f8bf","Changes":[{"Position":148741,"Content":[235,2,144,144]},{"Position":149689,"Content":[235,2,144,144]}]}]},"FileCommonModifyInfos":null}},"LatestVersion":"1.7","Notice":"","NoticeUrl":"","PatchVersion":20240614} + {"Apps":{"Wechat":{"Name":"WeChat","FileTargetInfos":{"WeChatWin.dll":{"Name":"WeChatWin.dll","RelativePath":"WeChatWin.dll","Memo":null,"StartVersion":"1.0.0.0","EndVersion":null},"WeChat.exe":{"Name":"WeChat.exe","RelativePath":"../WeChat.exe","Memo":null,"StartVersion":"3.7.0.0","EndVersion":"3.7.0.26"}},"FileModifyInfos":{"WeChat.exe":[],"WeChatWin.dll":[{"Name":"WeChatWin.dll","Version":"3.3.5.25","SHA1Before":"3e94753ccbc2799d98f3c741377e99bdae33b4cf","SHA1After":"ab98f83fc16674ac4911380882c79c3ca4c2fd71","Changes":[{"Position":3413977,"Content":[235]},{"Position":12159591,"Content":[235]}]},{"Name":"WeChatWin.dll","Version":"3.3.5.15","SHA1Before":"7d06e076c525aec6783e919dde4ee11ba9fdb198","SHA1After":"f22ab996a1779c2b41132d42c4fdf98c003284e0","Changes":[{"Position":3397481,"Content":[235]},{"Position":12120775,"Content":[235]}]},{"Name":"WeChatWin.dll","Version":"2.8.0.112","SHA1Before":"7497fc006f061799138aa33419280e41891a7981","SHA1After":"07e681be40af32738d59a9332fe966c83c05e455","Changes":[{"Position":2682233,"Content":[235]},{"Position":8289040,"Content":[195]}]},{"Name":"WeChatWin.dll","Version":"2.8.0.106","SHA1Before":"e772c81c8a1b79cac77b22dbe67b375fa340ba30","SHA1After":"bcbc491910f07cb995ef154a281450f2d052e90b","Changes":[{"Position":2658457,"Content":[235]},{"Position":8280416,"Content":[195]}]},{"Name":"WeChatWin.dll","Version":"2.8.0.88","SHA1Before":"b34c73e38cfec186890b58caac5fc9962377cd9b","SHA1After":"8c108e92de0b6b4d9e61ce38ab8dd339a27e505b","Changes":[{"Position":2655369,"Content":[235]},{"Position":8273280,"Content":[195]}]},{"Name":"WeChatWin.dll","Version":"2.8.0.82","SHA1Before":"c359cc1a391441d261753f2844f9156638df8631","SHA1After":"d1b4dee8f7f91e34d68501987fd0675b33fe85da","Changes":[{"Position":2645961,"Content":[235]},{"Position":8263344,"Content":[195]}]},{"Name":"WeChatWin.dll","Version":"2.7.2.78","SHA1Before":"26a5c5503f1e176676da5657c12812da8aaa0243","SHA1After":"d338215a815c09755c04949995ec3e4eab8dce60","Changes":[{"Position":2645673,"Content":[235]},{"Position":8262528,"Content":[195]}]},{"Name":"WeChatWin.dll","Version":"2.7.2.76","SHA1Before":"0003c7b2c0136a0eb2a6cfc2c694cb57b04b5517","SHA1After":"88af6055a0f4d3bdaa6f717ec8b263d4418487b6","Changes":[{"Position":2644905,"Content":[235]},{"Position":8261024,"Content":[195]}]},{"Name":"WeChatWin.dll","Version":"2.7.1.88","SHA1Before":"034059bad50dd793140952391bfa7936133e69b4","SHA1After":"dd6d80c30ca9e0ea9f7d2f1add498fc9aa4bc7a0","Changes":[{"Position":2499465,"Content":[235]},{"Position":7952304,"Content":[195]}]},{"Name":"WeChatWin.dll","Version":"2.7.1.85","SHA1Before":"de0df4e138b72460450f66c029e33f4510f5e2df","SHA1After":"fbd35720aaff3cdcfd3ff18ea503dc06450e5c99","Changes":[{"Position":2499465,"Content":[235]},{"Position":7952000,"Content":[195]}]},{"Name":"WeChatWin.dll","Version":"2.7.1.82","SHA1Before":"20e111a18872bf6c7148a897c11da26c1ec95520","SHA1After":"1e0741d325ca6b1cd2402b829a3d13a2524af617","Changes":[{"Position":2499465,"Content":[235]},{"Position":7951952,"Content":[195]}]},{"Name":"WeChatWin.dll","Version":"2.7.1.74","SHA1Before":"b1eaf7edc074a88be5d0f89230436cc2084d24d2","SHA1After":"eb3d74ccd87a09059a005f4972861898fc3de463","Changes":[{"Position":2499465,"Content":[235]},{"Position":7951696,"Content":[195]}]},{"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]}]}]},"FileCommonModifyInfos":{"WeChat.exe":[{"Name":"WeChatWin.dll","StartVersion":"3.7.0.8","EndVersion":"3.7.0.26","ReplacePatterns":[{"Search":[131,196,8,132,192,117,63,104],"Replace":[131,196,8,132,192,235,63,104],"Category":"去除校验","Tips":null,"SimilarCategories":null,"ChooseSimilarCategoriesMsg":null}]},{"Name":"WeChatWin.dll","StartVersion":"3.7.0.0","EndVersion":"3.7.0.8","ReplacePatterns":[{"Search":[133,192,117,89],"Replace":[133,192,235,89],"Category":"去除校验","Tips":null,"SimilarCategories":null,"ChooseSimilarCategoriesMsg":null}]}],"WeChatWin.dll":[{"Name":"WeChatWin.dll","StartVersion":"3.9.11.0","EndVersion":"","ReplacePatterns":[{"Search":[15,31,68,0,0,73,139,80,8,72,133,210,116,63,72,199,193],"Replace":[15,31,68,0,0,73,139,80,8,72,133,210,117,63,72,199,193],"Category":"防撤回(老)","Tips":null,"SimilarCategories":null,"ChooseSimilarCategoriesMsg":null},{"Search":[77,133,192,15,132,63,63,63,63,235,191,65,139],"Replace":[77,133,192,15,132,63,63,63,63,144,144,65,139],"Category":"防撤回带提示(新)","Tips":null,"SimilarCategories":null,"ChooseSimilarCategoriesMsg":null},{"Search":[69,50,246,76,141,37,63,63,63,63,72,133,192,15,132],"Replace":[69,50,246,76,141,37,63,63,63,63,72,133,192,144,233],"Category":"多开","Tips":null,"SimilarCategories":null,"ChooseSimilarCategoriesMsg":null}]},{"Name":"WeChatWin.dll","StartVersion":"3.9.9.0","EndVersion":"3.9.11.0","ReplacePatterns":[{"Search":[15,31,68,0,0,73,139,80,8,72,133,210,116,63,72,199,193],"Replace":[15,31,68,0,0,73,139,80,8,72,133,210,117,63,72,199,193],"Category":"防撤回(老)","Tips":null,"SimilarCategories":null,"ChooseSimilarCategoriesMsg":null},{"Search":[77,133,192,15,132,63,63,63,63,235,191,65,139],"Replace":[77,133,192,15,132,63,63,63,63,144,144,65,139],"Category":"防撤回带提示(新)","Tips":null,"SimilarCategories":null,"ChooseSimilarCategoriesMsg":null},{"Search":[1,61,183,0,0,0,15,133,63,63,63,63,72,139,207],"Replace":[1,61,183,0,0,0,144,233,63,63,63,63,72,139,207],"Category":"多开","Tips":null,"SimilarCategories":null,"ChooseSimilarCategoriesMsg":null}]},{"Name":"WeChatWin.dll","StartVersion":"3.9.6.0","EndVersion":"3.9.9.0","ReplacePatterns":[{"Search":[15,31,68,0,0,73,139,80,8,72,133,210,116,63,72,199,193],"Replace":[15,31,68,0,0,73,139,80,8,72,133,210,117,63,72,199,193],"Category":"防撤回(老)","Tips":null,"SimilarCategories":null,"ChooseSimilarCategoriesMsg":null},{"Search":[1,61,183,0,0,0,15,133,63,63,63,63,72,139,207],"Replace":[1,61,183,0,0,0,144,233,63,63,63,63,72,139,207],"Category":"多开","Tips":null,"SimilarCategories":null,"ChooseSimilarCategoriesMsg":null}]},{"Name":"WeChatWin.dll","StartVersion":"3.9.5.0","EndVersion":"3.9.6.0","ReplacePatterns":[{"Search":[15,31,68,0,0,73,139,80,8,72,133,210,116,63,72,199,193],"Replace":[15,31,68,0,0,73,139,80,8,72,133,210,117,63,72,199,193],"Category":"防撤回(老)","Tips":null,"SimilarCategories":null,"ChooseSimilarCategoriesMsg":null},{"Search":[24,1,61,183,0,0,0,15,133,63,63,63,63,72,139,207],"Replace":[24,1,61,183,0,0,0,144,233,63,63,63,63,72,139,207],"Category":"多开","Tips":null,"SimilarCategories":null,"ChooseSimilarCategoriesMsg":null}]},{"Name":"WeChatWin.dll","StartVersion":"3.9.2.0","EndVersion":"3.9.5.0","ReplacePatterns":[{"Search":[131,196,16,132,192,116,10,190,2,0,0,0,233],"Replace":[131,196,16,132,192,144,144,190,2,0,0,0,233],"Category":"防撤回(老)","Tips":null,"SimilarCategories":null,"ChooseSimilarCategoriesMsg":null},{"Search":[131,196,4,132,219,15,132,63,63,63,63,139,61],"Replace":[131,196,4,132,219,144,233,63,63,63,63,139,61],"Category":"多开","Tips":null,"SimilarCategories":null,"ChooseSimilarCategoriesMsg":null}]},{"Name":"WeChatWin.dll","StartVersion":"3.9.0.0","EndVersion":"3.9.2.0","ReplacePatterns":[{"Search":[133,192,116,50,185,63,63,63,63,138],"Replace":[133,192,235,50,185,63,63,63,63,138],"Category":"防撤回(老)","Tips":null,"SimilarCategories":null,"ChooseSimilarCategoriesMsg":null},{"Search":[195,51,192,163,63,63,63,63,195,204,204,204,204,204,204,204,204,204,204,204,204,85,139,236],"Replace":[195,51,192,163,63,63,63,63,195,204,204,204,204,204,204,204,204,204,204,204,204,195,139,236],"Category":"多开","Tips":null,"SimilarCategories":null,"ChooseSimilarCategoriesMsg":null}]},{"Name":"WeChatWin.dll","StartVersion":"3.8.1.0","EndVersion":"3.9.0.0","ReplacePatterns":[{"Search":[133,192,116,50,185,63,63,63,63,138],"Replace":[133,192,235,50,185,63,63,63,63,138],"Category":"防撤回(老)","Tips":null,"SimilarCategories":null,"ChooseSimilarCategoriesMsg":null},{"Search":[131,196,4,132,219,15,132,38,1,0,0,139,61],"Replace":[131,196,4,132,219,144,233,38,1,0,0,139,61],"Category":"多开","Tips":null,"SimilarCategories":null,"ChooseSimilarCategoriesMsg":null}]},{"Name":"WeChatWin.dll","StartVersion":"3.8.0.0","EndVersion":"3.8.1.0","ReplacePatterns":[{"Search":[133,192,116,50,185,63,63,63,63,138],"Replace":[133,192,235,50,185,63,63,63,63,138],"Category":"防撤回(老)","Tips":null,"SimilarCategories":null,"ChooseSimilarCategoriesMsg":null},{"Search":[131,196,4,128,189,223,251,255,255,0,116,88,139,61],"Replace":[131,196,4,128,189,223,251,255,255,0,235,88,139,61],"Category":"多开","Tips":null,"SimilarCategories":null,"ChooseSimilarCategoriesMsg":null}]},{"Name":"WeChatWin.dll","StartVersion":"3.7.6.0","EndVersion":"3.8.0.0","ReplacePatterns":[{"Search":[133,192,116,50,185,63,63,63,63,138],"Replace":[133,192,235,50,185,63,63,63,63,138],"Category":"防撤回(老)","Tips":null,"SimilarCategories":null,"ChooseSimilarCategoriesMsg":null},{"Search":[131,196,4,128,189,255,251,255,255,0,116,88,139,61],"Replace":[131,196,4,128,189,255,251,255,255,0,235,88,139,61],"Category":"多开","Tips":null,"SimilarCategories":null,"ChooseSimilarCategoriesMsg":null}]},{"Name":"WeChatWin.dll","StartVersion":"3.7.0.0","EndVersion":"3.7.6.0","ReplacePatterns":[{"Search":[0,133,192,116,50,185,63,63,63,63,138],"Replace":[0,133,192,235,50,185,63,63,63,63,138],"Category":"防撤回(老)","Tips":null,"SimilarCategories":null,"ChooseSimilarCategoriesMsg":null},{"Search":[128,125,242,0,106,1,116],"Replace":[128,125,242,0,106,1,235],"Category":"防撤回带提示(新)","Tips":null,"SimilarCategories":null,"ChooseSimilarCategoriesMsg":null},{"Search":[131,196,4,128,189,63,252,255,255,0,116,88,139,61],"Replace":[131,196,4,128,189,63,252,255,255,0,235,88,139,61],"Category":"多开","Tips":null,"SimilarCategories":null,"ChooseSimilarCategoriesMsg":null}]},{"Name":"WeChatWin.dll","StartVersion":"3.6.5.0","EndVersion":"3.7.0.0","ReplacePatterns":[{"Search":[0,133,192,116,50,185,63,63,63,17,138],"Replace":[0,133,192,235,50,185,63,63,63,17,138],"Category":"防撤回","Tips":null,"SimilarCategories":null,"ChooseSimilarCategoriesMsg":null},{"Search":[131,196,4,128,189,63,252,255,255,0,116,88,139,61],"Replace":[131,196,4,128,189,63,252,255,255,0,235,88,139,61],"Category":"多开","Tips":null,"SimilarCategories":null,"ChooseSimilarCategoriesMsg":null}]},{"Name":"WeChatWin.dll","StartVersion":"3.6.0.5","EndVersion":"3.6.5.0","ReplacePatterns":[{"Search":[239,0,133,192,116,50,185,63,63,63,17,138],"Replace":[239,0,133,192,235,50,185,63,63,63,17,138],"Category":"防撤回","Tips":null,"SimilarCategories":null,"ChooseSimilarCategoriesMsg":null},{"Search":[131,196,4,128,189,47,252,255,255,0,116,88,139,61],"Replace":[131,196,4,128,189,47,252,255,255,0,235,88,139,61],"Category":"多开","Tips":null,"SimilarCategories":null,"ChooseSimilarCategoriesMsg":null}]},{"Name":"WeChatWin.dll","StartVersion":"3.5.0.28","EndVersion":"3.6.0.0","ReplacePatterns":[{"Search":[237,0,133,192,116,50,185],"Replace":[237,0,51,192,116,50,185],"Category":"防撤回","Tips":null,"SimilarCategories":null,"ChooseSimilarCategoriesMsg":null},{"Search":[131,196,4,128,189,47,252,255,255,0,116,88,139,61],"Replace":[131,196,4,128,189,47,252,255,255,0,235,88,139,61],"Category":"多开","Tips":null,"SimilarCategories":null,"ChooseSimilarCategoriesMsg":null}]},{"Name":"WeChatWin.dll","StartVersion":"3.4.0.0","EndVersion":"3.5.0.0","ReplacePatterns":[{"Search":[0,133,192,116,50,185,63,63,63,17,138],"Replace":[0,133,192,235,50,185,63,63,63,17,138],"Category":"防撤回","Tips":null,"SimilarCategories":null,"ChooseSimilarCategoriesMsg":null},{"Search":[232,107,0,0,0,132,192,116,86,86,106,0],"Replace":[232,107,0,0,0,132,192,235,86,86,106,0],"Category":"多开","Tips":null,"SimilarCategories":null,"ChooseSimilarCategoriesMsg":null}]},{"Name":"WeChatWin.dll","StartVersion":"3.3.5.15","EndVersion":"3.4.0.0","ReplacePatterns":[{"Search":[0,133,192,116,50,185,63,63,149,17,138],"Replace":[0,133,192,235,50,185,63,63,149,17,138],"Category":"防撤回","Tips":null,"SimilarCategories":null,"ChooseSimilarCategoriesMsg":null},{"Search":[232,107,0,0,0,132,192,116,86,86,106,0],"Replace":[232,107,0,0,0,132,192,235,86,86,106,0],"Category":"多开","Tips":null,"SimilarCategories":null,"ChooseSimilarCategoriesMsg":null}]},{"Name":"WeChatWin.dll","StartVersion":"3.2.0.00","EndVersion":"3.3.5.00","ReplacePatterns":[{"Search":[0,133,192,116,123,139,200,232],"Replace":[0,133,192,235,123,139,200,232],"Category":"防撤回","Tips":null,"SimilarCategories":null,"ChooseSimilarCategoriesMsg":null},{"Search":[232,107,0,0,0,132,192,116,86,86,106,0],"Replace":[232,107,0,0,0,132,192,235,86,86,106,0],"Category":"多开","Tips":null,"SimilarCategories":null,"ChooseSimilarCategoriesMsg":null}]},{"Name":"WeChatWin.dll","StartVersion":"3.1.0.00","EndVersion":"3.2.0.00","ReplacePatterns":[{"Search":[0,133,192,116,123,139,200,232],"Replace":[0,133,192,235,123,139,200,232],"Category":"防撤回","Tips":null,"SimilarCategories":null,"ChooseSimilarCategoriesMsg":null},{"Search":[255,232,155,239,255,255,132,192,116,8,131],"Replace":[255,144,144,144,144,144,132,192,116,8,131],"Category":"多开","Tips":null,"SimilarCategories":null,"ChooseSimilarCategoriesMsg":null}]},{"Name":"WeChatWin.dll","StartVersion":"2.8.0.88","EndVersion":"3.1.0.00","ReplacePatterns":[{"Search":[0,133,192,116,123,139,200,232],"Replace":[0,133,192,235,123,139,200,232],"Category":"防撤回","Tips":null,"SimilarCategories":null,"ChooseSimilarCategoriesMsg":null},{"Search":[192,195,204,204,204,204,204,204,204,204,204,204,204,204,204,204,85,139,236,131,236,20,83,86,87,106,255,15,87,192,199],"Replace":[192,195,204,204,204,204,204,204,204,204,204,204,204,204,204,204,195,139,236,131,236,20,83,86,87,106,255,15,87,192,199],"Category":"多开","Tips":null,"SimilarCategories":null,"ChooseSimilarCategoriesMsg":null}]},{"Name":"WeChatWin.dll","StartVersion":"2.7.0.00","EndVersion":"2.8.0.88","ReplacePatterns":[{"Search":[0,133,192,116,50,185],"Replace":[0,133,192,235,50,185],"Category":"防撤回","Tips":null,"SimilarCategories":null,"ChooseSimilarCategoriesMsg":null},{"Search":[192,195,204,204,204,204,204,204,204,204,204,204,204,204,204,204,85,139,236,131,236,20,83,86,87,106,255,15,87,192,199],"Replace":[192,195,204,204,204,204,204,204,204,204,204,204,204,204,204,204,195,139,236,131,236,20,83,86,87,106,255,15,87,192,199],"Category":"多开","Tips":null,"SimilarCategories":null,"ChooseSimilarCategoriesMsg":null}]}]}},"QQ":{"Name":"QQ","FileTargetInfos":{"IM.dll":{"Name":"IM.dll","RelativePath":"Bin\\IM.dll","Memo":null,"StartVersion":null,"EndVersion":null}},"FileModifyInfos":{"IM.dll":[{"Name":"IM.dll","Version":"9.2.3.26592","SHA1Before":"9114e7869572b4b868afcbc8b28eae932559ec60","SHA1After":"42e15175fd53768bb48772dc69fb07a4eac5a623","Changes":[{"Position":371605,"Content":[235,9,144,144,144]},{"Position":372146,"Content":[235,9,144,144,144]},{"Position":372576,"Content":[235,8,144,144,144,144]}]},{"Name":"IM.dll","Version":"9.2.2.26569","SHA1Before":"434254e76c520789558e075af677821258536311","SHA1After":"237c9e489a97858a175f0f7c72ade4ebcbac7a69","Changes":[{"Position":371146,"Content":[235,9,144,144,144]},{"Position":371687,"Content":[235,9,144,144,144]},{"Position":372117,"Content":[235,8,144,144,144,144]}]},{"Name":"IM.dll","Version":"9.2.1.26546","SHA1Before":"8d8ea2c2cbf43f5acf8d684b153e90035352d5f5","SHA1After":"7d194dd5be03982b533d7375c93d9a72587fe28d","Changes":[{"Position":369545,"Content":[235,9,144,144,144]},{"Position":370086,"Content":[235,9,144,144,144]},{"Position":370516,"Content":[235,8,144,144,144,144]}]},{"Name":"IM.dll","Version":"9.2.0.26453","SHA1Before":"c1935ca6347b0c2a7e6108a7f8ee0643d39deb66","SHA1After":"42811188a7e7b346a6a3c1066936b98c747acaf6","Changes":[{"Position":353794,"Content":[235,9,144,144,144]},{"Position":354335,"Content":[235,9,144,144,144]},{"Position":354767,"Content":[235,8,144,144,144,144]}]},{"Name":"IM.dll","Version":"9.2.0.26389","SHA1Before":"6f8855fb80acfa456f8f69989fe949308fe4d154","SHA1After":"f6b8e05a178b9b10ba17c597fa0a44b7a2a966a8","Changes":[{"Position":356808,"Content":[235,9,144,144,144]},{"Position":357349,"Content":[235,9,144,144,144]},{"Position":357781,"Content":[235,8,144,144,144,144]}]},{"Name":"IM.dll","Version":"9.1.9.26361","SHA1Before":"022d3433d13d07a354c38816f61cb0b7ac60d3fd","SHA1After":"873a57c1fb51cdd099c8cb7108b5ab5cb4459557","Changes":[{"Position":354270,"Content":[235,9,144,144,144]},{"Position":354811,"Content":[235,9,144,144,144]},{"Position":355243,"Content":[235,8,144,144,144,144]}]},{"Name":"IM.dll","Version":"9.1.9.26346","SHA1Before":"895eb70f707b8222e6460c91492b1281e525059b","SHA1After":"0bb83990e2b5b5f23b7b43249941ff638201af54","Changes":[{"Position":354270,"Content":[235,9,144,144,144]},{"Position":354811,"Content":[235,9,144,144,144]},{"Position":355243,"Content":[235,8,144,144,144,144]}]},{"Name":"IM.dll","Version":"9.1.8.26211","SHA1Before":"a950d3cf5e8925f7775624271105ef78d9c5cb57","SHA1After":"dffc1cb87b91e6467e13c935611f2f7fd76b9a8d","Changes":[{"Position":337135,"Content":[235,9,144,144,144]},{"Position":337676,"Content":[235,9,144,144,144]},{"Position":338108,"Content":[235,8,144,144,144,144]}]},{"Name":"IM.dll","Version":"9.1.7.25980","SHA1Before":"c6632339fbe675312a70ae4620e70699c258cd36","SHA1After":"e9ddc5cc681950796fc8fe4c55f580428c890b51","Changes":[{"Position":327839,"Content":[235,9,144,144,144]},{"Position":328380,"Content":[235,9,144,144,144]},{"Position":328812,"Content":[235,8,144,144,144,144]}]},{"Name":"IM.dll","Version":"9.0.4.23786","SHA1Before":"69a714f4eadb09f1453f6f022d4adbcd801cfab8","SHA1After":"b48e77a924076b3ebdffc4af514c868c551d2bca","Changes":[{"Position":318321,"Content":[235,7,144,144,144]},{"Position":318862,"Content":[235,7,144,144,144]},{"Position":319379,"Content":[235,7,144,144,144]}]}]},"FileCommonModifyInfos":{"IM.dll":[{"Name":"IM.dll","StartVersion":"9.4.7.00000","EndVersion":"","ReplacePatterns":[{"Search":[28,233,157,0,0,0,139,69,232,141,85,236,82,137,93,236,104,63,63,63,63,139,8,80,255,81,120,133,192,121,45,141,69,12,199,69,12],"Replace":[28,233,157,0,0,0,139,69,232,141,85,236,82,137,93,236,235,9,144,144,144,139,8,80,255,81,120,133,192,121,45,141,69,12,199,69,12],"Category":"防撤回","Tips":null,"SimilarCategories":null,"ChooseSimilarCategoriesMsg":null},{"Search":[28,233,157,0,0,0,139,69,240,141,85,236,82,137,93,236,104,63,63,63,63,139,8,80,255,81,120,133,192,121,45,141,69,12,199,69,12],"Replace":[28,233,157,0,0,0,139,69,240,141,85,236,82,137,93,236,235,9,144,144,144,139,8,80,255,81,120,133,192,121,45,141,69,12,199,69,12],"Category":"防撤回","Tips":null,"SimilarCategories":null,"ChooseSimilarCategoriesMsg":null},{"Search":[139,117,20,141,77,244,131,196,32,51,255,137,125,244,139,6,81,104,63,63,63,63,86,255,80,120,133,192,121,57,141,69,12,199,69,12],"Replace":[139,117,20,141,77,244,131,196,32,51,255,137,125,244,139,6,235,8,144,144,144,144,86,255,80,120,133,192,121,57,141,69,12,199,69,12],"Category":"防撤回","Tips":null,"SimilarCategories":null,"ChooseSimilarCategoriesMsg":null}]},{"Name":"IM.dll","StartVersion":"9.1.6.00000","EndVersion":"9.4.7.00000","ReplacePatterns":[{"Search":[28,233,157,0,0,0,139,69,232,141,85,236,82,137,93,236,104,63,63,63,84,139,8,80,255,81,120,133,192,121,45,141,69,12,199,69,12],"Replace":[28,233,157,0,0,0,139,69,232,141,85,236,82,137,93,236,235,9,144,144,144,139,8,80,255,81,120,133,192,121,45,141,69,12,199,69,12],"Category":"防撤回","Tips":null,"SimilarCategories":null,"ChooseSimilarCategoriesMsg":null},{"Search":[28,233,157,0,0,0,139,69,240,141,85,236,82,137,93,236,104,63,63,63,84,139,8,80,255,81,120,133,192,121,45,141,69,12,199,69,12],"Replace":[28,233,157,0,0,0,139,69,240,141,85,236,82,137,93,236,235,9,144,144,144,139,8,80,255,81,120,133,192,121,45,141,69,12,199,69,12],"Category":"防撤回","Tips":null,"SimilarCategories":null,"ChooseSimilarCategoriesMsg":null},{"Search":[139,117,20,141,77,244,131,196,32,51,255,137,125,244,139,6,81,104,63,63,63,84,86,255,80,120,133,192,121,57,141,69,12,199,69,12],"Replace":[139,117,20,141,77,244,131,196,32,51,255,137,125,244,139,6,235,8,144,144,144,144,86,255,80,120,133,192,121,57,141,69,12,199,69,12],"Category":"防撤回","Tips":null,"SimilarCategories":null,"ChooseSimilarCategoriesMsg":null}]}]}},"TIM":{"Name":"TIM","FileTargetInfos":{"IM.dll":{"Name":"IM.dll","RelativePath":"Bin\\IM.dll","Memo":null,"StartVersion":null,"EndVersion":null}},"FileModifyInfos":{"IM.dll":[{"Name":"IM.dll","Version":"2.3.2.21173","SHA1Before":"ecf3e69f3fb100ffe2fee095ffded591b9781024","SHA1After":"0514d1304e7ac46b4d33386ec3313888f5ae7171","Changes":[{"Position":317322,"Content":[235,9,144,144,144]},{"Position":317863,"Content":[235,9,144,144,144]},{"Position":318295,"Content":[235,8,144,144,144,144]}]}]},"FileCommonModifyInfos":{"IM.dll":[{"Name":"IM.dll","StartVersion":"3.4.0.00000","EndVersion":"","ReplacePatterns":[{"Search":[28,233,157,0,0,0,139,69,232,141,85,236,82,137,93,236,104,63,63,63,63,139,8,80,255,81,120,133,192,121,45,141,69,12,199,69,12],"Replace":[28,233,157,0,0,0,139,69,232,141,85,236,82,137,93,236,235,9,144,144,144,139,8,80,255,81,120,133,192,121,45,141,69,12,199,69,12],"Category":"防撤回","Tips":null,"SimilarCategories":null,"ChooseSimilarCategoriesMsg":null},{"Search":[28,233,157,0,0,0,139,69,240,141,85,236,82,137,93,236,104,63,63,63,63,139,8,80,255,81,120,133,192,121,45,141,69,12,199,69,12],"Replace":[28,233,157,0,0,0,139,69,240,141,85,236,82,137,93,236,235,9,144,144,144,139,8,80,255,81,120,133,192,121,45,141,69,12,199,69,12],"Category":"防撤回","Tips":null,"SimilarCategories":null,"ChooseSimilarCategoriesMsg":null},{"Search":[139,117,20,141,77,244,131,196,32,51,255,137,125,244,139,6,81,104,63,63,63,63,86,255,80,120,133,192,121,57,141,69,12,199,69,12],"Replace":[139,117,20,141,77,244,131,196,32,51,255,137,125,244,139,6,235,8,144,144,144,144,86,255,80,120,133,192,121,57,141,69,12,199,69,12],"Category":"防撤回","Tips":null,"SimilarCategories":null,"ChooseSimilarCategoriesMsg":null}]},{"Name":"IM.dll","StartVersion":"3.0.0.00000","EndVersion":"3.4.0.00000","ReplacePatterns":[{"Search":[28,233,157,0,0,0,139,69,232,141,85,236,82,137,93,236,104,63,63,63,84,139,8,80,255,81,120,133,192,121,45,141,69,12,199,69,12],"Replace":[28,233,157,0,0,0,139,69,232,141,85,236,82,137,93,236,235,9,144,144,144,139,8,80,255,81,120,133,192,121,45,141,69,12,199,69,12],"Category":"防撤回","Tips":null,"SimilarCategories":null,"ChooseSimilarCategoriesMsg":null},{"Search":[28,233,157,0,0,0,139,69,240,141,85,236,82,137,93,236,104,63,63,63,84,139,8,80,255,81,120,133,192,121,45,141,69,12,199,69,12],"Replace":[28,233,157,0,0,0,139,69,240,141,85,236,82,137,93,236,235,9,144,144,144,139,8,80,255,81,120,133,192,121,45,141,69,12,199,69,12],"Category":"防撤回","Tips":null,"SimilarCategories":null,"ChooseSimilarCategoriesMsg":null},{"Search":[139,117,20,141,77,244,131,196,32,51,255,137,125,244,139,6,81,104,63,63,63,84,86,255,80,120,133,192,121,57,141,69,12,199,69,12],"Replace":[139,117,20,141,77,244,131,196,32,51,255,137,125,244,139,6,235,8,144,144,144,144,86,255,80,120,133,192,121,57,141,69,12,199,69,12],"Category":"防撤回","Tips":null,"SimilarCategories":null,"ChooseSimilarCategoriesMsg":null}]}]}},"QQLite":{"Name":"QQLite","FileTargetInfos":{"IM.dll":{"Name":"IM.dll","RelativePath":"Bin\\IM.dll","Memo":null,"StartVersion":null,"EndVersion":null}},"FileModifyInfos":{"IM.dll":[{"Name":"IM.dll","Version":"7.9.14314.0","SHA1Before":"2e97d7671963fa148a1beeda6ce4964314310593","SHA1After":"723c008fb53435ead20fa6f2e951c9a4a8ff46da","Changes":[{"Position":148741,"Content":[235,2,144,144]},{"Position":149689,"Content":[235,2,144,144]}]},{"Name":"IM.dll","Version":"7.9.14308.0","SHA1Before":"b8a7a873178706b97be11c25f13bcf09e9e578a2","SHA1After":"c5bf533c7af6996b42d1fb2a0fb3f26dfd52f8bf","Changes":[{"Position":148741,"Content":[235,2,144,144]},{"Position":149689,"Content":[235,2,144,144]}]}]},"FileCommonModifyInfos":null},"QQNT":{"Name":"QQNT","FileTargetInfos":{"QQ.exe":{"Name":"QQ.exe","RelativePath":"QQ.exe","Memo":null,"StartVersion":null,"EndVersion":null}},"FileModifyInfos":null,"FileCommonModifyInfos":{"QQ.exe":[{"Name":"QQ.exe","StartVersion":"9.9.10.00000","EndVersion":"","ReplacePatterns":[{"Search":[72,137,206,72,139,17,76,139,65,8,73,41,208,72,139,73,24,232,63,63,63,63],"Replace":[72,137,206,72,139,17,76,139,65,8,73,41,208,72,139,73,24,184,1,0,0,0],"Category":"LiteLoaderQQNT+插件列表+防撤回","Tips":null,"SimilarCategories":null,"ChooseSimilarCategoriesMsg":null}]}]}}},"LatestVersion":"1.8","Notice":"","NoticeUrl":"","PatchVersion":20240615} \ No newline at end of file diff --git a/RevokeMsgPatcher/RevokeMsgPatcher.csproj b/RevokeMsgPatcher/RevokeMsgPatcher.csproj index 9278c197..50d4c00b 100644 --- a/RevokeMsgPatcher/RevokeMsgPatcher.csproj +++ b/RevokeMsgPatcher/RevokeMsgPatcher.csproj @@ -81,6 +81,7 @@ + diff --git a/RevokeMsgPatcher/Utils/PathUtil.cs b/RevokeMsgPatcher/Utils/PathUtil.cs index b5d885ad..258f3333 100644 --- a/RevokeMsgPatcher/Utils/PathUtil.cs +++ b/RevokeMsgPatcher/Utils/PathUtil.cs @@ -57,6 +57,30 @@ public static string FindInstallPathFromRegistry(string uninstallKeyName) return null; } + + public static string FindInstallPathFromRegistryWOW6432Node(string uninstallKeyName) + { + try + { + RegistryKey key = Registry.LocalMachine.OpenSubKey($@"SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\{uninstallKeyName}"); + if (key == null) + { + return null; + } + object installLocation = key.GetValue("UninstallString"); + key.Close(); + if (installLocation != null && !string.IsNullOrEmpty(installLocation.ToString())) + { + return installLocation.ToString(); + } + } + catch (Exception e) + { + Console.WriteLine(e.Message); + } + return null; + } + /// /// 获取所有可能的默认安装路径 ///