PacketBuffer Class by DarkMinion-vL

Insert the code at the bottom into a class module named 'PacketBuffer'. Declare it like this:

Dim PacketBuf as New PacketBuffer

And you can use it like this:

'Example packet 0x1e for StarcraftPacketBuf.InsertDWORD 0PacketBuf.InsertDWORD 0PacketBuf.InsertDWORD 0PacketBuf.InsertDWORD 0PacketBuf.InsertDWORD 0PacketBuf.InsertNTString "ComputerName"PacketBuf.InsertNTString "NetworkName"PacketBuf.SendPacket sckBnet, &H1E

Where sckBnet is a Winsock control that is already connected to bnet. Here is the code that goes in the class module:

Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (ByRef Destination As Any, ByRef Source As Any, ByVal numBytes As Long)
Private Buffer As String
Public Function InsertDWORD(Data As Long)Buffer = Buffer & MakeDWORD(Data)End Function
Public Function InsertWORD(Data As Integer)Buffer = Buffer & MakeWORD(Data)End Function
Public Function InsertBYTE(Data As Integer)Buffer = Buffer & Chr(Data)End Function
Public Function InsertNTString(Data As String)Buffer = Buffer & Data & Chr(0)End Function
Public Function InsertNonNTString(Data As String)Buffer = Buffer & DataEnd Function
Function MakeDWORD(Value As Long) As String Dim Result As String * 4 CopyMemory ByVal Result, Value, 4 MakeDWORD = ResultEnd Function
Function MakeWORD(Value As Integer) As String Dim Result As String * 2 CopyMemory ByVal Result, Value, 2 MakeWORD = ResultEnd Function
Public Function Clear()Buffer = ""End Function
Public Function SendPacket(SOCKET As Winsock, PacketID As Byte)SOCKET.SendData Chr(&HFF)SOCKET.SendData Chr(PacketID)SOCKET.SendData MakeWORD(Len(Buffer) + 4)SOCKET.SendData BufferClearEnd Function


Hope this helps :)


DarkMinion
Valhalla Legends

Programmer of DMBot.