mirror of
https://github.com/mamoe/mirai.git
synced 2025-03-26 07:20:09 +08:00
update
This commit is contained in:
parent
0b76137936
commit
6e5ce3a84c
mirai-core/src/main/java/net/mamoe/mirai/network
@ -15,6 +15,7 @@ import net.mamoe.mirai.network.packet.client.login.*
|
||||
import net.mamoe.mirai.network.packet.client.writeHex
|
||||
import net.mamoe.mirai.network.packet.server.ServerPacket
|
||||
import net.mamoe.mirai.network.packet.server.login.*
|
||||
import net.mamoe.mirai.network.packet.server.security.ServerSessionKeyResponsePacket
|
||||
import net.mamoe.mirai.network.packet.server.security.ServerSessionKeyResponsePacketEncrypted
|
||||
import net.mamoe.mirai.network.packet.server.touch.ServerTouchResponsePacket
|
||||
import net.mamoe.mirai.util.getRandomKey
|
||||
@ -102,7 +103,13 @@ class Robot(val number: Int, private val password: String) {
|
||||
}
|
||||
}
|
||||
|
||||
is ServerLoginResponseSucceedPacketEncrypted -> onPacketReceived(packet.decrypt(this.tgtgtKey!!))
|
||||
is ServerSessionKeyResponsePacket -> {
|
||||
this.sessionKey = packet.sessionKey
|
||||
this.tlv0105 = packet.tlv0105
|
||||
}
|
||||
|
||||
is ServerLoginResponseResendPacketEncrypted -> onPacketReceived(packet.decrypt(this.tgtgtKey!!))
|
||||
is ServerLoginResponseSuccessPacketEncrypted -> onPacketReceived(packet.decrypt(this.tgtgtKey!!))
|
||||
is ServerSessionKeyResponsePacketEncrypted -> onPacketReceived(packet.decrypt(this._0828_rec_decr_key))
|
||||
|
||||
else -> throw IllegalStateException()
|
||||
|
@ -1,10 +1,7 @@
|
||||
package net.mamoe.mirai.network.packet.server
|
||||
|
||||
import net.mamoe.mirai.network.packet.Packet
|
||||
import net.mamoe.mirai.network.packet.server.login.ServerLoginResponseFailedPacket
|
||||
import net.mamoe.mirai.network.packet.server.login.ServerLoginResponseResendPacket
|
||||
import net.mamoe.mirai.network.packet.server.login.ServerLoginResponseSucceedPacketEncrypted
|
||||
import net.mamoe.mirai.network.packet.server.login.ServerLoginResponseVerificationCodePacket
|
||||
import net.mamoe.mirai.network.packet.server.login.*
|
||||
import net.mamoe.mirai.network.packet.server.touch.ServerTouchResponsePacket
|
||||
import net.mamoe.mirai.util.toHexString
|
||||
import java.io.DataInputStream
|
||||
@ -30,7 +27,7 @@ abstract class ServerPacket(val input: DataInputStream) : Packet {
|
||||
"08 25 31 02" -> ServerTouchResponsePacket(ServerTouchResponsePacket.Type.TYPE_08_25_31_02, stream)
|
||||
"08 36 31 03", "08 36 31 04", "08 36 31 05", "08 36 31 06" -> {
|
||||
when (bytes.size) {
|
||||
271, 207 -> return ServerLoginResponseResendPacket(stream, when (flag) {
|
||||
271, 207 -> return ServerLoginResponseResendPacketEncrypted(stream, when (flag) {
|
||||
"08 36 31 03" -> ServerLoginResponseResendPacket.Flag.`08 36 31 03`
|
||||
else -> ServerLoginResponseResendPacket.Flag.OTHER
|
||||
})
|
||||
@ -38,7 +35,7 @@ abstract class ServerPacket(val input: DataInputStream) : Packet {
|
||||
}
|
||||
|
||||
if (bytes.size > 700) {
|
||||
return ServerLoginResponseSucceedPacketEncrypted(stream, bytes.size)
|
||||
return ServerLoginResponseSuccessPacketEncrypted(stream, bytes.size)
|
||||
}
|
||||
|
||||
return ServerLoginResponseFailedPacket(when (bytes.size) {
|
||||
|
@ -2,6 +2,9 @@ package net.mamoe.mirai.network.packet.server.login
|
||||
|
||||
import net.mamoe.mirai.network.packet.PacketId
|
||||
import net.mamoe.mirai.network.packet.server.ServerPacket
|
||||
import net.mamoe.mirai.network.packet.server.dataInputStream
|
||||
import net.mamoe.mirai.network.packet.server.goto
|
||||
import net.mamoe.mirai.util.TEACryptor
|
||||
import java.io.DataInputStream
|
||||
|
||||
/**
|
||||
@ -36,4 +39,18 @@ class ServerLoginResponseResendPacket(input: DataInputStream, val flag: Flag) :
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
class ServerLoginResponseResendPacketEncrypted(input: DataInputStream, private val flag: ServerLoginResponseResendPacket.Flag) : ServerPacket(input) {
|
||||
override fun decode() {
|
||||
|
||||
}
|
||||
|
||||
fun decrypt(tgtgtKey: ByteArray): ServerLoginResponseResendPacket {
|
||||
this.input goto 14
|
||||
var data: ByteArray = this.input.readAllBytes()
|
||||
data = TEACryptor.CRYPTOR_SHARE_KEY.decrypt(data.let { it.copyOfRange(0, it.size - 1) });
|
||||
data = TEACryptor.decrypt(data, tgtgtKey);
|
||||
return ServerLoginResponseResendPacket(data.dataInputStream(), flag)
|
||||
}
|
||||
}
|
@ -4,12 +4,10 @@ import net.mamoe.mirai.network.Protocol
|
||||
import net.mamoe.mirai.network.packet.server.*
|
||||
import net.mamoe.mirai.util.TEACryptor
|
||||
import net.mamoe.mirai.util.hexToBytes
|
||||
import net.mamoe.mirai.util.hexToShort
|
||||
import net.mamoe.mirai.util.toHexString
|
||||
import java.io.DataInputStream
|
||||
|
||||
/**
|
||||
* @author Him188moe
|
||||
* @author NaturalHG
|
||||
*/
|
||||
class ServerLoginResponseSuccessPacket(input: DataInputStream, val packetDataLength: Int) : ServerPacket(input) {
|
||||
@ -118,7 +116,7 @@ class ServerLoginResponseSuccessPacket(input: DataInputStream, val packetDataLen
|
||||
}
|
||||
}
|
||||
|
||||
class ServerLoginResponseSucceedPacketEncrypted(input: DataInputStream, val length: Int) : ServerPacket(input) {
|
||||
class ServerLoginResponseSuccessPacketEncrypted(input: DataInputStream, val length: Int) : ServerPacket(input) {
|
||||
override fun decode() {
|
||||
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user