• Welcome to Valhalla Legends Archive.
 

Revelation Bot!

Started by Joe[x86], December 27, 2005, 12:34 AM

Previous topic - Next topic

Joe[x86]

You all think I'm insane, and will have that thought reinforced after reading this post. You'll live.

Revelation Bot will be a Battle.net Bot that is aimed to make all the features available in the client available through the bot, much like LoRd[nK]'s BBBB. The difference, though, is that I'm placing the core of the bot in an OCX like CleanSlateBot called RevelationBotCore.

RevelationBot
I'm looking to create an easy-to-use, user-friendly, yet attractive bot, that even your little sister could use. This will have the standard features that all bots should have, a configuration form, a queue, etc, yet have more options as well, such as to display ads, download files from BNFTP, and to use BCP plugins.

RevelationBotCore
This will be a collection of User Controls that aim to make Battle.net bot programming as easy as possible, even more than the CSB did. A few features will be a complete BNCS gateway (for lack of a better word) like CSB, an improved picture box control that allows use of PCX files, and in the future SMK files, and even a blocking Winsock.

I'm looking to implement most stuff that DLL's are used for, such as CheckRevision and CDKey decoding, right into the bot.

Wish me luck.

EDIT -
I guess I forgot to say this, but..

This is very likely to be my last endeavor into Battle.net bot programming with Visual Basic, and because of that, I'm going to do my absolute best work on this, revising every piece of code until its pretty and stuff like that, and then relase it open source for all the little people to enjoy! =)
Quote from: brew on April 25, 2007, 07:33 PM
that made me feel like a total idiot. this entire thing was useless.

QwertyMonster

Wow sounds cool. Can't wait to see this. Keep us updated on how it's going! :)

Networks

Suffice to say...Battle.net programming is already easy. Your CSB wannabe control would only help a little bit and cut out any fun that battle.net programming even possess anymore. Good job. I think that's a radical revelation in itself.

Yegg

Joe... you work too hard.  :P

Mesiah / haiseM

Nice encouragment, Networks. Why people get on here to read things and ideas other people cherish and turn to this community for support and help, only to bash and put them down, I'm not quite sure anymore.. As many before your time have said, Networks; Battle.net is a community that will most likely never fade. Although the amount of developers has grown to an immense number, There are still people out there willing to dedicate time and effort to learning and putting back into this same community. Comments like those, however, shoot them down and may possible prevent them from wanting to return here. All I'm saying is, be a little more supportive or productive with your nonsense post's.... Its getting rediculous.

Anyways, Joe. I've perfected the art of VB programming in ways i never thought possible only a year ago. I have designed a method of coding that maintains such stability, It was kind of hard to beleive once I conquered it. As you know, I'm probably the first or one of the veterans for displaying animated banner files. At first, I had my bot actually use the smacker program to divide the frames up and compile the banners into .gif's so i could display them pretty easily. After non-stop searching I've came accross the smacker API, and its so easy it makes me giggle sometimes. If your having any problems painting them onto the form or accessing the API correctly, shoot me a PM...

As far as the bot goes, I think you'll progress pretty easily. All the hashing and encoding functions and whatnot have been ported to visual basic already, although quite sluggish at times, but hey, your bot core relies on an active x control anyways, so I guess you'll have that... Keep us posted, good luck!
]HighBrow Innovations
Coming soon...

AIM Online Status: 

MyndFyre

Quote from: Networks on December 27, 2005, 11:56 AM
Suffice to say...Battle.net programming is already easy. Your CSB wannabe control would only help a little bit and cut out any fun that battle.net programming even possess anymore. Good job. I think that's a radical revelation in itself.
I disagree.  The fun of programming a Battle.net program is making it have original features.  Modularization facilitates that.
QuoteEvery generation of humans believed it had all the answers it needed, except for a few mysteries they assumed would be solved at any moment. And they all believed their ancestors were simplistic and deluded. What are the odds that you are the first generation of humans who will understand reality?

After 3 years, it's on the horizon.  The new JinxBot, and BN#, the managed Battle.net Client library.

Quote from: chyea on January 16, 2009, 05:05 PM
You've just located global warming.

Networks

#6
Quote from: MyndFyre on December 27, 2005, 02:31 PM
Quote from: Networks on December 27, 2005, 11:56 AM
Suffice to say...Battle.net programming is already easy. Your CSB wannabe control would only help a little bit and cut out any fun that battle.net programming even possess anymore. Good job. I think that's a radical revelation in itself.
I disagree.  The fun of programming a Battle.net program is making it have original features.  Modularization facilitates that.

