Valhalla Legends Forums Archive | Battle.net Bot Development | JBLS_0015

AuthorMessageTime
JoeTheOdd
SphtBot found a BNLS packet, 0x15, in a connect sequence today. Aparently, this is a news packet.

[code][15:00:14] Unrecognized BNLS packet BNLS_0015 received:
0000:  54 68 69 73 20 69 73 20 61 20 74 65 73 74 20 6E  This is a test n
0010:  65 77 73 20 6D 65 73 73 61 67 65 2E 00            ews message..
[15:00:14] Unrecognized BNLS packet BNLS_0015 received:
0000:  54 68 69 73 20 69 73 20 61 20 74 65 73 74 20 6E  This is a test n
0010:  65 77 73 20 6D 65 73 73 61 67 65 2E 00            ews message..
[15:00:15] Unrecognized BNLS packet BNLS_0015 received:
0000:  54 68 69 73 20 69 73 20 61 20 74 65 73 74 20 6E  This is a test n
0010:  65 77 73 20 6D 65 73 73 61 67 65 2E 00            ews message..
[15:00:15] Unrecognized BNLS packet BNLS_0015 received:
0000:  54 68 69 73 20 69 73 20 61 20 74 65 73 74 20 6E  This is a test n
0010:  65 77 73 20 6D 65 73 73 61 67 65 2E 00            ews message..
[15:00:17] Unrecognized BNLS packet BNLS_0015 received:
0000:  54 68 69 73 20 69 73 20 61 20 74 65 73 74 20 6E  This is a test n
0010:  65 77 73 20 6D 65 73 73 61 67 65 2E 00            ews message..[/code]

EDIT -
This isn't documented on BnetDocs, nor in the BNLS protocol specification, so..
(STRING) News (Null terminated)

Look! I contributed to the community by reversing a packet. I rawk. <3.

