private static byte GetCheckSum(byte[] buff, int len)
for (var i = 0; i < len; i++)
var val = (byte)(0 - sum);
public static void Main()
var bytes = Convert.FromHexString("7E0100E9008120620000000000000200000058F27F61504B03041400000008000000215083F43B7BD42F00003DC400001800000047656E65726963436C6944657363726970746F722E786D6CE57D6B73DBB896E0F7A99AFF80EDAAAD38B57622C9AF247BBD55B6FC52B5656B2C25B9B75229174D41122712C921293F7A67FEFB9E0700021448C94E6EEFDDBBFDA163012070001C1C9C37FED24D168B201E5F4579F1BFFEF55F84F88B2A10D1F8E8B7D66F225CC0BF17B2F822B33C4AE2DFC44CCE532A11DDAB9E78D0C5519C2E8BA3DF7E13C9B2A0BFBE7D7BA3BE79B32DDE5CBDF9FEFDB7F7AB2300");
var cs = GetCheckSum(bytes, bytes.Length);
var result = 0x11 == cs ? "Good" : "Bad";
Console.WriteLine(result);