Funny, I thought the fun of battle.net programming was the challenge that once existed. At least it was that way for me. CSB really doesn't help unless you're tired of creating the same shit connection structure, I still haven't gotten tired of that since I improve it everytime.

I can understand Joe wanting to program something that may be a challenge to himself however I can't understand why he'd make it easier for everyone else in an area that's already so open. Perhaps if it was open source :P.

Mesiah / haiseM

Maybe because programmers like him already know the run-down on connection procedures and whatnot, just like you. I can honestly say, and I'm sure many of you recognize this as well, since CSB and the number of developers grew so greatly, this place has been more active, more productive, and alot more idea's have come forth. For example, Joe hasn't been here as long as me, yet has probably accomplished more or just as much as I have. Look at his starcraft Cd-key thread. You should be thanking people and idea's like that for still being active in this community... You can hold yourself on high and try to "fight" for some cause that you think may be unfair, but just remember you were in that very same position at some point too.
]HighBrow Innovations
Coming soon...

AIM Online Status: 

Yegg

Quote from: Mesiah / haiseM on December 27, 2005, 02:48 PM
Maybe because programmers like him already know the run-down on connection procedures and whatnot, just like you. I can honestly say, and I'm sure many of you recognize this as well, since CSB and the number of developers grew so greatly, this place has been more active, more productive, and alot more idea's have come forth. For example, Joe hasn't been here as long as me, yet has probably accomplished more or just as much as I have. Look at his starcraft Cd-key thread. You should be thanking people and idea's like that for still being active in this community... You can hold yourself on high and try to "fight" for some cause that you think may be unfair, but just remember you were in that very same position at some point too.

This is why I said, jokingly, that Joe works too hard. Although he can be quite annoying and childish at times, he has gotten a great amount of work accomplished on these forums.

MyndFyre

Quote from: Networks on December 27, 2005, 02:33 PM
Funny, I thought the fun of battle.net programming was the challenge that once existed. At least it was that way for me. CSB really doesn't help unless you're tired of creating the same shit connection structure, I still haven't gotten tired of that since I improve it everytime.
Perhaps then we simply have a difference of opinion.  For me, the first time I got into making a bot, the challenge wasn't the connection.  That was, of course, a hurdle to overcome; however, that wasn't the real draw for me.  Instead, I wanted to find new and original things that my bot could do -- for example, I wrote a plugin for my bot that would interface with my clan's website, monitor our members and their aliases, and then update the website with the message "so-and-so was last seen as alias on the game-icon on long date-time."  It might not have been as revolutionary as WebBot, for example, but it was something that no other bot had, at least that I could get my hands on.

Quote from: Networks on December 27, 2005, 02:33 PM
I can understand Joe wanting to program something that may be a challenge to himself however I can't understand why he'd make it easier for everyone else in an area that's already so open. Perhaps if it was open source :P.
Why would making it open-source be any better?  And why not share his work with the rest of the community?  I did so with my first bot -- the .NET binary was documented and provided to anyone who wanted to use it.  In many ways, it was a lot more powerful than CSB, and that was inherent in the object-oriented design I took with it.

At the end of the day, I think it's silly to pick on a project like this.
QuoteEvery generation of humans believed it had all the answers it needed, except for a few mysteries they assumed would be solved at any moment. And they all believed their ancestors were simplistic and deluded. What are the odds that you are the first generation of humans who will understand reality?

After 3 years, it's on the horizon.  The new JinxBot, and BN#, the managed Battle.net Client library.

Quote from: chyea on January 16, 2009, 05:05 PM
You've just located global warming.

Joe[x86]

#10
@Networks: Go write your own CleanSlateBot-"wannabe" control that supports every game, supports local hashing, and doesn't depend on other libraries, release it open source, and then, only then, come back and bitch at me. Thanks. -.-

@Everyone else: Thanks.

So far I've gotten the core laid down and a few packets being sent and received. Its easy sailing from here.

Implementing CD-Key decoding and stuff in VB is harder than I thought. I'll cheat and use BNCSutil, for now.
Quote from: brew on April 25, 2007, 07:33 PM
that made me feel like a total idiot. this entire thing was useless.

Trejo

Quote from: Joe on December 27, 2005, 10:12 PM
Implementing CD-Key decoding and stuff in VB is harder than I thought. I'll cheat and use BNCSutil, for now.

