Valhalla Legends Forums Archive | Battle.net Bot Development | Re: Warcraft III GS

AuthorMessageTime
PunK
Okay, I wanted to do something similar to Ringo's SCGS Bot. However, I have a couple of questions =o


Okay, I saw on bnetdocs.com that it says 0x09 is used by every other client other then Warcraft III... So I went along and packet logged the game request in warcraft III and noticed that it was also using 0x09..

C->S
[code]
FF 09 17 00 00 E0 7F 00 00 00 00 00 00 00 00 00  ................
14 00 00 00 00 00 00                                    .......     
[/code]

S->C
[code]
FF 09 7A 0A 14 00 00 00 01 28 49 00 09 04 00 00  ..z......(I.....
02 00 AF C8 44 96 BA B7 00 00 00 00 00 00 00 00  ....D...........
10 00 00 00 06 00 00 00 4E 69 6E 74 65 6E 44 6F  ........NintenDo
20 54 6F 77 65 72 20 44 21 21 55 73 61 00 00 62  Tower D!!Usa..b
31 30 30 30 30 30 30 30 01 03 49 07 01 01 75 01  10000000..I...u.
A1 75 01 93 95 49 0D 4D CB 61 71 73 5D 45 6F 77  .u...I.M.aqs]Eow
19 6F 6D 6F 61 65 5D 4F 93 69 6F 75 65 6F 65 6F  .omoae]O.ioueoeo
41 21 55 45 21 77 37 2F 19 33 2F 77 33 79 01 45  A!UE!w7/.3/w3y.E
2B 69 6F 6F 43 6F 75 35 01 33 31 01 01 00 01 20  +iooCou5.31....
49 00 0C 0C 00 00 02 00 17 E0 42 83 52 41 00 00  I.........B.RA..
00 00 00 00 00 00 10 00 00 00 00 00 00 00 33 72  ..............3r
64 20 53 57 20 2D 61 72 75 73 6D 21 21 00 00 62  d SW -arusm!!..b
33 30 30 30 30 30 30 30 01 03 49 07 01 01 95 01  30000000..I.....
91 75 01 6F 13 EB 61 4D CB 61 71 73 5D 45 6F 77  .u.o..aM.aqs]Eow
99 6F 6D 6F 61 65 5D 53 53 57 33 2F 33 2F 31 2F  .omoae]SSW3/3/1/
E7 77 33 79 01 61 77 61 07 77 61 01 01 00 09 C0  .w3y.awa.wa.....
48 00 09 04 00 00 02 00 17 E0 63 F6 C7 DD 00 00  H.........c.....
00 00 00 00 00 00 10 00 00 00 5B 00 00 00 42 49  ..........[...BI
47 20 46 46 41 20 58 58 58 00 00 62 31 30 30 30  G FFA XXX..b1000
30 30 30 30 41 03 49 07 01 01 A9 01 AB A9 01 57  0000A.I........W
19 D5 BF 4D 4B 61 71 73 5D 29 31 33 AB 29 45 69  ...MKaqs])13.)Ei
77 69 65 65 B3 41 6F 65 43 6F 6F 71 E7 75 65 73  wiee.AoeCooq.ues
2F 77 33 6D A5 01 61 7B 6F 73 71 69 07 6B 65 01  /w3m..a{osqi.ke.
01 00 09 40 49 00 09 08 00 00 02 00 17 E0 51 9B  ...@I.........Q.
D0 5B 00 00 00 00 00 00 00 00 10 00 00 00 10 00  .[..............
00 00 66 75 6E 6E 79 20 62 75 6E 6E 79 20 65 67  ..funny bunny eg
67 20 68 75 6E 74 20 62 79 20 72 79 61 6E 20 00  g hunt by ryan .
00 39 33 30 30 30 30 30 30 30 01 03 49 07 01 01  .930000000..I...
75 01 F9 95 01 D1 3D 8F DB 4D 8B 61 71 73 5D 47  u.....=..M.aqs]G
73 6F 85 7B 65 6F 55 69 73 6F 75 6F 65 5D 53 63  so.{eoUisouoe]Sc
65 6F 1B 61 73 69 6F 5D 29 39 4B 29 47 75 6F 6F  eo.asio])9K)Guoo
79 43 F3 75 6F 6F 79 73 45 67 8B 67 49 75 6F 75  yC.uooysEg.gIuou
2F 77 E3 33 79 01 43 49 47 4D 13 41 4F 45 41 4F  /w.3y.CIGM.AOEAO
01 01 00 01 20 49 00 09                          .... I..       
[/code]

