Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Прокси Сервер Хукинг

Squate Dev Ученик (117), на голосовании 1 неделю назад
Ребята помогите пожалуйста, гпт написал код для подключения к серверу через прокси но не работает не чего подключается да я даже координаты своего игрока вывести не могу, и скорость изменить джава код кто сможет помочь?
     public static void startProxy(String serverHost, int serverPortNum, int listenPort) { 
try {
serverAddress = InetAddress.getByName(serverHost);
serverPort = serverPortNum;
clientPort = listenPort;
isRunning = true;
proxyThread = new Thread(new Runnable() {
public void run() {
try {
byte[] receiveData = new byte[8192];
while (isRunning) {
DatagramPacket receivePacket = new DatagramPacket(receiveData, receiveData.length);
clientSocket.receive(receivePacket);
InetAddress clientAddress = receivePacket.getAddress();
int clientPort = receivePacket.getPort();
byte[] modifiedData = processPacket(receivePacket.getData(), receivePacket.getLength(), true);
DatagramPacket serverPacket = new DatagramPacket(modifiedData, modifiedData.length, serverAddress, serverPort);
serverSocket.send(serverPacket);
serverSocket.receive(receivePacket);
modifiedData = processPacket(receivePacket.getData(), receivePacket.getLength(), false);
DatagramPacket clientPacket = new DatagramPacket(modifiedData, modifiedData.length, clientAddress, clientPort);
clientSocket.send(clientPacket);
}
} catch (Exception e) {
e.printStackTrace();
}
}
});
proxyThread.start();
} catch (Exception e) {
stopProxy();
System.out.println("Proxy error: " + e.getMessage());
}
}

private static byte[] processPacket(byte[] data, int length, boolean isClient) {
try {
ByteBuffer bb = ByteBuffer.wrap(data, 0, length);
int packetId = bb.get() & 0xFF;
switch(packetId) {
case 0x01:
if(isClient) {
ByteBuffer loginData = ByteBuffer.allocate(length);
loginData.put(data, 0, length);
return loginData.array();
}
break;
case 0x13:
if(isClient) {
ByteBuffer moveData = ByteBuffer.allocate(length);
moveData.put(data, 0, length);
float speed = getSpeed();
if(speed > 1.0f) {
// Модифицируем данные движения
moveData.putFloat(4, moveData.getFloat(4) * speed);
}
return moveData.array();
}
break;
}
return data;
} catch (Exception e) {
return data;
}
}

public static void stopProxy() {
isRunning = false;
if (proxyThread != null) {
proxyThread.interrupt();
proxyThread = null;
}
if (clientSocket != null) clientSocket.close();
if (serverSocket != null) serverSocket.close();
clientSocket = null;
serverSocket = null;
}

public static void setSpeed(float speed) {
try {
ByteBuffer data = ByteBuffer.allocate(8);
data.putFloat(speed);
data.putFloat(speed); // Дублируем значение для надежности
sendPacket(0x12, data.array());
} catch (Exception e) {}
}
Голосование за лучший ответ
Жоткот Джек Мудрец (14539) 1 месяц назад
UwU~
Squate DevУченик (117) 1 месяц назад
Только ты мне поможешь бог я сам пытался написать, но не получалось тупо пришлось Клауд сонет просит
Жоткот Джек Мудрец (14539) Squate Dev, Абу Лулуа(р.а)
Александр Искусственный Интеллект (309703) 1 месяц назад
"не чего подключается"?

во прям ЖПТ свой вопрос и задай.
Squate DevУченик (117) 1 месяц назад
Он не выдаёт правильный я уже все перебрал
Похожие вопросы