• Welcome to Valhalla Legends Archive.
 

CleanSlateBot2.ocx

Started by Wolf, November 04, 2006, 06:01 PM

Previous topic - Next topic

ZergMasterI

BNCS = Battle.net Chat Server....
o_o
Even I, who barely visits here, know this!

Wolf

Quote from: l2k-Shadow on November 21, 2006, 05:19 PM
because you can do all that while you cannot construct a simple packet consisting of 3 constants, and 3 values retrieved from another packet.

That doesn't mean anything, some people learn better from seeing how something works rather then just reading about it in a book. Parsing IRC, or data that comes off of bnet is by far the simplest thing you can ever do connection wise, theres no "Statstring", or "Product Version", no "CD Key to process" its just data is and data out if say you get 1007 TALK *some user* *some text* well there you go send that in a series of IF's and Select Cases and you have a product.

now second thing is this what you need to change in a BNLS Code?

Case &H1A '&H9 'change
       Version = Val("&H" & StrToHex(StrReverse(Mid(Data, 8, 4))))
       Version = CLng(Version)
       'Debug.Print "&H9 - Recieved Version: " & Version
       
       CheckSum = BNLSChecksum(BNET.Password, Version) 'Val("&H" & StrToHex(StrReverse(Mid(data, 12, 4))))
       CheckSum = CLng(CheckSum)
       'Debug.Print "&H9 - Recieved CheckSum: " & CheckSum
       
       ExeInfo = Mid(Data, 16, Len(Data) - 16)
      ' Debug.Print "&H9 - Recieved ExeInfo: " & ExeInfo
       
         If Prod = "PX2D" Then
           With PBuffer
               .InsertDWORD &H0
               .InsertBYTE &H2
               .InsertDWORD &H1
               .InsertDWORD Servers
               .InsertNTString Form2.keyimput.text
               .InsertNTString Form2.LODKey.text
               .SendBNLSPacket &HC
           End With
         Else
           With PBuffer
              .InsertDWORD Servers
              .InsertNTString Form2.keyimput.text
              .SendBNLSPacket &H1
           End With
         End If
         Debug.Print "&H9 - Sent CD Key info: " & Form2.keyimput.text
Seen as +i!+Wolf+i!+, (i!)~Wolf~(i!)

Hdx

Quote from: Wolf on November 21, 2006, 05:30 PM
That doesn't mean anything, some people learn better from seeing how something works rather then just reading about it in a book.
True, this is usually how I learn, but you should be able to learn BOTH ways -.-
Quote from: Wolf on November 21, 2006, 05:30 PMParsing IRC, or data that comes off of bnet is by far the simplest thing you can ever do connection wise, theres no "Statstring", or "Product Version", no "CD Key to process" its just data is and data out if say you get 1007 TALK *some user* *some text* well there you go send that in a series of IF's and Select Cases and you have a product.
The telnet protocol of BNCs (Defunct now) is nothing more then an expanded 0x0f. If you read the packets + bnet docs you will relizer that all the values sent to you while on a telnet session, are the same exact values sent to you when on a binary connection.

Quote from: Wolf on November 21, 2006, 05:30 PMnow second thing is this what you need to change in a BNLS Code?

Case &H1A '&H9 'change
        Version = Val("&H" & StrToHex(StrReverse(Mid(Data, 8, 4))))
        Version = CLng(Version)
        'Debug.Print "&H9 - Recieved Version: " & Version
       
        CheckSum = BNLSChecksum(BNET.Password, Version) 'Val("&H" & StrToHex(StrReverse(Mid(data, 12, 4))))
        CheckSum = CLng(CheckSum)
        'Debug.Print "&H9 - Recieved CheckSum: " & CheckSum
       
        ExeInfo = Mid(Data, 16, Len(Data) - 16)
       ' Debug.Print "&H9 - Recieved ExeInfo: " & ExeInfo
       
          If Prod = "PX2D" Then
            With PBuffer
                .InsertDWORD &H0
                .InsertBYTE &H2
                .InsertDWORD &H1
                .InsertDWORD Servers
                .InsertNTString Form2.keyimput.text
                .InsertNTString Form2.LODKey.text
                .SendBNLSPacket &HC
            End With
          Else
            With PBuffer
               .InsertDWORD Servers
               .InsertNTString Form2.keyimput.text
               .SendBNLSPacket &H1
            End With
          End If
          Debug.Print "&H9 - Sent CD Key info: " & Form2.keyimput.text