I'm kind of thrown off...
December 9, 2008, 9:36 PM
Barabajagal
ADVLISTEX is only used for custom games in W3.
December 9, 2008, 10:38 PM
PunK
I know but how come it hasn't been updated on bnetdocs?
December 10, 2008, 1:15 AM
Barabajagal
Cause bnetdocs is hella ignored. It's not that it's not been updated, it's that no one cares to check every single packet to make sure the games that use the packet is correct.
December 10, 2008, 1:17 AM
PunK
Alrighty, well I think what needs to be sent is dramatically different from the other clients. Can you help break it down?
December 10, 2008, 1:30 AM
Barabajagal
Nope. My only war3 key is always in use.
December 10, 2008, 2:05 AM
PunK
Damn.. well then anyone?
December 10, 2008, 4:21 AM
PunK
Widow test#1
[code]
FF 09 17 00 00 E0 7F 00 00 00 00 00 00 00 00 00  ................
14 00 00 00 00 00 00                            .......       
[/code]

Widow test#2 (reconnect)
[code]
FF 09 17 00 00 E0 7F 00 00 00 00 00 00 00 00 00  ................
14 00 00 00 00 00 00                            .......     
[/code]

Punk test#3
[code]
FF 09 17 00 00 E0 7F 00 00 00 00 00 00 00 00 00  ................
14 00 00 00 00 00 00                            .......       
[/code]

Alright, well at first I was kind of worrying that the packet was based on the session key but never mind, I was looking at something else...

At least I know now what needs to be sent is static... obviously.
December 10, 2008, 8:45 PM
Matt
Hey there,

I'd gladly help you with this project!
December 10, 2008, 10:11 PM
PunK
[code]
InsertByte 0
InsertByte 224
InsertByte 127
InsertDWORD 0
InsertDWORD 0
InsertByte 0
InsertByte 20
InsertDWORD 0
InsertWORD 0
SendPacket &H9
[/code]

Yeah, looks shitty but it works for now. Now im trying to figure out a way to get the game names extracted from the enormous packet battle.net sends you.