EDIT: Changed topic title.
May 17, 2005, 10:03 PM
KkBlazekK
[quote author=Joe[x86] link=topic=11614.msg112759#msg112759 date=1116367388]
Look! I contributed to the community by reversing a packet. I rawk. <3.
[/quote]
How did you figure it out? It has to be encrypted with rot26 or something because I can't get anything out of it.

[me=Blaze]adds support for his bot[/me]
May 17, 2005, 10:21 PM
Quarantine
The packet must be in dissasembly for you to reverse it. Better luck next time.

Note: Most strings are null terminated. On special occasions are some not NTed (mostly programmers using a stupid workaround)
May 17, 2005, 11:44 PM
Myndfyr
[quote author=Warrior link=topic=11614.msg112776#msg112776 date=1116373493]
Note: Most strings are null terminated. On special occasions are some not NTed (mostly programmers using a stupid workaround)
[/quote]

If you program in C.  If you programmed in Pascal, which lived before C, then your string was prepended with a byte indicating the length of the string -- which limited string length to 255 characters.

Later editions of Pascal included "Wide Pascal" strings with a preceeding two bytes, for a maximum string length of 65,535 characters.
May 18, 2005, 12:58 AM
Quarantine
Die Myndy :[. So pascal sucks, bite me.

:p <3
May 18, 2005, 1:03 AM
JoeTheOdd
[quote]The packet must be in dissasembly for you to reverse it. Better luck next time.[/quote]

How so? I belive I got the use and format correct without using Dis-ASM, so I "reversed" it nontheless.
May 18, 2005, 2:06 AM
Myndfyr
[quote author=Joe[x86] link=topic=11614.msg112801#msg112801 date=1116381965]
[quote]The packet must be in dissasembly for you to reverse it. Better luck next time.[/quote]

How so? I belive I got the use and format correct without using Dis-ASM, so I "reversed" it nontheless.
[/quote]

I think he was trying to pick at your choice of terminology.  I'm not sure that "reverse-engineering" was the appropriate term for what you did, I wasn't going to poke at it, although apparently he felt the need to.  *shrug*
May 18, 2005, 2:08 AM
JoeTheOdd
Well, I believe revese-engineering is finding the use of, and ways to create, things that are compiled, or assembled already. In this case, it was a packet that was caught durring transfer, compiled in the BNLS binary protocol type thingy. I, even though in my mind, reversed the meaning and use of the packet, as well as the way to create it, so I did indeed "revese-engineer" it, in my terms.

@Invert (Moving): Works for me.
May 18, 2005, 2:18 AM
Quarantine
Myndy is right. Reverse engineering is converting a file into dissasemby (not assembled) and figuring out what it does therefore writing your own implementation of it in another language. You investigated a packet sent to you over a network, unless you dissasembled BNLS then you have not done any reverse engineering :]
May 18, 2005, 2:24 AM
HdxBmx27
Noone can reverse this because it's only on my server, and Poke for original post on Quikness.com.


[quote][QUOTE]Message ID: 0x15
Message Name: BNLS_SERVERMESSAGE
Direction: Server -> Client (Recived)
Format:
(STRING) Message.

Remarks: This packet is simply used to allow the host of the server a way to provide information to the users of his/her server. Main reason for implamenting this is to allow the host to notify the users of upcoming downtimes, and matanance.[/QUOTE]
if anyone is using my server and get an unknown packet, this is why, I added this.

Also Iago, Fool, Someone give me the link on how to access iago's CVS, cuz it keeps messing up for me :/
~-~(HDX)~-~[/quote]

So Joe, your a idiot, it's not BNLS you are using MY JBLS server!
~-~(HDX)~-~

May 18, 2005, 2:51 AM
Quarantine
buahahah
May 18, 2005, 2:53 AM
Newby
This thread is comedy gold.
May 18, 2005, 2:55 AM
HdxBmx27
Whops, I fuggered it up, it's sending it continuesly >., changing it to once only @ connect.
~-~(HDX)~-~
May 18, 2005, 2:58 AM
Quarantine
So, it's like a news message? Neat.
May 18, 2005, 2:58 AM
Myndfyr
[quote author=Warrior link=topic=11614.msg112810#msg112810 date=1116383043]
Myndy is right. Reverse engineering is converting a file into dissasemby (not assembled) and figuring out what it does therefore writing your own implementation of it in another language. You investigated a packet sent to you over a network, unless you dissasembled BNLS then you have not done any reverse engineering :]
[/quote]
Don't read too much into my remark.  Wikipedia would disagree with your definition of reverse engineering, as would I.  Reverse engineering is *not* strictly disassembling.

I would term RE as more of an exploration to determine *how* something works.  I wouldn't term Joe's work as RE because he didn't look to see *how* the packet was created.  Although, he could argue that it *is* RE because he was discovering how the protocol was extended.
May 18, 2005, 3:12 AM
HdxBmx27
[code]        for (int h = 0; h < Constants.numOfNews; h++){
        OutPacketBuffer p15 = new OutPacketBuffer(0x15);
        p15.addNTString(Constants.strNews[h]);
        out.write(p15.getBuffer());
        p15 = null;
        Out.info("Thread " + threadID, "Sent 0x15.");
    }[/code]

I was varry lazy, shitty aint it? Like I said added it to notify people of upcoming changes/downtime.
~-~(HDX)~-~
May 18, 2005, 3:16 AM
UserLoser.
Eww @ replacing an existing BNLS message with some news thing in emu server
May 18, 2005, 4:17 AM
HdxBmx27
I replaced nothing, atleast noting that I know of, 0x15 was an open packet ID. And I don't think there has been news added to official BNLS servers yet...

If some people would allow me fuller access ot doccumentaytion, I would know if I had screwed with something, and then fixed it. *yes this is a hint for people to give me more access :P, I only wish to understand things more compleetly.*
~-~(HDX)~-~
May 18, 2005, 4:22 AM
Quarantine
I was using it in the context of bot development :p
May 18, 2005, 4:23 AM
Kp
[quote author=UserLoser link=topic=11614.msg112837#msg112837 date=1116389826]
Eww @ replacing an existing BNLS message with some news thing in emu server
[/quote]

I think it's a great idea.  It forces people to choose between supporting BNLS or some crappy emulation. :)  Any client which supports Hdx's news message will get horribly confused when it encounters an official form BNLS_15.

Of course, I'm the one that advocated having flag 1 on BNLS_HASHDATA request that the server return a randomized result.  The flag is presently undefined because some very old versions of CSB randomly set/clear that flag, so assigning meaning to it would cause them to behave strangely.
May 18, 2005, 3:50 PM
Zakath
[quote author=Kp link=topic=11614.msg112871#msg112871 date=1116431436]
Of course, I'm the one that advocated having flag 1 on BNLS_HASHDATA request that the server return a randomized result.  The flag is presently undefined because some very old versions of CSB randomly set/clear that flag, so assigning meaning to it would cause them to behave strangely.
[/quote]

Haha...now there's a fun idea. 8)
May 18, 2005, 5:22 PM
HdxBmx27
Fine I'll not replace anything, I'm assuming that there are not 256 packet id's in BNLS, therefor my new ID will be 0xFF and any extra things I add will work down form there. Now like I said if people would actually give me more information on what I am doing then I would make it compliant with everyhting that is already implamented. And it's not a crappy emulation it is actually a good emulation, Some people could argue that BNLS itself is a crapy emulation of Blizzard's hashing algos.

Anyway use of JBLS is OPTIONAL. If you don't like it don't use it and don't complain about it.
JBLS was made for the times that BNLS isn't accessible, not up-to-date (I added a easy to use config to JBLS and easy updating). It takes me 3 seconds to update my JBLS server(after I notice ther eis an update) mainly cuz I type slow.  It was also made because VL has the only copies of BNLS that I know of. And users of BNLS might want to run there own server, not wanting to send plain text over the net, Wanted it to run old hashes (why I dont know) or just wanted to have there own, whatever the reason noone cares. Why do people use TestBNCS or PvP?

~-~(HDX)~-~
May 18, 2005, 6:31 PM
UserLoser.
[quote author=HdxBmx27 link=topic=11614.msg112884#msg112884 date=1116441085]
Fine I'll not replace anything, I'm assuming that there are not 256 packet id's in BNLS, therefor my new ID will be 0xFF and any extra things I add will work down form there. Now like I said if people would actually give me more information on what I am doing then I would make it compliant with everyhting that is already implamented. And it's not a crappy emulation it is actually a good emulation, Some people could argue that BNLS itself is a crapy emulation of Blizzard's hashing algos.

Anyway use of JBLS is OPTIONAL. If you don't like it don't use it and don't complain about it.
JBLS was made for the times that BNLS isn't accessible, not up-to-date (I added a easy to use config to JBLS and easy updating). It takes me 3 seconds to update my JBLS server(after I notice ther eis an update) mainly cuz I type slow.  It was also made because VL has the only copies of BNLS that I know of. And users of BNLS might want to run there own server, not wanting to send plain text over the net, Wanted it to run old hashes (why I dont know) or just wanted to have there own, whatever the reason noone cares. Why do people use TestBNCS or PvP?

~-~(HDX)~-~
[/quote]
I thought it was already been proven that BNLS is more efficent then Blizzard's implementations?

Not wanting to send plain text over net?  Do you encrypt your bills in the mail when you send them?  You know, someone could easily get into your mailbox, or someone at post office can just take your bill/money/whatever and have fun with it.  I find it quite odd that some of us here are more worried about passwords and cdkeys for computer games than they would be about their real life mail, for example. (no, not email, mail as in a mailbox outside your house where the mailman (uh oh, security issue) comes and takes it).  But whatever, you make your own choices
May 18, 2005, 6:43 PM
HdxBmx27
UL I honestly agree that sending plain text information over the internet (to servers such as BNLS, BNCS, etc..) is no big deal, but a lot of people freak out "OMG OMG OMG OMG MY PASSWORD MY CDKEYS NOOOOOOOSSSS!!!!1!!!11!!!1!!!!ONE"

THe main reason I use JBLS is just because it's faster (for me) to work locally then over the net. Also the fact that I have the source, and can edit thigns that I find don't sute my needs. And I can update it a lot faster.
~-~(HDX)~-~
May 18, 2005, 6:54 PM
Kp
[quote author=HdxBmx27 link=topic=11614.msg112884#msg112884 date=1116441085]
Fine I'll not replace anything, I'm assuming that there are not 256 packet id's in BNLS, therefor my new ID will be 0xFF and any extra things I add will work down form there. Now like I said if people would actually give me more information on what I am doing then I would make it compliant with everyhting that is already implamented. And it's not a crappy emulation it is actually a good emulation, Some people could argue that BNLS itself is a crapy emulation of Blizzard's hashing algos.[/quote]

You seem a bit angry.  Anyway, I suppose I should've mentioned that we were considering using the upper half of the range for optional extension/negotiation messages, and the lower half for service messages.  It'd really be a much better idea if you wouldn't go extending the protocol without announcing it before you settle on an ID#.  You're making a real mess of things, with two different ID#s assigned to news already.  We can't give you more information on what you're doing, because - well, because you're the one doing it, not us.  Also, I don't see why we should need to announce every possible extension to people who're just making crappy knockoffs. :)

[quote author=HdxBmx27 link=topic=11614.msg112884#msg112884 date=1116441085]
Anyway use of JBLS is OPTIONAL. If you don't like it don't use it and don't complain about it.
JBLS was made for the times that BNLS isn't accessible, not up-to-date (I added a easy to use config to JBLS and easy updating). It takes me 3 seconds to update my JBLS server(after I notice ther eis an update) mainly cuz I type slow.  It was also made because VL has the only copies of BNLS that I know of. And users of BNLS might want to run there own server, not wanting to send plain text over the net, Wanted it to run old hashes (why I dont know) or just wanted to have there own, whatever the reason noone cares. Why do people use TestBNCS or PvP?[/quote]

Quite a lot to address there.  I won't try to speak to the motives of why people use Arta's server, but PvP is quite a bit more interesting than facing computer controlled enemies.  This whole mess got started because you were polluting the BNLS ID# namespace with non-standard messages, so once we activate any conflicting ID#s, any client which handles those is required to use JBLS instead of the real deal (or is re-coded to use BNLS's interpretation, in which case JBLS usage is prohibited).  It's really a no-win deal when you go hacking in extensions like that. :)

[quote author=UserLoser link=topic=11614.msg112885#msg112885 date=1116441831]I thought it was already been proven that BNLS is more efficent then Blizzard's implementations?[/quote]

I don't recall if we have performance comparisons between Blizzard's internal (server-side) implementation and the one on BNLS, but I'd be quite surprised if BNLS didn't at least break even. :)  IIRC, BNLS also meets or exceeds the performance of the client-side algorithms.
May 18, 2005, 7:17 PM
HdxBmx27
[quote author=Kp link=topic=11614.msg112896#msg112896 date=1116443852]
You seem a bit angry.  Anyway, I suppose I should've mentioned that we were considering using the upper half of the range for optional extension/negotiation messages, and the lower half for service messages.  It'd really be a much better idea if you wouldn't go extending the protocol without announcing it before you settle on an ID#.  You're making a real mess of things, with two different ID#s assigned to news already.  We can't give you more information on what you're doing, because - well, because you're the one doing it, not us.  Also, I don't see why we should need to announce every possible extension to people who're just making crappy knockoffs. :)[/quote]

I was angry, I'm sick of people calling things they didn't make cheap, and/or knock offs. As for your considerations, It would be nice if you allowed people who are interested, and would understand then to hear them. As for announcing it before I settle on an ID#, I agree I was wrong for not knowing more about the server, But I do not blame it all on myself, I place some of it on the fact that there are unknown things going on where there are people trying to improve upon your product.
As for the information on what I'm doing, I worded it wrong, I meant more information that would allow me to be compatible with you, and still allow me to expand upon things. (even now it's worded freaky 0.o). Ad for the announcing the possible extent ions, I think you should, but not EVERY POSSIBLE one, just the ones that you are currently considering.


[quote author=Kp link=topic=11614.msg112896#msg112896 date=1116443852]
Quite a lot to address there.  I won't try to speak to the motives of why people use Arta's server, but PvP is quite a bit more interesting than facing computer controlled enemies.  This whole mess got started because you were polluting the BNLS ID# namespace with non-standard messages, so once we activate any conflicting ID#s, any client which handles those is required to use JBLS instead of the real deal (or is re-coded to use BNLS's interpretation, in which case JBLS usage is prohibited).  It's really a no-win deal when you go hacking in extensions like that. :)[/quote]
Meh PvP server is an extent ion of BNet to allow for more of the end-users needs to be fulfilled. Thats what JBLS is, an extent ion of BNLS witch allows then end-user to put what he/she wants into it. And to expand upon it. As for my method of making this packet w/o knowing all the information look above.

What I think NEEDS to be done is this: the programmers involved in the BNLS project MUST stop thinking of the programmers involved in the JBLS project is Low life scum who made a "cheap knock off" of there product. You need to start thinking of use as fellow programmers who wish to make the most out of BOTH of our products. Also instead of releasing everything to the PUBLIC, maybe just add the people for the JBLS team into your decisions pertain to BNLS. Even if you don't give them permission to give input, it would be better if they knew what was going on instead of simply going on speculations.  (Like this one witch turned out to be nothing but hell -.-)

Also maybe you should add such a message as this (the BNLS_SERVERMESSAGE) and we ALL can decide on an appropriate ID# for it. So that JBLS and BNLS both grow together therefor making no bot out there require either.

So to re-cap, I STRONGLY believe that you should consider the JBLS team as equals. not as people who make knock offs, but people who make extent ions. And we should work together to make the experience better for everyone.

~-~(HDX)~-~
May 18, 2005, 7:56 PM
UserLoser.
So why not make your own server with own protocol instead of copying BNLS and adding onto it?
May 18, 2005, 8:08 PM
HdxBmx27
[quote author=UserLoser link=topic=11614.msg112898#msg112898 date=1116446936]
So why not make your own server with own protocol instead of copying BNLS and adding onto it?
[/quote]
Why? For the same reason people don't make there own chat servers, and just use BNCS. It's more commonly used. And If we made a new protocall, we wouldn't have it used untill it became famous, and even then *most* bot programmers will be lazy and not want to add our new protocal. Or just not have the know-how to add it. (taking into account all the CSB programmers who don't know the 1st things about b.net)
~-~(HDX)~-~
May 18, 2005, 8:21 PM
The-FooL
Hdx: as much as you may like JBLS and working on it, it was only created by me as a workaround before BNCSUtil came out.  The source is open, but I don't claim it to be anything it's not. 
May 18, 2005, 10:34 PM
Newby
[quote author=UserLoser link=topic=11614.msg112885#msg112885 date=1116441831]
I find it quite odd that some of us here are more worried about passwords and cdkeys for computer games than they would be about their real life mail, for example. (no, not email, mail as in a mailbox outside your house where the mailman (uh oh, security issue) comes and takes it).  But whatever, you make your own choices
[/quote]

The instant you stick something in an envelope, seal it, and put a stamp on it, if it gets tampered with (according to my dad, who does work for the government) the government will help you find justice. Or something like that.
May 18, 2005, 11:01 PM
HdxBmx27
Bah fine, I'll still work on it, if people use my server, then they know it's a JBLS server, and so I can do w/e the heck I want to it, even to expand on it. People who use it be warned that It may cause errors because of no-compliance with BNLS's standards.

So if you use it just for the standard hashing you'll be fine. Otherwise you'll have to determin if it's my server, I'm going to do this by sending 0xFE on connect.

Packet ID: 0xFE
Packet Name: Hdx_ServerVer
Contents:
    DWORD: Current Server version.
    BOOL: Requires account authorization.

Remarks: This is simply to notify the user that they are using a non-standard BNLS server. Also Local hashing is still advised over either server. Also I don't mean to come off 'cocky' as Ian so bluntly put it -.-
~-~(HDX)~-~
May 18, 2005, 11:14 PM
tA-Kane
While you're into adding packets that could be used to specify what the server supports, you could add another part to that packet that specifies whether the server requires authorization from the client before allowing it access to use specific packets.
May 19, 2005, 1:11 AM
HdxBmx27
Thats a good Idea, But considering my server is open, it will always be 0. It will be in 0xFE along wiht the server ver.
~-~(HDX)~-~
May 19, 2005, 1:25 AM
JoeTheOdd
Wow, Hdx has stolen 3 packetID's from a useful cause and still acomplished nothing! We can tell if its you're server just by looking at the DNS. Duh.

EDIT: Lawl @ me thinking this was really BNLS>
May 19, 2005, 11:47 PM
HdxBmx27
2 packet id's not three.
I'll still comply with any new expanshions of BNLS that they make public, but sence there not making any public, i'm in the free. + it's my server :/ and if people dont liek ti use normal BNLS, witch is recommended anyways.
~-~(HDX)~-~
May 20, 2005, 12:02 AM
JoeTheOdd
Hdx, how about seeing as how you have the ONE 24/7 BNLS server, you keep it working? Kthx.
May 20, 2005, 1:01 AM
HdxBmx27
The ONE JBLS** server I ahve is always running, I never use it for screwing with. I always test on a 2nd server (port 9366). Thats only up when Im testing things, And then I don't upgrade the 24/7 one untill I'm sure it's working. And no buggs mess it up.
~-~(HDX)~-~
May 20, 2005, 2:18 AM
Arta
I think all of you are wrong.

To HDX/JBLS:

Adding messages to a protocol in such an ad-hoc way is not wise. Kp is right: it will make things worse in the longrun. If you want to add messages, you should speak to the BNLS team and come to an agreement on a standard. These things must be agreed upon in advance, or the protocol ends up being messy and horrible. It is also bad to require people to identify a server implementation and write special code to make use of its non-standard features. Protocols must be standardised for the good of everyone.

To Kp/BNLS:

The fact that people are making their own versions of BNLS is good, and is a compliment. BNLS has had reliability issues, and JBLS thus has a valid role as a backup/local server. The fact that the protocol now has more than one implementor is positive and healthy and should lead to new ideas and innovations. This is not something anyone should be against.


A message to identify the specific server implementation shouldn't really be necessary, but it might be nice. A news message sounds like a very good idea. It might even be nice to have some way for BNLS servers to request news from each other.

I think you guys should cooperate instead of sniping at each other.
May 20, 2005, 2:20 AM
JoeTheOdd
[quote]I think you guys should cooperate instead of sniping at each other.[/quote]
Amen, brotha!
May 20, 2005, 3:01 AM
R.a.B.B.i.T
Inter-server chat?  What?  It might be a good idea for JBLS to start implementing a system where it forwards a connection to a different JB/BNLS server if its load is maxed.
May 20, 2005, 3:36 AM

Search