For 1) Use the code tags. For 2) Compair This to This you will see exactly what you need to do! (If you are not a compleet and utter moron -.-)
I also suggest you look into a 'De-buffer' class. Its the exact opposit of your PBuffer class (Removing things insted of adding)
~-~(HDX)`-~

Proud host of the JBLS server www.JBLS.org.
JBLS.org Status:
JBLS/BNLS Server Status

Wolf

#48
Quote from: Hdx on November 21, 2006, 05:44 PM
Quote from: Wolf on November 21, 2006, 05:30 PM
That doesn't mean anything, some people learn better from seeing how something works rather then just reading about it in a book.
True, this is usually how I learn, but you should be able to learn BOTH ways -.-
Quote from: Wolf on November 21, 2006, 05:30 PMParsing IRC, or data that comes off of bnet is by far the simplest thing you can ever do connection wise, theres no "Statstring", or "Product Version", no "CD Key to process" its just data is and data out if say you get 1007 TALK *some user* *some text* well there you go send that in a series of IF's and Select Cases and you have a product.
The telnet protocol of BNCs (Defunct now) is nothing more then an expanded 0x0f. If you read the packets + bnet docs you will relizer that all the values sent to you while on a telnet session, are the same exact values sent to you when on a binary connection.

Quote from: Wolf on November 21, 2006, 05:30 PMnow second thing is this what you need to change in a BNLS Code?

Case &H1A '&H9 'change
        Version = Val("&H" & StrToHex(StrReverse(Mid(Data, 8, 4))))
        Version = CLng(Version)
        'Debug.Print "&H9 - Recieved Version: " & Version
       
        CheckSum = BNLSChecksum(BNET.Password, Version) 'Val("&H" & StrToHex(StrReverse(Mid(data, 12, 4))))
        CheckSum = CLng(CheckSum)
        'Debug.Print "&H9 - Recieved CheckSum: " & CheckSum
       
        ExeInfo = Mid(Data, 16, Len(Data) - 16)
       ' Debug.Print "&H9 - Recieved ExeInfo: " & ExeInfo
       
          If Prod = "PX2D" Then
            With PBuffer
                .InsertDWORD &H0
                .InsertBYTE &H2
                .InsertDWORD &H1
                .InsertDWORD Servers
                .InsertNTString Form2.keyimput.text
                .InsertNTString Form2.LODKey.text
                .SendBNLSPacket &HC
            End With
          Else
            With PBuffer
               .InsertDWORD Servers
               .InsertNTString Form2.keyimput.text
               .SendBNLSPacket &H1
            End With
          End If
          Debug.Print "&H9 - Sent CD Key info: " & Form2.keyimput.text

For 1) Use the code tags. For 2) Compair This to This you will see exactly what you need to do! (If you are not a compleet and utter moron -.-)
I also suggest you look into a 'De-buffer' class. Its the exact opposit of your PBuffer class (Removing things insted of adding)
~-~(HDX)`-~

lol, well let me know when you get thoes two "This" links up and working so I can see what your actully trying to tell me, then I don't have to stay a "compleet and utter moron" because the links don't work "We're sorry, but BnetDocs is currently unavailable. Please try again later." ^.^
Seen as +i!+Wolf+i!+, (i!)~Wolf~(i!)

Kp

Quote from: Wolf on November 21, 2006, 12:50 PMThis is why I require a working simple code, no minimize to tray, no graphics, no colors, it can even run in a simple dos consol, Purely simple as simple can be.

In the hope that this will satisfy your requests, an excerpt from a command line BNLS client (hence, very simple) which uses the new request:


_Z14finish_messageRSt6vectorIhSaIhEEh:
.LFB470:
pushl %ebp
.LCFI16:
movl %esp, %ebp
.LCFI17:
subl $24, %esp
.LCFI18:
movl 12(%ebp), %eax
movb %al, -1(%ebp)
movl 8(%ebp), %eax
movl %eax, (%esp)
call _ZNKSt6vectorIhSaIhEE4sizeEv
movl %eax, -8(%ebp)
cmpl $2, -8(%ebp)
ja .L8
movl $_ZZ14finish_messageRSt6vectorIhSaIhEEhE19__PRETTY_FUNCTION__, 12(%esp)
movl $46, 8(%esp)
movl $.LC0, 4(%esp)
movl $.LC1, (%esp)
call __assert_fail
.L8:
movl $0, 4(%esp)
movl 8(%ebp), %eax
movl %eax, (%esp)
call _ZNSt6vectorIhSaIhEEixEj
movl %eax, %edx
movl -8(%ebp), %eax
movb %al, (%edx)
movl $1, 4(%esp)
movl 8(%ebp), %eax
movl %eax, (%esp)
call _ZNSt6vectorIhSaIhEEixEj
movl %eax, %edx
movl -8(%ebp), %eax
shrl $8, %eax
movb %al, (%edx)
movl $2, 4(%esp)
movl 8(%ebp), %eax
movl %eax, (%esp)
call _ZNSt6vectorIhSaIhEEixEj
movl %eax, %edx
movzbl -1(%ebp), %eax
movb %al, (%edx)
leave
ret
.LFE470:
.size _Z14finish_messageRSt6vectorIhSaIhEEh, .-_Z14finish_messageRSt6vectorIhSaIhEEh