[code]
0000:  FF 09 E4 07 0F 00 00 00 01 20 49 00 09 04 00 00  ÿ.ä... I....
0010:  02 00 17 E0 61 50 8E 6C 00 00 00 00 00 00 00 00  .àaPŽl........
0020:  10 00 00 00 0C 00 00 00 48 65 72 6F 20 57 61 72  ... ...Hero War
0030:  73 20 45 6C 69 74 65 20 34 2E 33 00 00 62 31 30  s Elite 4.3..b10
0040:  30 30 30 30 30 30 01 03 49 07 01 01 61 01 B1 61  000000Ia±a
0050:  01 D5 9B 3D D9 4D CB 61 71 73 5D 45 6F 77 19 6F  Õ›=ÙMËaqs]Eowo
0060:  6D 6F 61 65 5D 49 6B 65 73 6F 21 57 61 73 AB 73  moae]Ikeso!Was«s
0070:  21 45 6D 69 75 65 91 21 35 2F 33 63 2F 77 B7 33  !Emiue‘!5/3c/w·3
0080:  6D 01 4D 61 6D 69 37 63 65 49 65 61 73 75 01 01  mMami7ceIeasu
0090:  01 00 09 C0 12 00 16 04 00 00 02 00 17 E0 C9 52  ..À....àÉR
00A0:  A2 DD 00 00 00 00 00 00 00 00 10 00 00 00 7E 00  ¢Ý...........~.
00B0:  00 00 4C 54 20 52 65 66 73 20 6E 6F 20 6E 6F 6F  ..LT Refs no noo
00C0:  62 73 00 00 62 37 30 30 30 30 30 30 30 01 03 49  bs..b70000000I
00D0:  07 41 01 7D 01 F1 7D 01 51 43 FB 53 4D 8B 61 71  A}ñ}QCûSM‹aq
00E0:  73 5D 29 35 29 CD 4D 6F 73 75 55 65 6D E9 71 6D  s])5)ÍMosuUeméqm
00F0:  65 2F 77 33 6D 11 01 53 51 2D 39 01 01 00 01 20  e/w3mSQ-9.
0100:  49 00 09 04 00 00 02 00 17 E0 62 DE FD B1 00 00  I.....àbÞý±..
0110:  00 00 00 00 00 00 10 00 00 00 DF 4C 01 00 44 4F  .........ßL.DO
0120:  57 4E 4C 4F 41 44 20 44 4F 54 41 20 52 55 4D 42  WNLOAD DOTA RUMB
0130:  4C 45 20 48 45 52 45 20 69 6D 61 66 6B 00 00 62  LE HERE imafk..b
0140:  36 31 30 30 30 30 30 30 01 03 49 07 01 01 75 01  61000000Iu
0150:  B1 75 01 E5 C7 6F D5 4D CB 61 71 73 5D 45 6F 77  ±uåÇoÕMËaqs]Eow
0160:  19 6F 6D 6F 61 65 5D 45 DB 6F 75 61 5F 53 75 6D  omoae]EÛoua_Sum
0170:  F9 63 6D 65 5F 33 5F 33 DD 2F 77 33 6D 01 4D 59  ùcme_3_3Ý/w3mMY
0180:  E7 5F 41 4D 4D 59 5F 53 1F 55 43 4B 53 01 01 00  ç_AMMY_SUCKS.
0190:  01 20 49 00 09 04 00 00 02 00 17 E3 18 17 E9 A0   I.....ãé 
01A0:  00 00 00 00 00 00 00 00 10 00 00 00 B8 0C 00 00  ...........¸ ..
01B0:  44 4F 4F 4D 53 44 41 59 20 4E 4F 20 46 20 41 20  DOOMSDAY NO F A
01C0:  47 20 53 20 4E 4F 20 4E 6C 47 47 45 52 53 00 00  G S NO NlGGERS..
01D0:  62 38 30 30 30 30 30 30 30 01 03 49 07 01 01 75  b80000000Iu
01E0:  01 B9 75 01 75 F7 95 C9 4D CB 61 71 73 5D 45 6F  ¹uu÷•ÉMËaqs]Eo
01F0:  77 19 6F 6D 6F 61 65 5D 45 DF 6F 6F 6D 73 65 61  womoae]Eßoomsea
0200:  79 3B 5F 4D 65 67 65 6F 65 47 73 5F 77 33 2F 35  y;_MegeoeGs_w3/5
0210:  33 9D 2F 77 33 6D 01 65 65 03 61 65 33 31 31 01  3?/w3meeae311
0220:  01 00 01 20 49 00 09 04 00 00 02 00 17 E0 60 15  . I.....à`
0230:  92 71 00 00 00 00 00 00 00 00 10 00 00 00 4E 00  ’q...........N.
0240:  00 00 53 48 57 45 45 50 20 54 41 47 20 53 57 49  ..SHWEEP TAG SWI
0250:  54 43 48 20 52 4F 43 20 31 35 00 00 62 31 30 30  TCH ROC 15..b100
0260:  30 30 30 30 30 41 03 49 07 01 01 53 01 83 4F 01  00000AISƒO
0270:  55 6F CF 9D 4D CB 61 71 73 5D 45 6F 77 99 6F 6D  UoÏ?MËaqs]Eow™om
0280:  6F 61 65 5D 53 8D 69 65 65 71 21 55 61 53 67 21  oae]S?ieeq!UaSg!
0290:  77 37 2F 31 21 6F 43 75 53 75 4F 6D 21 BD 53 4F  w7/1!oCuSuOm!½SO
02A0:  43 31 35 2F 77 77 33 6D 01 49 63 65 2F 05 55 2D  C15/ww3mIce/U-
02B0:  01 01 00 01 20 49 00 09 04 00 00 02 00 17 E0 72  . I.....àr
02C0:  4C 49 97 00 00 00 00 00 00 00 00 10 00 00 00 15  LI—...........
02D0:  00 00 00 64 69 72 74 6D 61 75 6C 00 00 39 33 30  ...dirtmaul..930
02E0:  30 30 30 30 30 30 01 03 49 07 01 01 53 01 E1 55  000000ISáU
02F0:  01 BD FF ED 51 4D CB 61 71 73 5D 45 6F 77 19 6F  ½ÿíQMËaqs]Eowo
0300:  6D 6F 61 65 5D 65 73 69 73 75 6D 61 75 6D DD 2F  moae]esisumaumÝ/
0310:  77 33 6D 01 43 79 4D 73 75 73 55 69 65 57 1B 69  w3mCyMsusUieWi
0320:  73 75 73 33 39 01 01 01 00 01 20 49 00 09 10 00  sus39. I...
0330:  00 02 00 17 E0 4A 3B DD 64 00 00 00 00 00 00 00  ..àJ;Ýd.......
0340:  00 10 00 00 00 17 00 00 00 48 4C 57 20 35 2E 30  .......HLW 5.0
0350:  20 20 00 00 39 37 30 30 30 30 30 30 30 41 03 49    ..970000000AI
0360:  07 01 01 41 01 89 61 01 A1 F1 83 51 4D CB 61 71  A‰a¡ñƒQMËaq
0370:  73 5D 45 6F 77 19 6F 6D 6F 61 65 5D 49 AB 65 73  s]Eowomoae]I«es
0380:  6F 4D 69 6F 65 D7 57 61 73 73 53 6F 43 C5 77 35  oMioe×WassSoCÅw5
0390:  2F 31 2F 77 33 33 6D 01 75 69 69 71 71 03 6F 01  /1/w33muiiqqo
03A0:  01 00 01 20 49 00 09 04 00 00 02 00 17 E0 62 E5  . I.....àbå
03B0:  A9 60 00 00 00 00 00 00 00 00 10 00 00 00 1F 00  ©`............
03C0:  00 00 2E 2E 2E 3A 3A 3A 54 68 65 20 57 61 72 3A  .....:::The War:
03D0:  3A 3A 2E 2E 2E 00 00 62 32 30 30 30 30 30 30 30  ::.....b20000000
03E0:  01 03 49 07 01 01 75 01 E9 75 01 33 D7 71 41 4D  Iuéu3×qAM
03F0:  CB 61 71 73 5D 45 6F 77 99 6F 6D 6F 61 65 5D 57  Ëaqs]Eow™omoae]W
0400:  13 61 73 21 6F 67 21 75 B5 69 65 21 4D 65 65 69  as!og!uµie!Meei
0410:  65 77 61 6D 21 4B 69 6F BB 67 65 6F 6D 73 2F 77  ewam!Kio»geoms/w
0420:  A7 33 6D 01 55 65 73 6D 2B 69 6F 61 75 6F 73 37  §3mUesm+ioauos7
0430:  01 37 31 01 01 00 01 20 49 00 09 04 00 00 02 00  71. I.....
0440:  17 E0 48 48 14 12 00 00 00 00 00 00 00 00 10 00  àHH.........
0450:  00 00 2A 00 00 00 76 61 6D 70 20 72 6D 00 00 39  ..*...vamp rm..9
0460:  34 30 30 30 30 30 30 30 01 03 49 07 01 01 35 01  40000000I5
0470:  F9 35 01 B3 45 0F 75 4D CB 61 71 73 5D 45 6F 77  ù5³EuMËaqs]Eow
0480:  99 6F 6D 6F 61 65 5D 6F 69 71 75 2D 57 61 6D 71  ™omoae]oiqu-Wamq
0490:  BB 69 73 69 73 6D 21 31 EB 31 2F 35 2F 77 33 6D  »isism!1ë1/5/w3m
04A0:  69 01 45 61 73 6B 61 6F 27 67 65 6D 7B 73 01 01  iEaskao'gem{s
04B0:  00 01 20 49 00 09 10 00 00 02 00 17 E0 63 EC C4  . I.....àcìÄ
04C0:  29 00 00 00 00 00 00 00 00 10 00 00 00 51 00 00  )...........Q..
04D0:  00 42 52 4F 4B 45 4E 20 41 4C 4C 49 41 4E 43 45  .BROKEN ALLIANCE
04E0:  53 20 43 4C 41 4E 20 53 4C 41 53 48 20 6C 6F 6C  S CLAN SLASH lol
04F0:  00 00 62 32 30 30 30 30 30 30 30 01 03 49 07 01  ..b20000000I
0500:  01 FF 01 B1 FF 01 3F EB EB A1 4D CB 61 71 73 5D  ÿ±ÿ?ëë¡MËaqs]
0510:  45 6F 77 19 6F 6D 6F 61 65 5D 43 5D 73 6F 6B 65  Eowomoae]C]soke
0520:  6F 25 33 65 31 41 6D 6D 69 61 6F 9F 63 65 73 25  o%3e1AmmiaoŸces%
0530:  33 31 2D A3 25 33 31 43 65 2F 77 D7 33 6D 01 53  31-£%31Ce/w×3mS
0540:  6D 61 73 55 69 69 6F 67 69 61 73 01 65 01 01 00  masUiiogiase.
0550:  01 20 49 00 09 10 00 00 02 00 17 E0 48 8C BB BF   I.....àHŒ»¿
0560:  00 00 00 00 00 00 00 00 10 00 00 00 C1 00 00 00  ...........Á...
0570:  76 61 6D 70 70 70 00 00 39 38 30 30 30 30 30 30  vamppp..98000000
0580:  30 01 03 49 07 01 01 61 01 91 61 01 C9 BD 8F 11  0Ia‘aɽ?
0590:  4D CB 61 71 73 5D 45 6F 77 19 6F 6D 6F 61 65 5D  MËaqs]Eowomoae]
05A0:  57 D7 61 6D 71 69 73 69 73 1B 6D 21 43 65 6D 21  W×amqisism!Cem!
05B0:  57 E5 2F 31 33 2F 77 33 6D 11 01 43 6D 75 6F 75  Wå/13/w3mCmuou
05C0:  35 19 33 31 6D 61 6F 01 01 00 01 20 49 00 09 10  531mao. I..
05D0:  00 00 02 00 17 E0 4C 45 A7 4E 00 00 00 00 00 00  ...àLE§N......
05E0:  00 00 10 00 00 00 BD 00 00 00 61 66 72 69 63 61  .....½...africa
05F0:  20 7A 6F 6D 62 69 65 00 00 62 35 30 30 30 30 30    zombie..b500000
0600:  30 30 01 03 49 07 01 01 95 01 B1 B5 01 4B 05 D9  00I•±µKÙ
0610:  FD 4D CB 61 71 73 5D 45 6F 77 99 6F 6D 6F 61 65  ýMËaqs]Eow™omoae
0620:  5D 41 39 67 73 69 63 61 21 5B B7 6F 6D 63 69 65  ]A9gsica![·omcie
0630:  21 57 03 61 73 21 77 33 2F 33 A5 21 5B 51 53 4F  !Was!w3/3¥![QSO
0640:  55 45 AB 43 55 45 45 5D 2F 77 37 33 6D 01 73 69  UE«CUEE]/w73msi
0650:  6D 6D 07 69 65 01 01 00 01 20 49 00 09 04 00 00  mmie. I....
0660:  02 00 17 E0 63 E3 8E 34 00 00 00 00 00 00 00 00  .àcãŽ4........
0670:  10 00 00 00 C3 00 00 00 44 4F 4F 4D 53 44 41 59  ...Ã...DOOMSDAY
0680:  20 4E 4F 20 4E 4F 4F 42 53 00 00 62 32 30 30 30    NO NOOBS..b2000
0690:  30 30 30 30 01 03 49 07 01 01 75 01 B9 75 01 75  0000Iu¹uu
06A0:  F7 95 C9 4D CB 61 71 73 5D 45 6F 77 19 6F 6D 6F  ÷•ÉMËaqs]Eowomo
06B0:  61 65 5D 45 DF 6F 6F 6D 73 65 61 79 3B 5F 4D 65  ae]Eßoomseay;_Me
06C0:  67 65 6F 65 47 73 5F 77 33 2F 35 33 DD 2F 77 33  geoeGs_w3/53Ý/w3
06D0:  6D 01 4B 6F E1 73 6F 67 6D 61 6B 65 03 73 01 01  mKoásogmakes
06E0:  00 01 20 49 00 09 04 00 00 02 00 17 E0 D8 C4 CA  . I.....àØÄÊ
06F0:  C5 00 00 00 00 00 00 00 00 10 00 00 00 04 01 00  Å............
0700:  00 6C 6B 00 00 62 32 30 30 30 30 30 30 30 01 03  .lk..b20000000
0710:  49 07 01 01 55 01 F1 55 01 57 D5 25 15 4D CB 61  IUñUWÕ%MËa
0720:  71 73 5D 45 6F 77 99 6F 6D 6F 61 65 5D 43 2B 61  qs]Eow™omoae]C+a
0730:  75 73 21 61 6F 65 BD 21 4D 69 63 65 21 31 C1 31  us!aoe½!Mice!1Á1
0740:  2F 31 63 2F 77 33 9B 6D 01 63 6F 6F 6F 6F 2D 73  /1c/w3›mcoooo-s
0750:  35 33 37 39 01 01 00 01 20 49 00 09 04 00 00 02  5379. I....
0760:  00 17 E0 C9 4B C7 1A 00 00 00 00 00 00 00 00 10  .àÉKÇ........
0770:  00 00 00 47 02 00 00 46 6F 6F 74 69 65 73 20 45  ...G..Footies E
0780:  78 74 72 65 6D 65 00 00 62 35 30 30 30 30 30 30  xtreme..b5000000
0790:  30 01 03 49 07 01 01 3D 01 AB 3D 01 3B A9 BD 27  0I=«=;©½'
07A0:  4D CB 61 71 73 5D 45 6F 77 19 6F 6D 6F 61 65 5D  MËaqs]Eowomoae]
07B0:  47 B7 6F 6F 75 6D 61 6F 57 1B 61 73 73 45 79 75  G·ooumaoWassEyu
07C0:  73 2F 65 6D 65 57 37 2F 31 A9 33 67 69 79 65 2F  s/emeW7/1©3giye/
07D0:  77 C7 33 6D 01 45 73 61 67 2B 61 6D 6F 73 65 73  wÇ3mEsag+amoses
07E0:  01 01 01 00                                      .............
[/code]
December 10, 2008, 10:20 PM
Sixen
Chris, i'm working on a way to parse and display the D1 game listing; it's the same thing. I'm semi-done with it, i'll post it up when i'm done. (sometime in the next day or two, got work and finals)
December 12, 2008, 4:19 AM
Barabajagal
Didn't I already post D1 game list code on this site somewhere?
December 12, 2008, 4:54 AM
Sixen
[quote author=Andy link=topic=17741.msg180791#msg180791 date=1229057699]
Didn't I already post D1 game list code on this site somewhere?
[/quote]

Not that i'm seeing. Though I somewhat figured it out with a quick packetlog. I need to go back and packetlog D1 again so I can see what is used to separate the games, because there's no null char in between like there is with channels.
December 15, 2008, 5:47 AM
Ozzapoo
I was also trying to get the Custom Games list for WC3. However, when I tried sending a packet based on the documentation of SID_GETADVLISTEX, it failed.

Next go, I copied the packet that WC3 (W3XP) sent to Battle.net, and tried sending that. However, when I got the response it alwys said that there were 14 games, and it provided less game information sets than 14! Why is this the case ?

EDIT: I did the exact same thing as Punk in the first post =/

EDIT: I tried the thing Punk posted, but I got the same result again :(

EDIT: I just noticed that after received the SID_GETADVLISTEX packet, I get 4 more seperate packets with no standard header, also with game listings. I'm confused now! :( Why aren't I getting these packets all in one? 3 of the packets are 536 bytes, except the last one which is 525 bytes.

EDIT: Now it keeps saying there are 20?

EDIT: So they're split into 536-byte segments, but how do I tell how many segments there are?

EDIT: I think the first segment is like a standard packet (with the header), and has the entire length value, but they're just split into the 536-byte segments from the next packet. How would I go about getting all the packets?
December 16, 2008, 2:09 AM
Ringo
I'm not sure if this has been said or not, but 0x09 pretty much always follows the same format:
(DWORD) Number of games
For each game
    DWORD[8]
    STRING game name
    STRING Game password
    STRING Game desc

Should be pretty quick and easy to just read each game name string.
hope this helps
December 16, 2008, 7:23 AM
Ozzapoo
Well I've finally got my function to get the game names working (even though it was surprisingly long....)

However does anyone know how to interpret the statstrings? It shows up on my program like:

[code]b30000000IY?Y?U?M?aqs]Eow?omoae]e?mim31/1?/w3yMa_gicam-Usewes
[[/code]
December 16, 2008, 7:27 AM
Ozzapoo
I found this: http://bnetdocs.com/?op=doc&did=13
But I don't understand how the different values are seperated? Should I interpret this as a string, or should I interpret it as bytes?
December 16, 2008, 8:04 AM
Sixen
[quote author=Ozzapoo link=topic=17741.msg180832#msg180832 date=1229414693]
I found this: http://bnetdocs.com/?op=doc&did=13
But I don't understand how the different values are seperated? Should I interpret this as a string, or should I interpret it as bytes?
[/quote]

The delimiter is a comma, it's all one string.
December 16, 2008, 6:23 PM
Ozzapoo
I can't see a comma though.. (nor can I find one)

Perhaps only the Starcraft statstrings are comma-delimited?
December 16, 2008, 9:16 PM
Barabajagal
You have to decode War3's map data:

[code]Public Function DecodeMapData(ByVal Encoded As String, ByRef Decoded As String) As Long
Dim enc()  As Byte
Dim dec()  As Byte
Dim I      As Long
Dim J      As Long
Dim D      As Byte
Dim lngLen As Long
  enc = strConv(Encoded, vbFromUnicode)
  For I = 0 To UBound(enc)
    If (I Mod 8) Then
      ReDim Preserve dec(lngLen)
      dec(lngLen) = (enc(I) And ((RShift(D, 1 + J) Or Not 1)))
      J = J + 1
      lngLen = lngLen + 1
    Else
      J = 0
      D = enc(I)
    End If
  Next I
  Decoded = strConv(dec, vbUnicode)
  DecodeMapData = lngLen
End Function[/code]
December 16, 2008, 9:54 PM
Ozzapoo
There's no vbFromUnicode in VB.Net =/
Could you explain to be how the statstring is encoded, so I can try to make a decoding function myself?
December 16, 2008, 11:32 PM
PunK
Hmm, I didn't bother to count the games...

Did you already resolve the packets without headers? If not, what about just assigning the packets based on there data content. Get the map values and if they are valid, send to the 0x09 buffer... In fact, you don't even need to decrypt the map values, you can just do something like this.

if datalen >= 300 and instr(data, "w3m") then parse0x09(data)

I guess something along those lines would work seeing how "w3m" appears in each statstring.

I still have the question on splitting the data up into segments. I've tried finding a method in which I could get the game name and I think I might have found a sloppy way...

Go through the buffer, parse the game values into Andy's W3 map decoder and if the value is good, then the string previous to the map data will be the map name.

[code]
Hero Wars Elite 4.3
b10000000Ia±aÕ›=ÙMËaqs]Eowomoae]Ikeso!Was«s!Emiue‘!5/3c/w3mMami7ceIeasu
[/code]
December 17, 2008, 12:12 AM
Ozzapoo
Battle.Net sends you 20 games every time you request a games list I think..
December 17, 2008, 12:31 AM
PunK
Btw, for your unicode question...

