mirror of
https://github.com/mamoe/mirai.git
synced 2025-02-05 03:44:44 +08:00
Merge remote-tracking branch 'origin/master'
This commit is contained in:
commit
145b856611
@ -11,9 +11,9 @@ import java.io.DataInputStream
|
||||
class Server0825Packet(private val type: Type, inputStream: DataInputStream) : ServerPacket(inputStream) {
|
||||
lateinit var serverIP: String;
|
||||
|
||||
var loginTime: Long = 0;
|
||||
lateinit var loginIP: String;
|
||||
lateinit var token: ByteArray;
|
||||
var loginTime: Int = 0
|
||||
lateinit var loginIP: String
|
||||
lateinit var token: ByteArray
|
||||
lateinit var tgtgtKey: ByteArray
|
||||
|
||||
enum class Type {
|
||||
@ -32,15 +32,19 @@ class Server0825Packet(private val type: Type, inputStream: DataInputStream) : S
|
||||
|
||||
when (data.readByte().toInt()) {
|
||||
0xFE -> {
|
||||
System.out.println("0xfe")
|
||||
serverIP = data.readIP()
|
||||
}
|
||||
0X00 -> {
|
||||
data.skip(16 - 2)
|
||||
token = data.readNBytes(167 - (16 - 2))
|
||||
loginTime = data.readLong()//todo check
|
||||
data.skip(4)
|
||||
token = data.readNBytes(56)
|
||||
data.skip(28)
|
||||
|
||||
loginTime = data.readInt()
|
||||
loginIP = data.readIP()
|
||||
tgtgtKey = getRandomKey(16);
|
||||
tgtgtKey = getRandomKey(16)
|
||||
}
|
||||
|
||||
else -> {
|
||||
throw IllegalStateException()
|
||||
}
|
||||
|
@ -1,6 +1,8 @@
|
||||
package net.mamoe.mirai.network.packet.server
|
||||
|
||||
import net.mamoe.mirai.network.packet.Packet
|
||||
import net.mamoe.mirai.util.toHexString
|
||||
|
||||
import java.io.DataInputStream
|
||||
|
||||
/**
|
||||
@ -44,10 +46,12 @@ fun DataInputStream.readUntil(byte: Byte): ByteArray {
|
||||
return buff
|
||||
}
|
||||
|
||||
@ExperimentalUnsignedTypes
|
||||
fun DataInputStream.readIP(): String {
|
||||
var buff = ""
|
||||
for (i in 0..12) {//todo: check that
|
||||
buff += readByte().toInt()
|
||||
for (i in 0..3) {//todo: check t// hat
|
||||
buff += (readByte().toInt()).toString()
|
||||
if(i !=3)buff+="."
|
||||
}
|
||||
return buff
|
||||
}
|
||||
|
@ -34,6 +34,8 @@ fun UByteArray.toHexString(separator: String = " "): String = Utils.toHexString(
|
||||
|
||||
fun Byte.toHexString(): String = this.toString(16)
|
||||
|
||||
|
||||
|
||||
@ExperimentalUnsignedTypes
|
||||
fun String.hexToBytes(): ByteArray = Protocol.hexToBytes(this)
|
||||
@ExperimentalUnsignedTypes
|
||||
|
@ -19,4 +19,20 @@ public class NetworkTest {
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
public static String bytesToHex(byte[] bytes) {
|
||||
StringBuffer sb = new StringBuffer();
|
||||
for(int i = 0; i < bytes.length; i++) {
|
||||
String hex = Integer.toHexString(bytes[i] & 0xFF);
|
||||
if(hex.length() < 2){
|
||||
sb.append(0);
|
||||
}
|
||||
sb.append(hex);
|
||||
}
|
||||
return sb.toString();
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
@ -1,6 +1,18 @@
|
||||
import net.mamoe.mirai.network.packet.client.Client0825ResponsePacket
|
||||
import net.mamoe.mirai.network.packet.server.Server0825Packet
|
||||
import net.mamoe.mirai.util.TEACryptor
|
||||
import net.mamoe.mirai.util.hexToBytes
|
||||
import net.mamoe.mirai.util.hexToUBytes
|
||||
import net.mamoe.mirai.util.toHexString
|
||||
import java.io.DataInputStream
|
||||
|
||||
@ExperimentalUnsignedTypes
|
||||
fun main(){
|
||||
val v = "00 37 13 08 25 31 01 76 E4 B8 DD 03 00 00 00 01 2E 01 00 00 68 52 00 00 00 00 A4 F1 91 88 C9 82 14 99 0C 9E 56 55 91 23 C8 3D C3 47 F0 25 A1 8E 74 EF 1E 0B 32 5B 20 8A FA 3B 0B 52 8F 86 E6 04 F1 D6 F8 63 75 60 8C 0C 7D 06 D1 E0 22 F8 49 EF AF 61 EE 7E 69 72 EB 10 08 30 69 50 1C 84 A9 C2 16 D7 52 B9 1C 79 CA 5A CF FD BC AE D8 A6 BB DC 21 6E 79 26 E1 A2 23 11 AA B0 9A 49 39 72 ED 61 12 B6 88 4D A2 56 23 E9 92 11 92 27 4A 70 00 C9 01 7B 03";
|
||||
v.split(" ")
|
||||
val data = "00 37 13 08 25 31 01 76 E4 B8 DD 03 00 00 00 01 2E 01 00 00 68 52 00 00 00 00 A4 F1 91 88 C9 82 14 99 0C 9E 56 55 91 23 C8 3D C3 47 F0 25 A1 8E 74 EF 1E 0B 32 5B 20 8A FA 3B 0B 52 8F 86 E6 04 F1 D6 F8 63 75 60 8C 0C 7D 06 D1 E0 22 F8 49 EF AF 61 EE 7E 69 72 EB 10 08 30 69 50 1C 84 A9 C2 16 D7 52 B9 1C 79 CA 5A CF FD BC AE D8 A6 BB DC 21 6E 79 26 E1 A2 23 11 AA B0 9A 49 39 72 ED 61 12 B6 88 4D A2 56 23 E9 92 11 92 27 4A 70 00 C9 01 7B 03"
|
||||
val s = DataInputStream(data.hexToBytes().inputStream())
|
||||
val packet = Server0825Packet(Server0825Packet.Type.TYPE_08_25_31_01,s)
|
||||
packet.decode()
|
||||
System.out.println(packet.token.toUByteArray().toHexString(" "))
|
||||
System.out.println(packet.loginTime)
|
||||
System.out.println(packet.loginIP)
|
||||
}
|
Loading…
Reference in New Issue
Block a user