main:
.LFB471:
pushl %ebp
.LCFI19:
movl %esp, %ebp
.LCFI20:
pushl %ebx
.LCFI21:
subl $356, %esp
.LCFI22:
andl $-16, %esp
movl $0, %eax
addl $15, %eax
addl $15, %eax
shrl $4, %eax
sall $4, %eax
subl %eax, %esp
movl $6, 8(%esp)
movl $1, 4(%esp)
movl $2, (%esp)
call socket
movl %eax, -12(%ebp)
cmpl $0, -12(%ebp)
jns .L10
movl $.LC2, (%esp)
.LEHB0:
call perror
movl $1, -336(%ebp)
jmp .L9
.L10:
movl $16, 8(%esp)
movl $0, 4(%esp)
leal -40(%ebp), %eax
movl %eax, (%esp)
call memset
movw $2, -40(%ebp)
movl $.LC3, (%esp)
call inet_addr
movl %eax, -36(%ebp)
movl $9367, (%esp)
call htons
movw %ax, -38(%ebp)
movl $16, 8(%esp)
leal -40(%ebp), %eax
movl %eax, 4(%esp)
movl -12(%ebp), %eax
movl %eax, (%esp)
call connect
testl %eax, %eax
jns .L11
movl $.LC4, (%esp)
call perror
.LEHE0:
movl $2, -336(%ebp)
jmp .L9
.L11:
leal -72(%ebp), %eax
movl %eax, (%esp)
call _ZNSaIhEC1Ev
leal -72(%ebp), %eax
movl %eax, 4(%esp)
leal -56(%ebp), %eax
movl %eax, (%esp)
.LEHB1:
call _ZNSt6vectorIhSaIhEEC1ERKS0_
.LEHE1:
jmp .L13
.L23:
movl %eax, -340(%ebp)
.L12:
movl -340(%ebp), %ebx
leal -72(%ebp), %eax
movl %eax, (%esp)
call _ZNSaIhED1Ev
movl %ebx, -340(%ebp)
.L14:
movl -340(%ebp), %eax
movl %eax, (%esp)
.LEHB2:
call _Unwind_Resume
.LEHE2:
.L13:
leal -72(%ebp), %eax
movl %eax, (%esp)
call _ZNSaIhED1Ev
movl $256, 4(%esp)
leal -56(%ebp), %eax
movl %eax, (%esp)
.LEHB3:
call _ZNSt6vectorIhSaIhEE7reserveEj
movl $3, 4(%esp)
leal -56(%ebp), %eax
movl %eax, (%esp)
call _ZNSt6vectorIhSaIhEE6resizeEj
movl $1, 4(%esp)
leal -56(%ebp), %eax
movl %eax, (%esp)
call _Z8insert32RSt6vectorIhSaIhEEj
movl $0, 4(%esp)
leal -56(%ebp), %eax
movl %eax, (%esp)
call _Z8insert32RSt6vectorIhSaIhEEj
movl $0, 4(%esp)
leal -56(%ebp), %eax
movl %eax, (%esp)
call _Z8insert32RSt6vectorIhSaIhEEj
movl $0, 8(%esp)
movl $0, 4(%esp)
leal -56(%ebp), %eax
movl %eax, (%esp)
call _Z8insert64RSt6vectorIhSaIhEEjj
movl $.LC5, 4(%esp)
leal -56(%ebp), %eax
movl %eax, (%esp)
call _Z7insertsRSt6vectorIhSaIhEEPKc
movl $.LC6, 4(%esp)
leal -56(%ebp), %eax
movl %eax, (%esp)
call _Z7insertsRSt6vectorIhSaIhEEPKc
movl $26, 4(%esp)
leal -56(%ebp), %eax
movl %eax, (%esp)
call _Z14finish_messageRSt6vectorIhSaIhEEh
leal -56(%ebp), %eax
movl %eax, (%esp)
call _ZNKSt6vectorIhSaIhEE4sizeEv
movl %eax, -344(%ebp)
movl $0, 4(%esp)
leal -56(%ebp), %eax
movl %eax, (%esp)
call _ZNSt6vectorIhSaIhEEixEj
movl $16384, 12(%esp)
movl -344(%ebp), %edx
movl %edx, 8(%esp)
movl %eax, 4(%esp)
movl -12(%ebp), %eax
movl %eax, (%esp)
call send
testl %eax, %eax
jns .L16
movl $.LC7, (%esp)
call perror
.LEHE3:
leal -56(%ebp), %eax
movl %eax, (%esp)
.LEHB4:
call _ZNSt6vectorIhSaIhEED1Ev
.LEHE4:
movl $3, -336(%ebp)
jmp .L9
.L16:
movl $16384, 12(%esp)
movl $256, 8(%esp)
leal -328(%ebp), %eax
movl %eax, 4(%esp)
movl -12(%ebp), %eax
movl %eax, (%esp)
.LEHB5:
call recv
movl %eax, -332(%ebp)
cmpl $0, -332(%ebp)
jns .L17
movl $.LC8, (%esp)
call perror
.LEHE5:
leal -56(%ebp), %eax
movl %eax, (%esp)
.LEHB6:
call _ZNSt6vectorIhSaIhEED1Ev
movl $4, -336(%ebp)
jmp .L9
.L17:
leal -56(%ebp), %eax
movl %eax, (%esp)
call _ZNSt6vectorIhSaIhEED1Ev
.LEHE6:
movl $0, -336(%ebp)
jmp .L9
.L22:
movl %eax, -340(%ebp)
.L18:
movl -340(%ebp), %ebx
leal -56(%ebp), %eax
movl %eax, (%esp)
call _ZNSt6vectorIhSaIhEED1Ev
movl %ebx, -340(%ebp)
.L20:
movl -340(%ebp), %eax
movl %eax, (%esp)
.LEHB7:
call _Unwind_Resume
.LEHE7:
.L9:
movl -336(%ebp), %eax
movl -4(%ebp), %ebx
leave
ret
.LFE471:
.size main, .-main
.section .gcc_except_table,"a",@progbits


LC5 is the name of the versioning DLL.  LC6 is the encoded seed supplied by battle.net.
[19:20:23] (BotNet) <[vL]Kp> Any idiot can make a bot with CSB, and many do!

Ersan

Why is there a command line BNLS client written in ASM?

Newby

Quote from: Ersan on November 21, 2006, 11:30 PM
Why is there a command line BNLS client written in ASM?

Learning experience? For fun?
- Newby

Quote[17:32:45] * xar sets mode: -oooooooooo algorithm ban chris cipher newby stdio TehUser tnarongi|away vursed warz
[17:32:54] * xar sets mode: +o newby
[17:32:58] <xar> new rule
[17:33:02] <xar> me and newby rule all