http://www.xtremedotnettalk.com/showthread.php?t=84659

Maybe that will help.
December 17, 2008, 12:37 AM
Barabajagal
It's not my map decoder... https://davnit.net/bnet/vL/index.php?topic=15419.0
December 17, 2008, 12:54 AM
PunK
Don't use my idea on relating split packets with one another by the "w3m" string. It varies.
December 17, 2008, 1:29 AM
Ozzapoo
What does RShift() do? Can someone post the code here? EDIT: Nevermind, found it.

Why does the function always just return three random characters? The characters are the same depending on the game, but they just seem random. Did I do something wrong?

I modifed the function slightly and made it return the decoded string directly. Please tell me if something is wrong:

[code]    Public Function DecodeMapData(ByVal Encoded As String) As String
        Dim enc() As Byte
        Dim dec() As Byte
        Dim I As Long
        Dim J As Long
        Dim D As Byte
        Dim lngLen As Long
        enc = System.Text.UnicodeEncoding.Unicode.GetBytes(Encoded)
        For I = 0 To UBound(enc)
            If (I Mod 8) Then
                ReDim Preserve dec(lngLen)
                dec(lngLen) = (enc(I) And (D >> (1 + J) Or Not 1))
                J = J + 1
                lngLen = lngLen + 1
            Else
                J = 0
                D = enc(I)
            End If
        Next I
        Return System.Text.UnicodeEncoding.Unicode.GetString(dec)
    End Function[/code]
Does the length matter?
December 17, 2008, 1:36 AM

Search