Valhalla Legends Forums Archive | Battle.net Bot Development | Ugh...Help 0x1E connection..

AuthorMessageTime
Networks
I got my working with a simple 0x1E connection. I works great and fine at first until I actually start working on it. My first attempt it was really good parsed the wins and all for most clients and added commands and other things. I attempt to conenct it dies and says bnet disconnected right after it attempts to send functions:

Setup ( selects product)
SendHeader
Send1E

I tried to go brand new again with my original source that connected and again it has happened so please tell me why such an event like this is happening its really aggravating to work so much and have it fail and I can't fix it. I think it disconnects after it does the whole sendusernamepassword but it worked fine before and I haven't altered any of the necessary functions accept a places where it parses bnet. Any help at all would be much appreciated.
March 6, 2004, 3:42 AM
UserLoser.
[quote author=Networks link=board=17;threadid=5626;start=0#msg47841 date=1078544571]
Any help at all would be much appreciated.
[/quote]

You'd have to help us first by showing some code/packet logs so we can help you fix it :P
March 6, 2004, 3:58 AM
ChR0NiC
[quote author=Networks link=board=17;threadid=5626;start=0#msg47841 date=1078544571]
I got my working with a simple 0x1E connection. I works great and fine at first until I actually start working on it. My first attempt it was really good parsed the wins and all for most clients and added commands and other things. I attempt to conenct it dies and says bnet disconnected right after it attempts to send functions:

Setup ( selects product)
SendHeader
Send1E

I tried to go brand new again with my original source that connected and again it has happened so please tell me why such an event like this is happening its really aggravating to work so much and have it fail and I can't fix it. I think it disconnects after it does the whole sendusernamepassword but it worked fine before and I haven't altered any of the necessary functions accept a places where it parses bnet. Any help at all would be much appreciated.

[/quote]

Heh, just gonna help refresh your memory on how to connect with 0x1E :P

SEND -> Protocol byte (01)
SEND -> SID_CLIENTID2 (0x1E)
SEND -> SID_LOCALEINFO (0x12)
SEND -> SID_STARTVERSIONING (0x06)
RECV <- SID_LOGONCHALLENGEEX (0x1D)
RECV <- SID_PING (0x25)
RECV <- SID_STARTVERSIONING (0x06)
SEND -> SID_PING (0x25) [Optional]
SEND -> SID_REPORTVERSION (0x07)
RECV <- SID_REPORTVERSION (0x07)
SEND -> SID_UDPPINGRESPONSE (0x14) [Optional]
SEND -> SID_CDKEY2 (0x36)
RECV <- SID_CDKEY2 (0x36)
SEND -> SID_LOGONRESPONSE (0x29)
RECV <- SID_LOGONRESPONSE (0x29)
SEND -> SID_ENTERCHAT (0x0A)
March 6, 2004, 6:04 AM
Networks
Thing is I dont know what the problem is. The only problem i know is it won't connect even though it did before. Only thing I can show is how it addchat's Bnet Disconnected right after it sends: send1e, sendheader, and product selection w/ verbyte and files.

Setup (for the client)
[code]
Public Sub Setup()
On Error Resume Next
Select Case varProduct
Case "RATS", "STAR"
If GetStuff("Version Byte", "Starcraft") = "" Then verByte = "C7" Else verByte = GetStuff("Version Byte", "Starcraft")
exeN = "starcraft"
varFiles = App.Path & "\Binaries\STAR\"
Case "PXES", "SEXP"
If GetStuff("Version Byte", "Starcraft") = "" Then verByte = "C7" Else verByte = GetStuff("Version Byte", "Starcraft")
exeN = "starcraft"
varFiles = App.Path & "\Binaries\STAR\"
Case "NB2W", "W2BN"
verByte = "4F"
exeN = "Warcraft II BNE"
varFiles = App.Path & "\Binaries\W2BN\"
Case "VD2D", "D2DV"
If GetStuff("Version Byte", "Diablo II") = "" Then verByte = "0A" Else verByte = GetStuff("Version Byte", "Diablo II")
exeN = "Game"
varFiles = App.Path & "\Binaries\D2DV\"
Case Else
verByte = "C7"
exeN = "starcraft"
varFiles = App.Path & "\Binaries\STAR\"
End Select
AddC vbGreen, verByte
End Sub[/code]

SendHeader
[code]
Public Sub SendHeader()
On Error Resume Next
Form1.winsock.SendData Chr(1)
AddC vbGreen, "SENDHEADER"
End Sub
[/code]

Send1E
[code]
Public Function Send1E()
On Error Resume Next
pbuffer.InsertDWORD 0
pbuffer.InsertDWORD 0
pbuffer.InsertDWORD 0
pbuffer.InsertDWORD 0
pbuffer.InsertDWORD 0
pbuffer.InsertNTString "."
pbuffer.InsertNTString "."
pbuffer.sendPacket &H1E
pbuffer.InsertNonNTString "68XI" & varProduct
pbuffer.InsertDWORD "&H" & verByte
pbuffer.InsertDWORD 0
pbuffer.sendPacket &H6
AddC vbGreen, "SEND1E"
End Function
[/code]

Parsing of b.net
[code]
Public Sub parsep(ByVal Data As String)
On Error Resume Next
Dim D As String
Dim tmp As String
Dim mpqend As Long
Dim version As Long
Dim Checksum As Long
Dim ExeInfo As String
Dim Result As Long

PacketId = Asc(Mid(Data, 2, 1))
Select Case PacketId
Case &H6
D = Data
mpqname = Mid(D, InStr(D, "I"), Len(D) - InStr(InStr(D, "I"), D, Chr(0)))
mpqend = InStr(InStr(D, "I"), D, Chr(0))
mpqname = Left(mpqname, InStr(mpqname, Chr(0)) - 1)
Hash = Mid(D, mpqend + 1, InStr(mpqend + 1, D, Chr(0)) - 1)
Hash = Left(Hash, InStr(Hash, Chr(0)) - 1)

pbuffer.InsertNonNTString "68XI" & varProduct
pbuffer.InsertDWORD "&H" & verByte

ExeInfo = Space(256)
Result = CheckRevision(varFiles & exeN & ".exe", varFiles & "storm.dll", varFiles & "battle.snp", Hash, version, Checksum, ExeInfo, mpqname)

pbuffer.InsertDWORD version
pbuffer.InsertDWORD Checksum

NullTruncString ExeInfo

pbuffer.InsertNTString ExeInfo
If ExeInfo = Space(256) Then
pbuffer.Clear
AddC vbRed, "CheckRevision call Failed!" & vbNewLine, RGB(45, 109, 59)
Exit Sub
End If

pbuffer.sendPacket 7

Case &H25
If Cons = 1 Or Cons = 3 Or Cons = 5 Then winsock.SendData Data

Case &H7
strData = Mid(Data, 5, 1)

Select Case strData

Case Chr(2)
pbuffer.sendPacket &H2D

pbuffer.InsertNonNTString "tenb"
pbuffer.sendPacket &H14
Case Chr(0)

AddC vbRed, "Battle.net rejected your hash"
winsock.Close
IsConnected = False
Case Else

AddC vbRed, "Unknown Verification Return Value, may need to upgrade game client"
End Select

Case &H1D
serverhash = Right(Data, 4)

Case &H2D
SendCDKey varCDkey

Case &H30, &H36

Select Case Mid(Data, 5, 1)
Case Chr(1)
SendUsernamePassword

Case Chr(2)
AddC vbRed, "CDKey Invalid!"
winsock.Close
IsConnected = False

Case Chr(3)
AddC vbRed, "CDKey Invalid - For a Different Product"
winsock.Close

Case Chr(4)

AddC vbRed, "CDKey Is Banned from Battle.net"
winsock.Close
IsConnected = False
Case Chr(5)

AddC vbRed, "CDKey In Use"
winsock.Close
End Select

Case &H29
If Mid(Data, 5, 1) = Chr(1) Then
AddC vbGreen, "Logon Passed!"
pbuffer.InsertNTString varUser
pbuffer.InsertBYTE 0
pbuffer.sendPacket &HA
pbuffer.InsertDWORD 2
pbuffer.InsertNTString varHome
pbuffer.sendPacket &HC
IsConnected = True

Else
AddC vbRed, "Logon Failed"
winsock.Close
IsConnected = False
End If

Case &HA

Dim Spltn() As String
Spltn() = Split(Data, Chr(0), 5)
AddC vbGreen, "Logged on as " & Spltn(1)
varUser = Spltn(1)
IsConnected = True
Exit Sub

Case &HF
chatbot.DispatchMessage Data

End Select
End Sub
[/code]


I added Addc to see what it sends as you see when you read the code above

This is as far as I get:
[5:18:03 PM] Connecting...
[5:18:04 PM] C7
[5:18:04 PM] Connected!
[5:18:04 PM] SENDHEADER
[5:18:04 PM] SEND1E
[5:18:05 PM] Bnet Disconnected
March 7, 2004, 12:09 AM
PaiD
How far does it get in the login before bent disconnects?
March 7, 2004, 12:10 AM
LoRd
That code looks nearly identical to Zorm's BGATE, and since the source code for BGATE is on your site it only helps validate my claim. :p

Where are your variables being stored? Are they in a the same place as your connection functions? If not, can they be accessed from your connection functions?

If the answer to all those questions are yes, then are you setting the product in the order they would be in as DWORD's? ex: STAR would be RATS, W2BN would be NB2W.
March 7, 2004, 12:26 AM
ChR0NiC
Also I am pretty sure you cannot connect to D2 using 0x1E, then again I may be wrong
March 7, 2004, 12:43 AM
LoRd
[quote author=ChR0NiC link=board=17;threadid=5626;start=0#msg47980 date=1078620218]
Also I am pretty sure you cannot connect to D2 using 0x1E, then again I may be wrong
[/quote]

It supports any single CD-Key product.
March 7, 2004, 12:45 AM
ChR0NiC
[quote author=ChR0NiC link=board=17;threadid=5626;start=0#msg47980 date=1078620218]
Also I am pretty sure you cannot connect to D2 using 0x1E, then again I may be wrong
[/quote]

[quote author=LoRd[nK] link=board=17;threadid=5626;start=0#msg47981 date=1078620331]
It supports any single CD-Key product.
[/quote]

So obviously it will support SC, BW, W2, D2, JSTR....
But not D2XP and W3XP (right??)
And won't support WAR3 or will it support W3?
March 7, 2004, 12:48 AM
LoRd
[quote author=ChR0NiC link=board=17;threadid=5626;start=0#msg47982 date=1078620510]
[quote author=ChR0NiC link=board=17;threadid=5626;start=0#msg47980 date=1078620218]
Also I am pretty sure you cannot connect to D2 using 0x1E, then again I may be wrong
[/quote]

[quote author=LoRd[nK] link=board=17;threadid=5626;start=0#msg47981 date=1078620331]
It supports any single CD-Key product.
[/quote]

So obviously it will support SC, BW, W2, D2, JSTR....
But not D2XP and W3XP (right??)
And won't support WAR3 or will it support W3?
[/quote]

Warcraft III requires NLS-2 which isn't supported in the old logins, so I doubt it.
March 7, 2004, 12:51 AM
Networks
I didn't copy bgate's source code and second the variables are being stored a module along with declares.
March 7, 2004, 6:52 PM

Search