|
|
Line 114: |
Line 114: |
| | | |
| ------------------ | | ------------------ |
− |
| |
− |
| |
− |
| |
− |
| |
− |
| |
− | Script("Name") = "PvPGN Enabler"
| |
− | Script("Author") = "Hdx"
| |
− | Script("Major") = 0
| |
− | Script("Minor") = 3
| |
− | Script("Revision") = 0
| |
− | Script("Description") = "Forces SB to use XSHA1 hashed passwords when logging into Battle.net, " & _
| |
− | "because PvPGN servers use outdated ones like that. " & _
| |
− | "Also forces SB to send your password in plain text when creating a WC3 account, " & _
| |
− | "because PvPGNs are insecure like that."
| |
− |
| |
− | '=====================================================
| |
− | 'Change Log:
| |
− | '=====================================================
| |
− | ' v0.3.0:
| |
− | ' Will now translate the Online Status field in WC3
| |
− | ' clan member list, and clan update to something SB
| |
− | ' can handle. Therefore fixing Error #35600.
| |
− | ' Note: This error has been fixed in StealthBot as of
| |
− | ' build #449
| |
− | '
| |
− | ' v0.2.0:
| |
− | ' Can now create Accounts on PvPGN servers
| |
− | '
| |
− | ' v0.1.0:
| |
− | ' Initial Creation, Can login to PvPGN servers using
| |
− | ' XSHA1 passwords.
| |
− | '=====================================================
| |
− |
| |
− | Const SID_AUTH_ACCOUNTCREATE = &H52
| |
− | Const SID_AUTH_ACCOUNTLOGONPROOF = &H54
| |
− | Const SID_CLANMEMBERLIST = &H7D
| |
− | Const SID_CLANMEMBERSTATUSCHANGE = &H7F
| |
− | Dim SwitchPackets
| |
− |
| |
− | Sub Event_Load()
| |
− | SwitchPackets = True
| |
− | End Sub
| |
− |
| |
− | Sub Event_PacketSent(Protocol, ID, Length, Data)
| |
− | If UCase(Protocol) = "BNCS" Then
| |
− | Data = Mid(Data, 5) ' Strip The Header
| |
− | Select Case ID
| |
− | Case SID_AUTH_ACCOUNTCREATE: Call SEND_SID_AUTH_ACCOUNTCREATE (Data)
| |
− | Case SID_AUTH_ACCOUNTLOGONPROOF: Call SEND_SID_AUTH_ACCOUNTLOGONPROOF(Data)
| |
− | End Select
| |
− | End If
| |
− | End Sub
| |
− |
| |
− | Sub Event_PacketReceived(Protocol, ID, Length, Data)
| |
− | If UCase(Protocol) = "BNCS" Then
| |
− | Data = Mid(Data, 5) ' Strip The Header
| |
− | Select Case ID
| |
− | Case SID_CLANMEMBERLIST: Call RECV_SID_CLANMEMBERLIST (Data)
| |
− | Case SID_CLANMEMBERSTATUSCHANGE: Call RECV_SID_CLANMEMBERSTATUSCHANGE(Data)
| |
− | End Select
| |
− | End If
| |
− | End Sub
| |
− |
| |
− | '=======================================
| |
− | 'SID_AUTH_ACCOUNTCREATE (0x52) C->S
| |
− | '=======================================
| |
− | ' For Normal Battle.Net:
| |
− | ' (BYTE[32]) Salt (s)
| |
− | ' (BYTE[32]) Verifier (v)
| |
− | ' (STRING) Username
| |
− | '
| |
− | ' For PvPGN:
| |
− | ' (BYTE[32]) Salt (s)
| |
− | ' (BYTE[32]) Plain Text Password
| |
− | ' (STRING) Username
| |
− | '=======================================
| |
− | Sub SEND_SID_AUTH_ACCOUNTCREATE(Data)
| |
− | If (SwitchPackets = True) Then
| |
− |
| |
− | Dim pBuff
| |
− | Dim Salt
| |
− | Dim Username
| |
− |
| |
− | Set pBuff = SSC.DataBufferEx()
| |
− | With pBuff
| |
− | .Data = Data
| |
− | Salt = .GetRaw(32)
| |
− | .GetRaw(32)
| |
− | Username = .GetString()
| |
− |
| |
− | .Clear
| |
− |
| |
− | .InsertNonNTString Salt
| |
− | .InsertNonNTString Left(BotVars.Password & String(32, Chr(0)), 32) 'Note: This does not modify the password's casing,
| |
− | 'I do not know if PvPGN does that. I need someone
| |
− | 'to confirm/deny that it does.
| |
− | .InsertNTString CStr(Username)
| |
− |
| |
− | VetoThisMessage 'Don't Send Verifier
| |
− | SwitchPackets = False
| |
− |
| |
− | AddChat vbYellow, "[PPGN] Switching password verifier to plain text password"
| |
− | .SendPacket SID_AUTH_ACCOUNTCREATE
| |
− |
| |
− | SwitchPackets = True
| |
− | End With
| |
− | Set pBuff = Nothing
| |
− | End If
| |
− | End Sub
| |
− |
| |
− | '=======================================
| |
− | 'SID_AUTH_ACCOUNTLOGONPROOF (0x54) C->S
| |
− | '=======================================
| |
− | ' For Normal Battle.Net:
| |
− | ' (BYTE[20]) Client Password Proof (M1)
| |
− | '
| |
− | ' For PvPGN:
| |
− | ' (BYTE[20]) XSHA1 Password Hash
| |
− | '=======================================
| |
− | Sub SEND_SID_AUTH_ACCOUNTLOGONPROOF(Data)
| |
− | If (SwitchPackets = True) Then
| |
− |
| |
− | Dim pBuff
| |
− | Dim passHash
| |
− |
| |
− | passHash = SSC.XSHA1(BotVars.Password) 'Note: This does not modify the password's casing,
| |
− | 'I do not know if PvPGN does that. I need someone
| |
− | 'to confirm/deny that it does.
| |
− | If Len(passHash) = 20 Then
| |
− | VetoThisMessage 'Don't Send M1
| |
− | SwitchPackets = False
| |
− |
| |
− | AddChat vbYellow, "[PPGN] Switching password proof to XSHA1 Hash"
| |
− |
| |
− | Set pBuff = SSC.DataBufferEx()
| |
− | pBuff.InsertNonNTString CStr(passHash)
| |
− | pBuff.SendPacket SID_AUTH_ACCOUNTLOGONPROOF
| |
− | Set pBuff = Nothing
| |
− |
| |
− | SwitchPackets = True
| |
− | Else
| |
− | AddChat vbYellow, "[PPGN] Could not XSHA1 Hash your password, proceeding with SRP login"
| |
− | End If
| |
− | End If
| |
− | End Sub
| |
− |
| |
− | '============================================
| |
− | 'SID_CLANMEMBERLIST (0x7D) S->C
| |
− | '============================================
| |
− | ' (DWORD) Cookie
| |
− | ' (BYTE) Number of Members
| |
− | ' For each member:
| |
− | ' (STRING) Username
| |
− | ' (BYTE) Rank
| |
− | ' (BYTE) Online Status
| |
− | ' (STRING) Location
| |
− | '============================================
| |
− | ' On normal Battle.net the 'Online Status'
| |
− | 'byte is always either 1 or 0, yes/no.
| |
− | 'SB does some bad math with this. which beaks
| |
− | 'if that field is anything but 1/0.
| |
− | 'This bug has been fixed in the latest SVN
| |
− | 'Build 449+, but for now I can script the fix.
| |
− | '============================================
| |
− |
| |
− | Sub RECV_SID_CLANMEMBERLIST(Data)
| |
− | If (SwitchPackets = True) Then
| |
− | Dim inBuff
| |
− | Dim outBuff
| |
− | Dim count
| |
− | Dim x
| |
− | Dim status
| |
− |
| |
− | Set inBuff = SSC.DataBufferEx()
| |
− | Set outBuff = SSC.DataBufferEx()
| |
− |
| |
− | inBuff.Data = Data
| |
− | VetoThisMessage
| |
− | With outBuff
| |
− | 'Insert Dummy BNCS Header
| |
− | .InsertByte &HFF
| |
− | .InsertBYTE SID_CLANMEMBERLIST
| |
− | .InsertWord 0
| |
− |
| |
− | .InsertDWORD inBuff.GetDWORD
| |
− | count = inBuff.GetByte
| |
− | .InsertByte count
| |
− |
| |
− | For x = 1 to Count
| |
− | .InsertNTString inBuff.GetString
| |
− | .InsertByte inBuff.GetByte
| |
− |
| |
− | status = inBuff.GetByte
| |
− | If (status = 0) Then
| |
− | .InsertByte 0
| |
− | Else
| |
− | .InsertByte 1
| |
− | End If
| |
− | .InsertNTString inBuff.GetString
| |
− | Next
| |
− |
| |
− | SwitchPackets = False
| |
− | SSC.ForceBNCSPacketParse .Data
| |
− | SwitchPackets = True
| |
− | End With
| |
− | End If
| |
− | End Sub
| |
− |
| |
− |
| |
− | '============================================
| |
− | 'SID_CLANMEMBERLIST (0x7D) S->C
| |
− | '============================================
| |
− | ' (STRING) Username
| |
− | ' (BYTE) Rank
| |
− | ' (BYTE) Status
| |
− | ' (STRING) Location
| |
− | '============================================
| |
− | ' SB does some bad math with the 'Status' field
| |
− | 'This bug has been fixed in the latest SVN
| |
− | 'Build 449+, but for now I can script the fix.
| |
− | '============================================
| |
− | Sub RECV_SID_CLANMEMBERSTATUSCHANGE(Data)
| |
− | If (SwitchPackets = True) Then
| |
− | Dim inBuff
| |
− | Dim outBuff
| |
− |
| |
− | Set inBuff = SSC.DataBufferEx()
| |
− | Set outBuff = SSC.DataBufferEx()
| |
− |
| |
− | inBuff.Data = Data
| |
− | VetoThisMessage
| |
− | With outBuff
| |
− | 'Insert Dummy BNCS Header
| |
− | .InsertByte &HFF
| |
− | .InsertBYTE SID_CLANMEMBERSTATUSCHANGE
| |
− | .InsertWord 0
| |
− |
| |
− | .InsertNTString inBuff.GetString
| |
− | .InsertByte inBuff.GetByte
| |
− | If (inBuff.GetByte = 0) Then
| |
− | .InsertByte 0
| |
− | Else
| |
− | .InsertByte 1
| |
− | End If
| |
− | .InsertNTString inBuff.GetString
| |
− |
| |
− | SwitchPackets = False
| |
− | SSC.ForceBNCSPacketParse .Data
| |
− | SwitchPackets = True
| |
− | End With
| |
− | End If
| |
− | End Sub
| |
What is StealthBot
StealthBot is one of the most popular moderation bots on the official servers. It completely emulates the Battle.Net Chat Server connection, meaning; A server will clearly think you're an official client.
It's written in Visual Basic v6, meaning it's for Windows only (Bypass is possible.) It's possible to extend StealthBot with Visual Basic Script-scripts to get advanced option and a broad enterprise of extra features.
Where to download?
You can download the release version Through This Link http://www.stealthbot.net/wiki/Download. (Develops version)
The other steps.
After installing make sure you do not start StealthBot.
Preparing StealthBot for PvPGN connection
Go to the StealthBot root folder
Open Default/scripts
Download this file http://www.multiupload.nl/XYPU08F8AG (Right click -> Save source to your StealthBot/Default/scripts directory.)
Now you're able to connect to Eurobattle.net!
Advanced users (That's what they state)
Go to the StealthBot root folder
Create a folder called: WAR3
Go to the Warcraft root folder
Copy: war3.exe / Storm.dll / game.dll to the Stealthbot/WAR3 folder
Go to StealthBot/Default and create a file called: Config.ini
Open it and place the Spoiler-text in it and save it. (Note; Folder can need special access. Create it on your desktop then copy to your StealthBot/Default folder if it doesn't work.)
[Main]
ShowWhisperWindow=Y
Product=PX3W
CDKey=FFFFFFFFFFFFFFFFFFFFFFFFFF
ExpKey=FFFFFFFFFFFFFFFFFFFFFFFFFF
Server=server.eurobattle.net
Trigger={.}
ConfigVersion=5
ShowSplash=Y
MaxBacklogSize=10000
MaxLogFileSize=0
WhisperBack=N
ConnectOnStartup=N
MinimizeOnStartup=N
UseBackupChan=N
DoNotUseDirectFList=N
URLDetect=Y
ShowOfflineFriends=N
LogDBActions=N
LogCommands=N
UseBNLS=N
Spoof=0
ReconnectDelay=1000
Protect=N
UseWWs=N
[Other]
JoinLeaves=Y
Filters=Y
FlashWindow=N
Timestamp=1
Logging=2
NoTray=Y
NoColoring=N
ProfileAmp=N
Mail=Y
DisablePrefix=N
DisableSuffix=N
AllowMP3=Y
ChatFont=Tahoma
ChatSize=8
ChanFont=Tahoma
ChanSize=8
NamespaceConvention=0
ShowStatsIcons=Y
ShowFlagsIcons=Y
[Override]
W2VerByte=4F
SCVerByte=D3
D2VerByte=0D
W3VerByte=1A
SpawnKey=N
Difference between preparing and advanced; Using the first method makes the login sequence slower. It's not a must-do, though.
NOTES
You MUST do Preparing BEFORE Advanced.
The support crew of StealthBot does NOT support PvPGN servers. ~ I do support it. (Channel: W3-HELP / Forum: PM / Forum: Replies.)
The pre-made config.ini is an edited original. Changes:
Set login method to Advanced
Set CD Keys
I wish you good luck with StealthBot.
1) Install StealthBot.
2) Download this.
3) Extract it in the StealthBot folder.
4) Done - You only have to create a profile and set it up.