public static byte[] TlvPackage(string LoginType = "") { var bytes = new byte[0]; if (LoginType == "AndroidQQ") { bytes = new byte[] { 0, 9, 0, 24 }; //24个包 bytes = bytes.Concat(TLV.tlv018(API.QQ.user)).ToArray(); bytes = bytes.Concat(TLV.tlv001(API.QQ.user, API.QQ.login_Time)).ToArray(); bytes = bytes.Concat(TLV.tlv106(API.QQ.user, API.QQ.md5_1, API.QQ.md5_2, API.QQ.TGTKey, API.Device.GUIDBytes, API.QQ.login_Time, API.QQ.Appid, API.QQ.UTF8)).ToArray(); bytes = bytes.Concat(TLV.tlv116(0)).ToArray(); bytes = bytes.Concat(TLV.tlv100(API.QQ.Appid.ToString())).ToArray(); bytes = bytes.Concat(TLV.tlv107()).ToArray(); if (API.UN_Tlv.T108_ksid.Length > 0) { bytes = bytes.Concat(TLV.tlv108(API.UN_Tlv.T108_ksid)).ToArray(); } bytes = bytes.Concat(TLV.tlv142()).ToArray(); bytes = bytes.Concat(TLV.tlv144(API.QQ.TGTKey, TLV.tlv109(API.Device.AndroidID), TLV.tlv52D(), TLV.tlv124(API.Device.os_type, API.Device.os_version, API.Device.network_type.ToString(), API.Device.apn), TLV.tlv128(API.Device.model, API.Device.GUIDBytes, API.Device.brands), TLV.tlv16e(API.Device.model))).ToArray(); bytes = bytes.Concat(TLV.tlv145(API.Device.GUIDBytes)).ToArray(); bytes = bytes.Concat(TLV.tlv147(API.Device.Apk_V, API.Device.ApkSig)).ToArray(); bytes = bytes.Concat(TLV.tlv154(API.QQ.mRequestID)).ToArray(); bytes = bytes.Concat(TLV.tlv141(API.Device.network_type.ToString(), API.Device.apn)).ToArray(); bytes = bytes.Concat(TLV.tlv008()).ToArray(); bytes = bytes.Concat(TLV.tlv511()).ToArray(); bytes = bytes.Concat(TLV.tlv187(API.Device.MacBytes)).ToArray(); bytes = bytes.Concat(TLV.tlv188(API.Device.AndroidID)).ToArray(); bytes = bytes.Concat(TLV.tlv194(API.Device.Imsi)).ToArray(); bytes = bytes.Concat(TLV.tlv191()).ToArray(); bytes = bytes.Concat(TLV.tlv202(API.Device.WIFIByteSSID, API.Device.WIFISSID)).ToArray(); bytes = bytes.Concat(TLV.tlv177(API.QQ.login_Time)).ToArray(); bytes = bytes.Concat(TLV.tlv516()).ToArray(); bytes = bytes.Concat(TLV.tlv521()).ToArray(); bytes = bytes.Concat(TLV.tlv525(1, API.QQ.login_Time, API.QQ.Appid)).ToArray(); bytes = bytes.Concat(TLV.tlv544()).ToArray(); } else if (LoginType == "HDQQ") { bytes = new byte[] { 0, 9, 0, 0x18 }; bytes = bytes.Concat(TLV.tlv018(API.QQ.user)).ToArray(); bytes = bytes.Concat(TLV.tlv001(API.QQ.user, API.QQ.login_Time)).ToArray(); bytes = bytes.Concat(TLV.tlv106(API.QQ.user, API.QQ.md5_1, API.QQ.md5_2, API.QQ.TGTKey, API.Device.GUIDBytes, API.QQ.login_Time, (int)API.Device.AppId, API.QQ.UTF8)).ToArray(); bytes = bytes.Concat(TLV.tlv116(0)).ToArray(); bytes = bytes.Concat(TLV.tlv100(API.QQ.Appid.ToString())).ToArray(); bytes = bytes.Concat(TLV.tlv107()).ToArray(); if (API.UN_Tlv.T108_ksid.Length > 0) { bytes = bytes.Concat(TLV.tlv108(API.UN_Tlv.T108_ksid)).ToArray(); } bytes = bytes.Concat(TLV.tlv142()).ToArray(); bytes = bytes.Concat(TLV.tlv144(API.QQ.TGTKey, TLV.tlv109(API.Device.AndroidID), TLV.tlv52D(), TLV.tlv124(API.Device.os_type, API.Device.os_version, API.Device.network_type.ToString(), API.Device.apn), TLV.tlv128(API.Device.model, API.Device.GUIDBytes, API.Device.brands), TLV.tlv16e(API.Device.model))).ToArray(); bytes = bytes.Concat(TLV.tlv145(API.Device.GUIDBytes)).ToArray(); bytes = bytes.Concat(TLV.tlv147(API.Device.Apk_V, API.Device.ApkSig)).ToArray(); bytes = bytes.Concat(TLV.tlv154(API.QQ.mRequestID)).ToArray(); bytes = bytes.Concat(TLV.tlv141(API.Device.network_type.ToString(), API.Device.apn)).ToArray(); bytes = bytes.Concat(TLV.tlv008()).ToArray(); bytes = bytes.Concat(TLV.tlv511()).ToArray(); bytes = bytes.Concat(TLV.tlv187(API.Device.MacBytes)).ToArray(); bytes = bytes.Concat(TLV.tlv188(API.Device.AndroidID)).ToArray(); bytes = bytes.Concat(TLV.tlv194(API.Device.Imsi)).ToArray(); bytes = bytes.Concat(TLV.tlv191()).ToArray(); bytes = bytes.Concat(TLV.tlv202(API.Device.WIFIByteSSID, API.Device.WIFISSID)).ToArray(); // BSSID MD5 WIFISSID/NAME bytes = bytes.Concat(TLV.tlv177(API.QQ.login_Time)).ToArray(); bytes = bytes.Concat(TLV.tlv516()).ToArray(); bytes = bytes.Concat(TLV.tlv521()).ToArray(); bytes = bytes.Concat(TLV.tlv525(1, API.QQ.login_Time, API.QQ.Appid)).ToArray(); } else if (LoginType == "企业QQ") { bytes = new byte[] { 0, 9, 0, 0x16 }; bytes = bytes.Concat(TLV.tlv018(API.QQ.user)).ToArray(); bytes = bytes.Concat(TLV.tlv001(API.QQ.user, API.QQ.login_Time)).ToArray(); bytes = bytes.Concat(TLV.tlv106(API.QQ.user, API.QQ.md5_1, API.QQ.md5_2, API.QQ.TGTKey, API.Device.GUIDBytes, API.QQ.login_Time, (int)API.Device.AppId, API.QQ.UTF8)).ToArray(); bytes = bytes.Concat(TLV.tlv116(0)).ToArray(); bytes = bytes.Concat(TLV.tlv100(API.QQ.Appid.ToString())).ToArray(); bytes = bytes.Concat(TLV.tlv107()).ToArray(); if (API.UN_Tlv.T108_ksid.Length > 0) { bytes = bytes.Concat(TLV.tlv108(API.UN_Tlv.T108_ksid)).ToArray(); } bytes = bytes.Concat(TLV.tlv144(API.QQ.TGTKey, TLV.tlv109(API.Device.AndroidID), TLV.tlv52D(), TLV.tlv124(API.Device.os_type, API.Device.os_version, API.Device.network_type.ToString(), API.Device.apn), TLV.tlv128(API.Device.model, API.Device.GUIDBytes, API.Device.brands), TLV.tlv16e(API.Device.model))).ToArray(); bytes = bytes.Concat(TLV.tlv142()).ToArray(); bytes = bytes.Concat(TLV.tlv145(API.Device.GUIDBytes)).ToArray(); bytes = bytes.Concat(TLV.tlv154(API.QQ.mRequestID)).ToArray(); bytes = bytes.Concat(TLV.tlv141(API.Device.network_type.ToString(), API.Device.apn)).ToArray(); bytes = bytes.Concat(TLV.tlv008()).ToArray(); bytes = bytes.Concat(TLV.tlv106(API.QQ.user, API.QQ.md5_1, API.QQ.md5_2, API.QQ.TGTKey, API.Device.GUIDBytes, API.QQ.login_Time, (int)API.Device.AppId, API.QQ.UTF8)).ToArray(); bytes = bytes.Concat(TLV.tlv147(API.Device.Apk_V, API.Device.ApkSig)).ToArray(); bytes = bytes.Concat(TLV.tlv177(API.QQ.login_Time)).ToArray(); bytes = bytes.Concat(TLV.tlv187(API.Device.MacBytes)).ToArray(); bytes = bytes.Concat(TLV.tlv188(API.Device.AndroidID)).ToArray(); bytes = bytes.Concat(TLV.tlv191()).ToArray(); bytes = bytes.Concat(TLV.tlv202(API.Device.WIFIByteSSID, API.Device.WIFISSID)).ToArray(); bytes = bytes.Concat(TLV.tlv194(API.Device.Imsi)).ToArray(); bytes = bytes.Concat(TLV.tlv511()).ToArray(); } else if (LoginType == "企点QQ") { bytes = new byte[] { 0, 9, 0, 0x16 }; bytes = bytes.Concat(TLV.tlv018(API.QQ.user)).ToArray(); bytes = bytes.Concat(TLV.tlv001(API.QQ.user, API.QQ.login_Time)).ToArray(); bytes = bytes.Concat(TLV.tlv106(API.QQ.user, API.QQ.md5_1, API.QQ.md5_2, API.QQ.TGTKey, API.Device.GUIDBytes, API.QQ.login_Time, API.QQ.Appid, API.QQ.UTF8)).ToArray(); bytes = bytes.Concat(TLV.tlv116(0)).ToArray(); bytes = bytes.Concat(TLV.tlv100(API.QQ.Appid.ToString())).ToArray(); bytes = bytes.Concat(TLV.tlv107()).ToArray(); if (API.UN_Tlv.T108_ksid.Length > 0) { bytes = bytes.Concat(TLV.tlv108(API.UN_Tlv.T108_ksid)).ToArray(); } bytes = bytes.Concat(TLV.tlv142()).ToArray(); bytes = bytes.Concat(TLV.tlv144(API.QQ.TGTKey, TLV.tlv109(API.Device.AndroidID), TLV.tlv52D(), TLV.tlv124(API.Device.os_type, API.Device.os_version, API.Device.network_type.ToString(), API.Device.apn), TLV.tlv128(API.Device.model, API.Device.GUIDBytes, API.Device.brands), TLV.tlv16e(API.Device.model))).ToArray(); bytes = bytes.Concat(TLV.tlv145(API.Device.GUIDBytes)).ToArray(); bytes = bytes.Concat(TLV.tlv147(API.Device.Apk_V, API.Device.ApkSig)).ToArray(); bytes = bytes.Concat(TLV.tlv154(API.QQ.mRequestID)).ToArray(); bytes = bytes.Concat(TLV.tlv141(API.Device.network_type.ToString(), API.Device.apn)).ToArray(); bytes = bytes.Concat(TLV.tlv008()).ToArray(); bytes = bytes.Concat(TLV.tlv511()).ToArray(); bytes = bytes.Concat(TLV.tlv187(API.Device.MacBytes)).ToArray(); bytes = bytes.Concat(TLV.tlv188(API.Device.AndroidID)).ToArray(); bytes = bytes.Concat(TLV.tlv191()).ToArray(); bytes = bytes.Concat(TLV.tlv202(API.Device.WIFIByteSSID, API.Device.WIFISSID)).ToArray(); bytes = bytes.Concat(TLV.tlv177(API.QQ.login_Time)).ToArray(); bytes = bytes.Concat(TLV.tlv516()).ToArray(); bytes = bytes.Concat(TLV.tlv194(API.Device.Imsi)).ToArray(); } else { bytes = new byte[] { 0, 9, 0, 0x18 }; bytes = bytes.Concat(TLV.tlv018(API.QQ.user)).ToArray(); bytes = bytes.Concat(TLV.tlv001(API.QQ.user, API.QQ.login_Time)).ToArray(); bytes = bytes.Concat(TLV.tlv106(API.QQ.user, API.QQ.md5_1, API.QQ.md5_2, API.QQ.TGTKey, API.Device.GUIDBytes, API.QQ.login_Time, (int)API.Device.AppId, API.QQ.UTF8)).ToArray(); bytes = bytes.Concat(TLV.tlv116(0)).ToArray(); bytes = bytes.Concat(TLV.tlv100(API.QQ.Appid.ToString())).ToArray(); bytes = bytes.Concat(TLV.tlv107()).ToArray(); if (API.UN_Tlv.T108_ksid.Length > 0) { bytes = bytes.Concat(TLV.tlv108(API.UN_Tlv.T108_ksid)).ToArray(); } bytes = bytes.Concat(TLV.tlv142()).ToArray(); bytes = bytes.Concat(TLV.tlv144(API.QQ.TGTKey, TLV.tlv109(API.Device.AndroidID), TLV.tlv52D(), TLV.tlv124(API.Device.os_type, API.Device.os_version, API.Device.network_type.ToString(), API.Device.apn), TLV.tlv128(API.Device.model, API.Device.GUIDBytes, API.Device.brands), TLV.tlv16e(API.Device.model))).ToArray(); bytes = bytes.Concat(TLV.tlv145(API.Device.GUIDBytes)).ToArray(); bytes = bytes.Concat(TLV.tlv147(API.Device.Apk_V, API.Device.ApkSig)).ToArray(); bytes = bytes.Concat(TLV.tlv154(API.QQ.mRequestID)).ToArray(); bytes = bytes.Concat(TLV.tlv141(API.Device.network_type.ToString(), API.Device.apn)).ToArray(); bytes = bytes.Concat(TLV.tlv008()).ToArray(); bytes = bytes.Concat(TLV.tlv511()).ToArray(); bytes = bytes.Concat(TLV.tlv187(API.Device.MacBytes)).ToArray(); bytes = bytes.Concat(TLV.tlv188(API.Device.AndroidID)).ToArray(); bytes = bytes.Concat(TLV.tlv194(API.Device.Imsi)).ToArray(); bytes = bytes.Concat(TLV.tlv191()).ToArray(); bytes = bytes.Concat(TLV.tlv202(API.Device.WIFIByteSSID, API.Device.WIFISSID)).ToArray(); // BSSID MD5 WIFISSID/NAME bytes = bytes.Concat(TLV.tlv177(API.QQ.login_Time)).ToArray(); bytes = bytes.Concat(TLV.tlv516()).ToArray(); bytes = bytes.Concat(TLV.tlv521()).ToArray(); bytes = bytes.Concat(TLV.tlv525(1, API.QQ.login_Time, API.QQ.Appid)).ToArray(); } HashTea Hash = new HashTea(); bytes = Hash.HashTEA(bytes, API.QQ.shareKey, 0, true); return(bytes); }