• You've discovered RedGuides, an EverQuest multi-boxing and scripting community 🧙‍♀️⚙️. We want you to play several EQ characters at once, come join us and say hello! 👋

  • A TLP without truebox has thawed (Very Vanilla ready)
    Frostreaver

Packets

jmac

Member
Joined
Sep 12, 2004
RedCents
106¢
So I am playing on an emu server and upon completion of an ldon, the packet 0x05fc7 is received. The length of this packet is 1 byte, so my packet header is defined like this...

Rich (BB code):
#define jLDON			0x5fc7
typedef struct _LDPkt {
	BYTE Chksum;
} LDPkt;

So I wrote the plugin function like this (thx to unknown405 for my knowledge)

Rich (BB code):
VOID LDONs(PSPAWNINFO pChar, PCHAR szLine) {
		LDPkt ld;
		ZeroMemory(&ld, sizeof(ld));
		ld.Chksum = SlotNum;
		SendEQMessage(jLDON, &ld, sizeof(ld));
}

So then I wrote a macro like this to test every number from 0 to 256 (1 byte right?)

Rich (BB code):
Sub Main
/declare counter int inner

/echo Starting
/for counter 0 to 256
/slotnum ${counter}
/echo ${counter}
/delay 5
/ldon
/delay 5
/next counter

However no number 0-256 was the right byte for my packet. So my question is am I doing this right?
 
0x5fc7 = 24519

If it's the payload of the packet then maybe you should be trying an unsigned integer instead (0-65535)?

Not entirely sure what you're trying to do myself so I'm just shooting blind.
 
The packet received is not the same as the packet sent. When a packet is sent from the server to your client, then the client executes a chain of events based on that packet. Sending that packet right back to the server is pointless and will accomplish nothing. You want to find the packet that is sent TO the server when you complete an LDoN which I guarantee you will have a lot bigger of a size than 1 byte. There are also more than likely various checks in place to prevent this from being abused. I've found that in a lot of ways EQEmu has better server packet security than EQ Live.
 
Ah okay makes sense, thank you. I am using your packet sniffer atm unknown, does it show both sent and received packets?
 
I haven't touched EQ or MQ2 in years so I honestly can't even remember, but if you send me the link / source then I'll take a look.

As far as I can remember though all the sniffers that I made let you work with sent and received packets though.
 
Ah, I believe I see what you're talking about. The EQEmulator release I had that came with a precompiled binary for MQ2Sniff? Since I don't have the source anymore and haven't used it in years, I really can't say for 100% certain. I can tell you though that I can't imagine making a sniffer that didn't let you work with sent and received packets.

I can also tell you that if you type the command I showed you in that post (/sniff) then I usually put in a little 'readme' in all of my public plugins which should tell you what you can do with it. I would also like to tell you that I don't really understand what your plugin is supposed to do.

I'm guessing that you're trying to loop through sending LDoN completed packets with different ID's using slotnumber. Why though? Are you guessing that 'Checksum' is LDoN ID or something? Why did you call it checksum and why are you changing the number every time you send the packet? You also don't need a macro, this is much more simple.

Rich (BB code):
VOID LDONs(PSPAWNINFO pChar, PCHAR szLine) 
{
	LDPkt ld;
	ZeroMemory( &ld, sizeof( ld ) );
	
	// 0xFF = 255 = Max size for a BYTE so let's make our loop
	for ( int i = 0; i < 255; i ++ )
	{
		ld.Chksum = i;
		SendEQMessage( jLDON, &ld, sizeof( LDPKT ) );
	}
}

Oh yea and...

I absolutely 100% wouldn't make a sniffer that ONLY works for received packets, if anything it would ONLY work with sent packets.

How do you know this packet is even received in the first place?
 
I am using your mq2sniffer plugin, no source available. However I do think it is working for sent packets because the cast spell packet is 0x0304B in game, and in your uDupe.h you have
Rich (BB code):
#define uCASTSPELL 0x304B
typedef struct _CastPkt {
  DWORD SlotNum;
  DWORD SpellID;
  DWORD Unknown_Mask; 
  DWORD TargetID; 
  DWORD APICheck;
} CastPkt, *PCastPacket;

But what I was trying to do is guess the number for chksum, because I have no idea how to decode a packet. So I figured since the packet sent upon completing an ldon ( a custom ldon system not related to eq live) sent packet 0x05FC7 with length 1, I could guess a 1 byte integer (what the macro does) to set the right value of that 1 byte packet.

I wanted to send a packet stating I completed an ldon and wanted the points added for finishing it. Anyways I am very new to this process so if I make no sense please say so.
 
Packets

Users who are viewing this thread

Back
Top
Cart