Commit a6959672 authored by Him188moe's avatar Him188moe

update

parent 3e451344
...@@ -10,7 +10,7 @@ import java.io.IOException ...@@ -10,7 +10,7 @@ import java.io.IOException
* @author Him188moe @ Mirai Project * @author Him188moe @ Mirai Project
*/ */
@ExperimentalUnsignedTypes @ExperimentalUnsignedTypes
@PacketId(0x08_25_31_02) @PacketId("08 25 31 02")
class Client0825ResponsePacket(private val serverIP: String, private val qq: Int) : ClientPacket() { class Client0825ResponsePacket(private val serverIP: String, private val qq: Int) : ClientPacket() {
@ExperimentalUnsignedTypes @ExperimentalUnsignedTypes
override fun encode() { override fun encode() {
......
...@@ -14,10 +14,15 @@ import java.net.InetAddress ...@@ -14,10 +14,15 @@ import java.net.InetAddress
*/ */
@PacketId("08 36") @PacketId("08 36")
@ExperimentalUnsignedTypes @ExperimentalUnsignedTypes
class Client0836_622Packet(private val qq: Int, private val password: String, private val tgtgtKey: ByteArray, private val seq: String, private val token0825: ByteArray) : ClientPacket() { class Client0836_622Packet(private val qq: Int, private val password: String, private val loginTime: ByteArray, private val loginIP: ByteArray, private val tgtgtKey: ByteArray, private val seq: String, private val token0825: ByteArray) : ClientPacket() {
@ExperimentalUnsignedTypes @ExperimentalUnsignedTypes
override fun encode() { override fun encode() {
this.writeHex(seq)
this.writeQQ(qq)
this.writeHex(Protocol._0836_622_fix1)
this.writeHex(Protocol.publicKey)
this.writeHex("00 00 00 10")
this.writeHex(Protocol._0836key1)
//TEA 加密 //TEA 加密
this.write(TEACryptor.encrypt(object : ClientPacket() { this.write(TEACryptor.encrypt(object : ClientPacket() {
...@@ -37,7 +42,7 @@ class Client0836_622Packet(private val qq: Int, private val password: String, pr ...@@ -37,7 +42,7 @@ class Client0836_622Packet(private val qq: Int, private val password: String, pr
this.writeQQ(qq) this.writeQQ(qq)
this.writeHex("00 06")//tag this.writeHex("00 06")//tag
this.writeHex("00 78")//length this.writeHex("00 78")//length
this.writeTLV0006(qq, password) this.writeTLV0006(qq, password, loginTime, loginIP, tgtgtKey)
//fix //fix
this.writeHex(Protocol._0836_622_fix2) this.writeHex(Protocol._0836_622_fix2)
this.writeHex("00 1A")//tag this.writeHex("00 1A")//tag
...@@ -88,7 +93,7 @@ class Client0836_622Packet(private val qq: Int, private val password: String, pr ...@@ -88,7 +93,7 @@ class Client0836_622Packet(private val qq: Int, private val password: String, pr
writeLong(getCrc32(it))//todo may be int? check that. writeLong(getCrc32(it))//todo may be int? check that.
} }
} }
}.encodeToByteArray(), Protocol.redirectionKey.hexToBytes())) }.encodeToByteArray(), Protocol.shareKey.hexToBytes()))
} }
......
...@@ -8,7 +8,8 @@ import java.io.IOException ...@@ -8,7 +8,8 @@ import java.io.IOException
/** /**
* @author Him188moe @ Mirai Project * @author Him188moe @ Mirai Project
*/ */
@PacketId(0x00_58) @ExperimentalUnsignedTypes
@PacketId("00 58")
class ClientHeartbeatPacket : ClientPacket() { class ClientHeartbeatPacket : ClientPacket() {
var qq: Int = 0 var qq: Int = 0
var sessionKey: ByteArray? = null//登录后获得 var sessionKey: ByteArray? = null//登录后获得
......
...@@ -11,7 +11,7 @@ import java.io.IOException ...@@ -11,7 +11,7 @@ import java.io.IOException
* @author Him188moe @ Mirai Project * @author Him188moe @ Mirai Project
*/ */
@ExperimentalUnsignedTypes @ExperimentalUnsignedTypes
@PacketId(0x08_25_31_01) @PacketId("08 25 31 01")
class ClientLoginPacket : ClientPacket() { class ClientLoginPacket : ClientPacket() {
var qq: Int = 0 var qq: Int = 0
......
...@@ -85,11 +85,10 @@ fun DataOutputStream.writeTLV0006(qq: Int, password: String, loginTime: ByteArra ...@@ -85,11 +85,10 @@ fun DataOutputStream.writeTLV0006(qq: Int, password: String, loginTime: ByteArra
it.writeHex(Protocol._0825data2) it.writeHex(Protocol._0825data2)
it.writeHex("00 00 01") it.writeHex("00 00 01")
val md5_1: ByteArray = md5(password); val md5_1 = md5(password);
val md5_2 = md5(md5_1 + "00 00 00 00".hexToBytes() + qq.toBytes()) val md5_2 = md5(md5_1 + "00 00 00 00".hexToBytes() + qq.toBytes())
it.write(md5_1) it.write(md5_1)
it.write(loginTime)//FIXED 12(maybe 11???) bytes it.write(loginTime)//todo FIXED 12(maybe 11???) bytes??? check that
it.writeByte(0); it.writeByte(0);
it.writeZero(4 * 3) it.writeZero(4 * 3)
it.write(loginIP) it.write(loginIP)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment