Author | Message | Time |
---|---|---|
Ryan Marcus | I am a intermediate/advance REALbasic (similar to Visual Basic, but cross-platform) with a beginning knowledge of TCP/IP. I got into Starcraft about 4 years ago, and have been playing avidly since (Blizzard injects crack though the mouse, or something...) I worked for a while with iago on JavaOp, and decided to take a crack at it myself (although I will still be writing plugins for JavaOp). I downloaded a few examples, converted them from VB to RB, and took a look. I quickly figured out it was going to be harder then it looks, and that I needed 2 connections, BNET and BNLS, not just one. So I checked out BnetDocs (GJ Arga) and wrote a basic BNLS socket. I am sure there is a better way to do what I am doing, so please, tell me. DataAvailable Event: [code] ParseData(me.ReadAll) // me refers to the socket // ReadAll is the equivalent of GetData(Var, String). [/code] ParseData Method, Parameters data as string: [code] Select Case Asc(Mid(Data, 3, 1)) case GetPacketIDBNLS("CDKEY") case GetPacketIDBNLS("LOGONCHALLENGE") case GetPacketIDBNLS("LOGONPROOF") case GetPacketIDBNLS("CREATEACCOUNT") case GetPacketIDBNLS("CHANGECHALLENGE") case GetPacketIDBNLS("CHANGEPROOF") case GetPacketIDBNLS("UPGRADECHALLENGE") case GetPacketIDBNLS("UPGRADEPROOF") case GetPacketIDBNLS("VERSIONCHECK") case GetPacketIDBNLS("CONFIRMLOGON") case GetPacketIDBNLS("HASHDATA") case GetPacketIDBNLS("CDKEY_EX") case GetPacketIDBNLS("CHOOSENLSREVISION") case GetPacketIDBNLS("AUTHORIZE") case GetPacketIDBNLS("AUTHORIZEPROOF") case GetPacketIDBNLS("REQUESTVERSIONBYTE") case GetPacketIDBNLS("VERIFYSERVER") case GetPacketIDBNLS("RESERVESERVERLOTS") case GetPacketIDBNLS("SERVERLOGONCHALLENGE") case GetPacketIDBNLS("SERVERLOGONPROOF") end Select // GetPacketIDBNLS returns the correct values. [/code] I am also working on a packet builder, but I just wanted to get that part done. Are there better ways? Am I just completely wrong? Thanks in advance, Ryan Marcus. | August 27, 2005, 1:35 PM |
hismajesty | Arga didn't do anything with BnetDocs. :) | August 27, 2005, 2:17 PM |
l2k-Shadow | Just use a locally hashed connection and eliminate the use of BNLS and another socket all together. | August 27, 2005, 5:43 PM |
Yegg | l2k-shadow. How can you be certain he knows enough about using the Battle.net binary files? | August 27, 2005, 8:18 PM |
l2k-Shadow | [quote author=Yegg link=topic=12636.msg125727#msg125727 date=1125173924] l2k-shadow. How can you be certain he knows enough about using the Battle.net binary files? [/quote] If he is making a Battle.net related program, he should have certain amount of knowledge about hash files. If he doesn't then he can download countless sources using a locally hashed connection and use a hashing library like BNCSUtil which is open source and contains a public VB example which would be easily ported over to RB. IMO hashing is easier and quicker to code than a BNLS connection. | August 28, 2005, 3:29 AM |
UserLoser. | [quote author=Ryan Marcus link=topic=12636.msg125835#msg125835 date=1125271480] Hmm.. Are you sure its not Arga? Oh well.. Somehow, I got four replies, not a single one relating to my post ;). However, thanks for the good ideas. I will have to look into local hashing. I thought the main reason to use BNLS was that you did not have to update your bots hashes.. or is this bogus? [/quote] It's Arta, not Arga. And sorry, I don't have any input for you. | August 28, 2005, 11:30 PM |