Implementing the long alphanumeric Cd-Key decoding routine in Visual Basic may be tough, but the simple numeric and short alphanumeric routines shouldn't be much of a hassle.  Give it a try.

Joe[x86]

I already did give it a try. I'll get it done eventually, I just have bigger priorities, that can't be handled by BNCSUtil.




I'm doing a lot of work on RBC instead of RB itself to start out with. If you're bored, read these notes I have for AuthEvent and LogonEvent.

AuthEvent status codes:
0x01 - SID_AUTH_INFO sent
0x02 - SID_AUTH_INFO recv
0x03 - SID_AUTH_CHECK sent
0x04 - SID_AUTH_CHECK recv
-- 0x01 PASS
-- 0x02 CDKEY FAIL
-- 0x03 CDKEY2 FAIL
Always check these bitwise

LogonEvent status codes:
0x01 - SID_LOGONRESPONCE
-- 0x01 SEND
-- 0x02 RECV FAIL
-- 0x03 RECV PASS (extrainfo holds unique username)
0x02 - SID_LOGONRESPONCE2
-- 0x01 SEND
-- 0x02 RECV FAIL
-- 0x03 RECV PASS (extrainfo holds unique username)
Quote from: brew on April 25, 2007, 07:33 PM
that made me feel like a total idiot. this entire thing was useless.

warz

Damn, we got some haters in the house.

Joe[x86]

Omg, its beautiful!

Private Sub Handle_SID_AUTH_INFO(sPacket As String, Core As ucBotCore, Debuf As clsPacketDebuffer, BotVars As clsBotVariables)
    With Debuf
        BotVars.LogonType = .removeINT32
        BotVars.ServerToken = .removeINT32
        BotVars.UDPValue = .removeINT32
        BotVars.MPQNum = Val(Mid(.removeSTRING, 8, 1))
        BotVars.ValueString = .removeSTRING
        If BotVars.Product = "WAR3" Or BotVars.Product = "W3XP" Then BotVars.ServerSignature = .removeVOID(128)
    End With
    BotVars.ClientToken = GetTickCount
    '// TOTO: SEND 0x51
   
    Dim InfoString$, Checksum&, EXEVersion&
    Dim KeyHash1 As String * 20, PublicValue1 As Long, ProductValue1 As Long
    Dim KeyHash2 As String * 20, PublicValue2 As Long, ProductValue2 As Long
    Call checkRevision(BotVars.ValueString, BotVars.GetHashes(1), BotVars.GetHashes(2), BotVars.GetHashes(3), BotVars.MPQNum, Checksum)
    Call kd_quick(BotVars.CDKey, BotVars.ClientToken, BotVars.ServerToken, PublicValue1, ProductValue1, KeyHash1, 20)
    Select Case Product
        Case "D2XP", "W3XP"
            Call kd_quick(BotVars.CDKey, BotVars.ClientToken, BotVars.ServerToken, PublicValue1, ProductValue1, KeyHash1, 20)
            Call kd_quick(BotVars.CDKey2, BotVars.ClientToken, BotVars.ServerToken, PublicValue2, ProductValue2, KeyHash2, 20)
        Case Else
            Call kd_quick(BotVars.CDKey, BotVars.ClientToken, BotVars.ServerToken, PublicValue1, ProductValue1, KeyHash1, 20)
    End Select
    With BNCS.PBuffer
        .addINT32 BotVars.ClientKey
        .addINT32 EXEVersion
        .addINT32 Checksum
        Select Case BotVars.Product
            Case "D2XP", "W3XP"
                .addINT32 2
                .addINT32 0
                .addINT32 Len(BotVars.CDKey)
                .addINT32 ProductValue1
                .addINT32 PublicValue1
                .addINT32 0
                .addVOID KeyHash1
                .addINT32 Len(BotVars.CDKey2)
                .addINT32 ProductValue2
                .addINT32 PublicValue2
                .addINT32 0
                .addVOID KeyHash2
            Case Else
                If Spawn Then
                    .addINT32 0
                    .addINT32 1
                Else
                    .addINT32 1
                    .addINT32 0
                    .addINT32 Len(BotVars.CDKey)
                    .addINT32 ProductValue
                    .addINT32 PublicValue
                    .addINT32 0
                    .addVOID KeyHash
                End If
        End Select
        .addSTRING InfoString
        .addSTRING "Revelation Bot Core"
        Core.SendData .returnBNCS(&H51)
    End With
End Sub
Quote from: brew on April 25, 2007, 07:33 PM
that made me feel like a total idiot. this entire thing was useless.