Quote<TehUser> Man, I can't get Xorg to work properly.  This sucks.
<torque> you should probably kill yourself
<TehUser> I think I will.  Thanks, torque.

l2k-Shadow

Quote from: Ersan on November 21, 2006, 11:30 PM
Why is there a command line BNLS client written in ASM?

To make Wolf look like a dumbass?
Quote from: replaced on November 04, 2006, 11:54 AM
I dunno wat it means, someone tell me whats ix86 and pmac?
Can someone send me a working bot source (with bnls support) to my email?  Then help me copy and paste it to my bot? ;D
Já jsem byl určenej abych tady žil,
Dával si ovar, křen a k tomu pivo pil.
Tam by ses povídaj jak prase v žitě měl,
Já nechci před nikym sednout si na prdel.

Já nejsem z USA, já nejsem z USA, já vážně nejsem z USA... a snad se proto na mě nezloběj.

warz


Joe[x86]

Quote from: l2k-Shadow on November 21, 2006, 11:35 PM
Quote from: Ersan on November 21, 2006, 11:30 PM
Why is there a command line BNLS client written in ASM?

To make Wolf look like a dumbass?

Bingo.
Quote from: brew on April 25, 2007, 07:33 PM
that made me feel like a total idiot. this entire thing was useless.

l2k-Shadow

I die laughing every time I see someone's "not-ripped code" *cough cough* use this:

Version = Val("&H" & StrToHex(StrReverse(Mid(Data, 8, 4))))
Quote from: replaced on November 04, 2006, 11:54 AM
I dunno wat it means, someone tell me whats ix86 and pmac?
Can someone send me a working bot source (with bnls support) to my email?  Then help me copy and paste it to my bot? ;D
Já jsem byl určenej abych tady žil,
Dával si ovar, křen a k tomu pivo pil.
Tam by ses povídaj jak prase v žitě měl,
Já nechci před nikym sednout si na prdel.

Já nejsem z USA, já nejsem z USA, já vážně nejsem z USA... a snad se proto na mě nezloběj.

l)ragon

Quote from: Joex86] link=topic=15968.msg161578#msg161578 date=1164176068]
Quote from: l2k-Shadow on November 21, 2006, 11:35 PM
Quote from: Ersan on November 21, 2006, 11:30 PM
Why is there a command line BNLS client written in ASM?

To make Wolf look like a dumbass?

Bingo.
I find it funny how a few of you are so quick at ragging on wolf.
I can tell you this much, he has been into the electronic engineering for quite some time now.
*^~·.,¸¸,.·´¯`·.,¸¸,.-·~^*ˆ¨¯¯¨ˆ*^~·.,l)ragon,.-·~^*ˆ¨¯¯¨ˆ*^~·.,¸¸,.·´¯`·.,¸¸,.-·~^*

Kp

Despite his claims regarding EE, his apparent knowledge of programming is quite limited.  That would be ok on its own, but his approach to programming has never been well accepted here, since it reeks of someone looking to avoid making any real effort.
[19:20:23] (BotNet) <[vL]Kp> Any idiot can make a bot with CSB, and many do!

Wolf

#58
Quote from: l)ragon on November 22, 2006, 07:38 PM
Quote from: Joex86] link=topic=15968.msg161578#msg161578 date=1164176068]
Quote from: l2k-Shadow on November 21, 2006, 11:35 PM
Quote from: Ersan on November 21, 2006, 11:30 PM
Why is there a command line BNLS client written in ASM?

To make Wolf look like a dumbass?

Bingo.
I find it funny how a few of you are so quick at ragging on wolf.
I can tell you this much, he has been into the electronic engineering for quite some time now.

I just want to take a moment to thank Dragon for the comment.

to add to Kp's response...
Your right and wrong. Your right when you say my programming is limitted, however that doesn't mean that I don't understand how to program. First of all I want to ask, if someone was so nice to realease SampleBNLS before, how come someone won't do that again with the nessesary corrections to get it going again?

