MaimMim Man in the middle minetest interceptor
- prototype - between client and server, allow to capture all exchanges and potentially change them - created to capture server maps in laby - first test get only MapBlock, support version serialization version 28 - prepartion for 29 with zstd but untested. # Conflicts: # fetch_dependencies.sh
This commit is contained in:
@@ -0,0 +1,70 @@
|
||||
package org.artisanlogiciel.games.minetest.net;
|
||||
|
||||
import org.artisanlogiciel.games.minetest.core.PacketException;
|
||||
import org.artisanlogiciel.games.minetest.core.Serialize;
|
||||
import org.artisanlogiciel.games.minetest.core.v3s16;
|
||||
|
||||
import java.nio.ByteBuffer;
|
||||
|
||||
public class NetworkPacket {
|
||||
|
||||
int m_protocol_id;
|
||||
int m_peer_id;
|
||||
int m_channel;
|
||||
public PacketType packetType;
|
||||
|
||||
// somehow a BufferedPacket ...
|
||||
byte[] m_buffer; // m_data
|
||||
// used part in buffer
|
||||
int m_length; // m_datasize ?
|
||||
// current header index in packet
|
||||
int m_offset; // m_read_offset
|
||||
|
||||
short m_command = 0;
|
||||
|
||||
public NetworkPacket(int protocol_id, int peer_id, int channel, PacketType type, byte[] buffer, int length) {
|
||||
this.m_protocol_id = protocol_id;
|
||||
this.m_peer_id = peer_id;
|
||||
this.m_channel = channel;
|
||||
this.packetType = type;
|
||||
m_buffer = buffer;
|
||||
m_length = length;
|
||||
m_offset = 0;
|
||||
}
|
||||
|
||||
public int getChannel()
|
||||
{
|
||||
return m_channel;
|
||||
}
|
||||
|
||||
public byte[] getBuffer()
|
||||
{
|
||||
return m_buffer;
|
||||
}
|
||||
|
||||
public int getOffset() {
|
||||
return m_offset;
|
||||
}
|
||||
|
||||
public int getLength() {
|
||||
return m_length;
|
||||
}
|
||||
|
||||
void addOffset(int offset)
|
||||
{
|
||||
m_offset += offset;
|
||||
}
|
||||
|
||||
// Serialization
|
||||
public v3s16 v3s16()
|
||||
throws PacketException
|
||||
{
|
||||
return Serialize.readV3S16(m_buffer, m_offset, m_length);
|
||||
}
|
||||
|
||||
public ByteBuffer getByteBuffer()
|
||||
{
|
||||
ByteBuffer buffer = ByteBuffer.wrap(m_buffer,m_offset,m_length-m_offset);
|
||||
return buffer;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user