Valhalla Legends Forums Archive | Battle.net Bot Development | S->C 0x50

AuthorMessageTime
Insolence
When trying to create a fake Diablo II server, I have to connect to USWest and sniff the 0x50 packet that it sends, then send that to the client every time I start a new client.  Otherwise it gets stuck at "Checking Version."

Ringo gave me some advice and said it had something to do with D2Loader, but I found my old CD and loaded up Game.exe and I get the same message unless I copy + paste the 0x50 packet the real server sends.

How do I "generate" a valid 0x50 response for a D2 client?
January 8, 2008, 6:12 AM
Camel
Considering this is the first packet you're sending, you've probably got a problem with your packet buffer. Have you tried packet logging your server to verify that it's sending what you expect?
January 8, 2008, 6:38 AM
Insolence
[quote author=Camel link=topic=17257.msg175713#msg175713 date=1199774280]
Considering this is the first packet you're sending, you've probably got a problem with your packet buffer. Have you tried packet logging your server to verify that it's sending what you expect?
[/quote]No, that's not the problem--maybe I was unclear.

When I manually paste the packet from one I get with D2Smells, I can keep restarting and reconnecting to that server as long as I don't close the Diablo II process.  When I start a new process, the previous 0x50 packet that I copied doesn't work.  It stops at "Checking Version".
January 8, 2008, 7:56 AM
BreW
[quote author=Insolence link=topic=17257.msg175717#msg175717 date=1199778976]
[quote author=Camel link=topic=17257.msg175713#msg175713 date=1199774280]
Considering this is the first packet you're sending, you've probably got a problem with your packet buffer. Have you tried packet logging your server to verify that it's sending what you expect?
[/quote]No, that's not the problem--maybe I was unclear.

When I manually paste the packet from one I get with D2Smells, I can keep restarting and reconnecting to that server as long as I don't close the Diablo II process.  When I start a new process, the previous 0x50 packet that I copied doesn't work.  It stops at "Checking Version".
[/quote]
What are you sending as your version check string? What checkrevision module are you requesting it be processed with? Don't forget it has to download the files from bnftp if it doesn't have them in the cache.

EDIT** Ah, that's your problem. It clears the checkrevision cache on each startup. Check to see if you receive any 0x02 bytes from the client.
January 8, 2008, 8:13 PM
Ringo
[quote author=Insolence link=topic=17257.msg175712#msg175712 date=1199772779]
Ringo gave me some advice and said it had something to do with D2Loader, but I found my old CD and loaded up Game.exe and I get the same message unless I copy + paste the 0x50 packet the real server sends.
[/quote]
Hm its probly D2 in general then, rather than just loader (I rarely use d2 from cd, so asumed it was loader based)
Just use a static S>C 0x50 and add the FTP protocol so that D2 can download the version mpq file if needed.
January 9, 2008, 3:27 AM
Insolence
[quote author=Ringo link=topic=17257.msg175725#msg175725 date=1199849241]
[quote author=Insolence link=topic=17257.msg175712#msg175712 date=1199772779]
Ringo gave me some advice and said it had something to do with D2Loader, but I found my old CD and loaded up Game.exe and I get the same message unless I copy + paste the 0x50 packet the real server sends.
[/quote]
Hm its probly D2 in general then, rather than just loader (I rarely use d2 from cd, so asumed it was loader based)
Just use a static S>C 0x50 and add the FTP protocol so that D2 can download the version mpq file if needed.
[/quote]Alright Ringo, thanks :)
January 9, 2008, 5:03 AM

Search