To get back to Kp, EE's there not programmers. Well they are and there not at the same time. They do program but not to the same extent as a true application programmer would. For example, say you get a brand new video card for PCI Express 16x in your computer. It would be the responsibility of the EE or the Comp. E' to develop a series of working functions and drivers that would let an application programmer trigger and use that hardware. You don't often see an EE's writing some graphical code for an user to use. Now, i'm not totally up to date with my programming, like I have never worked with .NET before but I do know VB6 quite well (and earlier versions of basic) and C/C++. I have many books in programming such as stuff for Power Basic, C/C++, VB6, VHDL/AHDL and when they have a function in it that is similar to what I am doing (and I won't lie to you because I haven't yet and I am not about to start), then I will copy out that function into my code and use it and credit for it, after all, why re-invent the wheel when it still works just fine? As for the binary bot I had before, that started out a fue years ago, and all this time, all I needed to do to keep it working was to tweek 1 little byte in my code (the version hash), I have never done anything with a bot other then have 1 bot sit in a channel and do a fue commands that I wipped up to do what I require it to do. Most of the time it would just keep my illigal accounts active. Now that bnet hashing is different, I require the use of BNLS. Now, I don't know why, but for some reason, getting BNLS to work to so that I can use the same bot to do what I require it to do isn't as easy as it was to just get a regulare binary bot to connect. I figured, that "IF" someone were to do what I said in previous messages, I could get BNLS to work on a bot in windows, which I can transfer the same idea/principals to a microcontroller since they require a completely different programming structure.

Also they were right in saying that I "SHOULD" be able to program both ways, but I program THIS way because this is the way I know how. Like I said before, if someone was kind enough to release SampleBNLS in the past, what is so wrong with doing it again? From what I see, thats a chance to get branging rights.
Seen as +i!+Wolf+i!+, (i!)~Wolf~(i!)

l2k-Shadow

#59
so your way of programming is looking at a source and copying/changing the code into your program? Why won't anyone release a SampleBNLS? Because the packet requires about 2 changes in the structure of the packet. We have given you more than enough links on how the new packet structure looks. If you "do know VB6 quite well" and C/C++, there is no reason whatsoever to not know how to do this! This is one of the most simplistic things about programming.. inserting data into a buffer. And you even have an exact written out structure of how to format the data:
Quote
(DWORD) Product ID.*
(DWORD) Flags.**
(DWORD) Cookie.
(ULONGLONG) Timestamp for version check archive.
(String) Version check archive filename.
(String) Checksum formula.
* Valid product IDs are:

#define PRODUCT_STARCRAFT             (0x01)
#define PRODUCT_BROODWAR              (0x02)
#define PRODUCT_WAR2BNE               (0x03)
#define PRODUCT_DIABLO2               (0x04)
#define PRODUCT_LORDOFDESTRUCTION     (0x05)
#define PRODUCT_JAPANSTARCRAFT        (0x06)
#define PRODUCT_WARCRAFT3             (0x07)
#define PRODUCT_THEFROZENTHRONE       (0x08)

** The flags field is currently reserved and must be set to zero or you will be disconnected.
If you programmed bots before as you say, there is absolutely no question that you should know what the data types are, and if you program C++ you definitely should know what an ULONGLONG is. And also if you programmed bots before, you must have parsed the packet 0x50, so there is absolutely no question in knowing what data the packet is asking you to provide.

This is the thing about trying to make yourself seem like you know more than you do, you will not succeed, we KNOW what we're talking about.

And no one is denying you're an electrical engineer, but that is absolutely irrelevant considering the fact that you insist you have thorough programming knowledge.
Quote from: replaced on November 04, 2006, 11:54 AM
I dunno wat it means, someone tell me whats ix86 and pmac?
Can someone send me a working bot source (with bnls support) to my email?  Then help me copy and paste it to my bot? ;D
Já jsem byl určenej abych tady žil,
Dával si ovar, křen a k tomu pivo pil.
Tam by ses povídaj jak prase v žitě měl,
Já nechci před nikym sednout si na prdel.

Já nejsem z USA, já nejsem z USA, já vážně nejsem z USA... a snad se proto na mě nezloběj.

|