Valhalla Legends Forums Archive | Battle.net Bot Development | Re: SCGP Client (VB6 Open Source)

AuthorMessageTime
Ringo
umm, yeah. After posting that SC mini map code, and a few pms i got, I figgerd ppl were interested in this. So I started writeing an open source client over the weekend (been a long weekend :()
Lately ive been writeing a SCGP class, one thats copy/paste friendly that can be added to any vb project, and work -- some kind of base to modify, depending what i feel like doing on the day.
The class is only about 20% finished -- but it can host games, join games, download and upload maps, chat with players -- pretty much everything game room related.
See below for infomation about SCGP class, how to use it, and the event's it returns.

As for this open source client, you can download it here: [size=6]SCGP.zip[/size]
If you're wundering what it is, heres a few screen shots of it:
[img]http://d2bot.cjb.net/images/SCGP/SCGPOS.gif[/img]
Ive also included an executable, so even if you don't have VB, you can play around with it.
Given the time I found to write it, the code is pretty messy and some of my home made control class's are.. well, in a word.. shit. However, it should be a good example, which is all I really had in mind (Just went abit OTT, you know.. as you do) :(
Anyway, Enjoy!



As for the SCGP class:
You can view it here: [size=6]clsSCGP.cls[/size]
It requires you have a version of storm.dll in the project directory. I Find storm.dll version 1.0.9.0 to be most stable.
1st of all, you MUST *update* the class, every 250ms, other wise it will be about as active as a 20 stone woman in bed.
So basicly, just have a timer with an interval of 250ms, and in the timer() sub, call the SCGP.update sub.
This will allow it to track time (even tho, that is at best, very basic at the moment)
You MUST also pass UDP data to the class via SCGP.OnData(Data, IP, Port)


Now, lets say you want to join a game:
You need to pass the class a few things to get the ball rolling.
You need the following infomation:
[code]
lngIP = inet_addr("0.0.0.0")
intPort = htons(6112)
MyAcc = "Ringo"
MyStats = "PXES 0 0 0 0 0 0 0 0 PXES"
Password = ""
Handle = sckUDP.SocketHandle

Call SCGP.InitJoin(lngIP, intPort, MyAcc, MyStats, Password, Handle)
[/code]

As for creating a game, you need abit more infomation for this.
[code]
Handle = sckUDP.SocketHandle
MPQ = app.path & "\(8)Big Game Hunters.scm"
intGameType = &HF 'top vs bottom
intPenalty = 1 '7v1
MPQHash = GetFileTimeHash(MPQ) 'get the hash from the file time or w/e u put it
lngStatsCode = &H0 'melee stats
lngMyClient = &H53455850 'PXES
MyAcc = "Ringo"
GameName = "Lets Stomp Comps"
GamePass = ""
GameSpeed = 6
GameStats = SCGP.GetMapStats(MPQ, GameSpeed, intGameType, intPenalty, MyAcc)

If (SCGP.InitCreate(Handle, MPQ, intGameType, intPenalty, MPQHash, lngStatsCode, lngMyClient, MyAcc, GameName, GamePass, GameStats)=false then
    'handle any error here
end if
[/code]
Notice I got the game stats string from SCGP.GetMapStats()
The class also has a few handy functions for reading map files.

[code]
Public Function GetMapIcon(ByVal strMPQ As String) As Long
[/code]
This function will accept a path to a map file, and return what type of icon the map has.
For example, 0 = none, 1 = blizzard, 2 = ladder, etc

[code]
Public Function GetMapInfo(ByVal strMPQ As String, _
                           ByRef lngWidth As Long, _
                           ByRef lngHeight As Long, _
                           ByRef bIcon As Byte, _
                           ByRef bTitle As Byte, _
                           ByRef bPlayers As Byte, _
                           ByRef bComputers As Byte, _
                           ByRef strTitle As String, _
                           ByRef strDesc As String) As Boolean
[/code]
This function takes a path to a map file, and returns its width, height, icon, titleset, number of human players, number of computer players, the map name (not file name) and the map description.
Pretty much all the infomation you need, when you click a map on starcraft, and view its info when creating a game.
also, VERY IMPORTANT, is the number of players and computers returned.
You need this number, to derive the correct penalty index (as explained under GetMapStats) for mostly, tvb games.

[code]
Public Function GetMapStats(ByVal strMPQ As String, _
                            ByVal bSpeed As Byte, _
                            ByVal intType As Integer, _
                            ByVal bPenalty As Byte, _
                            ByVal strHost As String) As String
[/code]
This function takes a path to a map file, a game speed, a game type, a penalty for said game type, and your account name, and returns a map stats string.
You need this map stats string when calling the SCGP.InitCreate(), you also need this for sending 0x1C to battle.net, to create the game.
Its very important, you pass the correct penalty value.
for example, it must never be below 1, and never above 7.
In a team game, like team melee, team ffa etc, 1=2teams, 2=3teams, 3=4teams.
For top vs bottom, penalty = the number of players in the away team.
You need the max number of players (Players+Comps, from the GetMapInfo) to get a true list of top vs bottom penaltys.
Top vs bottom penaltys, basicly goes like this:
1 = 7v1
2 = 6v2
3 = 5v3
etc etc etc
but for a map with less than 8 players, it goes somthing like
1 = 5v1
2 = 4v2
3 = 3v3
4 = 4v2
etc.
So, its important you pass the correct penalty.
Why is it important?
Because when hosting, joining players will use the game stats string to derive the team infomation, max number of players, etc etc.
Not to mention, I flip the penalty valur around, in the getmapstats function, and the initcreate sub, so that I can just pass it the combo box index.
Makes it simpler on the out side, to list the teams/penaltys the same way starcraft does, and just pass the listindex value to the functions.
(Well, ok, not so important)


[code]
Public ReadMPQFile(ByVal strMPQ As String, ByVal strFile As String, ByRef strBuffer As String) As Boolean
[/code]
This function, takes a path to a MPQ file, the name of a file with in the mpq, and returns the file data in strBuffer.
The function returns false, if it fails.







[size=6]Now for a list of the current supported events:[/size]
[code]
Public Event OnJoinLatency()
[/code]
Speaks for its self -- this is raised after about 8 seconds of joining the game, if the host doesnt respond.

[code]
Public Event OnCreate(ByVal strMAP As String)
    strMAP = path to the map file
[/code]
This is raised 1st, when you create agame, followed by all the other events

[code]
Public Event OnEnterRoom()
[/code]
This is raised when you have enterd the game room.
Normaly, this is the 1st event you get after joining agame, letting you know you're in.
Its also raised if your hosting agame, following the OnCreate() event.


[code]
Public Event OnJoinReject(ByVal bReassion As Byte)
    Select Case bReassion
        Case &H0:   "You Have Been Booted.")
        Case &H1:   "You Have Been Banned.")
        Case &H2:   "Game Creater Has Closed All Avalible Slots.")
        Case &H3:   "Game Host Has Left The Game.")
        Case &H4:   "Unable To Join The Game.")
        Case &H5:   "Save Game File Not Found.")
        Case &H6:   "Unable To Write Scenario File.")
        Case &H7:   "Invalid Game Version.")
        Case &H8:   "Invalid Spawn Version.")
        Case &H9:   "Unable To Authenticate Map.")
    End Select
[/code]
Pretty much speaks for its self there.
Note: this event will be raised, with the reassion 0x04, if the host rejects you'r joing request.


[code]
Public Event OnMapStats(ByVal strGameName As String, _
                        ByVal strGamePass As String, _
                        ByVal strGameStats As String, _
                        ByVal intGameType As Integer, _
                        ByVal intPenaltyA As Integer, _
                        ByVal lngPenaltyB As Long, _
                        ByVal lngMaxPlayers As Long, _
                        ByVal intMapWidth As Integer, _
                        ByVal intMapHeight As Integer, _
                        ByVal strSlotSelect As String, _
                        ByVal strRaceSelect As String)
[/code]
Thses values pretty much speak for them selfs.
The penaltyA value, is the basic penalty index.
The penaltyB, is the value that goes with the penalty index -- like the time in a slaughter game.
strSlotSelect and strRaceSelect are both 12 bytes long. They contain the base stats of each player/game slot. so for example, if the 3rd byte in slotselect is not 0x06, you can not change game room slot 3's state (if you are the host)
if the 4th byte of raceselect is not 0x06, then the 3rd game room slot can not have its race changed.
Kind of like, comps in UMS games, and fixed races in UMS game.


[code]
Public Event OnForceName(ByVal strForceA As String, _
ByVal strForceB As String, _
ByVal strForceC As String, _
ByVal strForceD As String)
[/code]
Raised to tell you the force names, mainly, in UMS games.
For example, the team names in a UMS game.


[code]
Public Event OnCheckMap(ByVal lngLengh As Long, _
ByVal lngChecksum As Long, _
ByVal strMapName As String, _
ByRef bGotIt As Boolean, _
ByRef strMapData As String)
[/code]
Raised when the class wants to know if you need to download the map or not.
The lengh is the lengh of the map file.
the checksum is a checksum of the file -- I just store that in the maps file time.
if you have the map already and dont need to download it, you must set the bGotIt to true, and fill strMapData with the file data, so the class can then send the map to any other players who may need it.


[code]
Public Event OnMapDownloaded(ByVal lngLengh As Long, _
     ByVal lngChecksum As Long, _
     ByVal strMapName As String, _
         ByRef strData As String)
[/code]
Simply telling you, the class has finished downloading the map.
Lengh of the map, checksum of the map, name of the map, map file data.


[code]
Public Event OnMapDownloading(ByVal bPercent As Byte, ByVal bSlot As Byte)
[/code]
tells you that a player in the game room slot, has updated their download percentage.
This is also raised for you're own download progress, as well as any other.


[code]
Public Event OnSlotUpdate(ByVal bSlot As Byte, _
  ByVal strAccount As String, _
      ByVal bState As Byte, _
  ByVal enRace As SCGP_RACE, _
  ByVal bTeam As Byte, _
  ByVal lngPing As Long, _
  ByVal bDLPer As Byte)
[/code]
Raised when a game slot is updated. Explains its self pretty well there.


[code]
Public Event OnChat(ByVal strAccount As String, ByVal strChat As String)
[/code]


[code]
Public Event OnSlotPing(ByVal bSlot As Byte, ByVal lngPing As Long)
[/code]
Raised when a player in the given game room slot, has got a ping update.


[code]
Public Event OnPlayerJoin(ByVal strAccount As String, ByVal strStats As String)
[/code]
Raised when a player joins the game.
This does not include existing players already in the game.


[code]
Public Event OnPlayerQuit(ByVal bSlot As Byte)
[/code]
Raised when a player in a given game room slot, has quit the game.


[code]
Public Event OnGameStart()
[/code]
Explains its self pretty well.
This is also when the road ends.
You should beable to just about idle ingame with 1 or more players, but this class really stops when it comes to game start.
As siad above, its currently only around 20% compleat.








[size=6]Game room functions:[/size]
[code]
Public Sub Clear()
[/code]
Does exacly what it says, clears the class and renders it "offline".


[code]
Public Sub Quit()
[/code]
Tells everyone in the game u have quit.
This does not call the .clear sub, you must do that you're self if you also want to reset the class.


[code]
Public Sub Chat(ByVal strChat As String)
[/code]
Wanna talk to ppl?


[code]
Public Sub ChangeRace(ByVal bSlot As Byte, ByVal enRace As SCGP_RACE)
[/code]
Wanna change you're race, or the race of another player etc?
if your changing your own race, the slot must be 0x08.

[code]
Public Sub ChangeTeam(ByVal bTeam As Byte)
[/code]
Wanna move to another team, or to a new slot in your current team?


[code]
Public Sub MovePlayerTeam(ByVal bSlot As Byte, ByVal bTeam As Byte)
[/code]
Are you the host, and you want to move somone to another team?
You can not move you're self.
This is for TvB game type only.


[code]
Public Sub MovePlayerSlot(ByVal bSlot As Byte, ByVal bToSlot As Byte)
[/code]
Same as moveplayerteam iirc, but you can be abit more selective with what slot you move them to.
Same rules apply as MovePlayerTeam


[code]
Public Sub ChangeSlotState(ByVal bSlot As Byte, ByVal bState As Byte)
[/code]
If your the host, and you want to change the state of a slot, use this.
If you change the state of a slot that contains a player, it will boot them automaticly.
0x05 = computer
0x06 = open
0x08 = closed

[code]
Public Sub BootPlayer(ByVal strAccount As String, Optional ByVal bBan As Boolean = False)
[/code]
Boot or ban a player from the game.






And thats about it, THX GOD, lawl.
what a long ass post ><
I feel like i'm even talking to my self in this post.
Hope you enjoy it, add to it, gib feed backs and take the piss or w/e floats ur boat.
Peace!
November 3, 2008, 2:20 PM
Sixen
Very nice, Ringo!
November 3, 2008, 3:48 PM
Yegg
Ringo, you do too much :).
November 3, 2008, 7:58 PM
vector
Oh my freaking gosh, Ringo. Blizzard could use your skills, hehe. This is really nice. I mean, the concept of creating a starcraft client is way beyond me.
November 3, 2008, 9:13 PM
MysT_DooM
sob
November 3, 2008, 11:18 PM
Ringo
[quote author=vector link=topic=17703.msg180195#msg180195 date=1225746805]
Oh my freaking gosh, Ringo. Blizzard could use your skills, hehe. This is really nice. I mean, the concept of creating a starcraft client is way beyond me.
[/quote]
lol, I will take that as sarcasm :p
I don't have any skillz :D

Aside, did you guys download the source and try it?
I had a few problems orginaly compileing it, vb compiler was having as hissy fit about module.variable = X, but calmed down with variable = X

[quote author=MysT_DooM link=topic=17703.msg180197#msg180197 date=1225754323]
sob
[/quote]
Hi MysT :)
Sob = you're sobbing? :( why? SC2 is out soon, BW is pretty lifeless and this SCGP class should be a good referance for the map promotor you have been working on for ages :)
or, Sob = son of bitch? :P yeah my moms a bitch!
November 4, 2008, 5:31 AM
MysT_DooM
son of a bitch!
sigh...ur right it is helpful for my map promoter prog.  Ill take a look at the class this weekend. 
The farthest I got in this sc udp was joining the game and seeing people chat.  Although they couldn;t see me in the room.  So my sort of fustration was like...damn...he posted all the answers...but its cool...itll help other people im sure more than the incomplete stuff i posted.  But yeh SC2 is coming so might as well put out all the SC stuff.
November 4, 2008, 2:33 PM
Racial
gfg nice work
November 5, 2008, 2:44 AM
Ringo
This should all be fun and working again now, since sc/bw 1.16a patch just went live, plus warden is now off :p
Idk if any of SCGP has changed tho -- probly not.
November 25, 2008, 12:08 AM
Ringo
Ive just spent the past hour updating this bot!
It now supports 1.16a warden -- by that I mean, basic checking/downloading of module's, preping them, loading them, initializeing them and calling a select few functions to handle 0x05. All 0x02 stuff is done manualy.
Besides that, the only new addition is a zlib.dll -- I did all the ASM stuff manualy (yeah, my VB6 ASM class, is ugly, but it works none the less :P)
Remember, this is for educational useage alone, so I don't want to see any morons trying to help load bot kiddies to add it to *their* bot's, If I do, I won't be doing this stuff again. (goes with out saying really)
How ever, Ive wrote the modWARDEN.bas iin such away, it should be pretty hard to modify and put into a load bot, or alike -- unless you know what you're doing.
Besides that, the 10mins I was online with it, testing, it looked like SCGP hasn't changed at all in 1.16.
Hope you enjoy it.
[size=5]SCGP.zip[/size]
December 15, 2008, 3:33 PM
Sixen
Once again, Ringo pulls through, =).

Interesting stuff man..
December 15, 2008, 5:27 PM
Myndfyr
[quote author=Ringo link=topic=17703.msg180814#msg180814 date=1229355200]
How ever, Ive wrote the modWARDEN.bas iin such away, it should be pretty hard to modify and put into a load bot, or alike -- unless you know what you're doing.
[/quote]
Sadly it's a really difficult line to walk.  I think a lot of us don't want to see this kind of abuse.....  I don't understand what purpose it serves.

Nice work.
December 15, 2008, 6:38 PM
Barabajagal
I'm sorry, I just had to laugh out loud when I saw this:
[code]    Select Case A
        Case &H10000021
        Case &H10000050
        Case &H10000070
        Case &H100000A1
        Case &H11000020
        Case &H11000021
        Case &H16000030
        Case &H1700007C
        Case &H170001E9
        Case &H19000059
        Case &H1A0000C3
        Case &H1F000219
        Case &H1F000234
        Case &H20000022
        Case &H20000049
        Case &H23000048
        Case &H24000032
        Case &H250001EE
        Case &H250001FE
        Case &H28000091
        Case &H2A0000E1
        Case &H2A0000F1
        Case &H3000069C
        Case &H300006D4
        Case &H300006D7
        Case &H300007A8
        Case &H32000121
        Case &H3700008E
        Case &H40000081
        Case &H58000092
        Case &HC0002D0
        Case &HD0000E8
        Case &HE0001FD
        Case &HE000622
        Case Else: Exit Function
    End Select[/code]
You know you can do "Case &H10000021, &H10000050, etc...", right? Hopefully it's more efficient than running 35 case checks, too...

Edit: Also, I tried logging in, and noticed something I find quite funny. The icon for my account (RealityRipple) on Warcraft 2, has the #1 IronMan icon next to it, even though I'm #33.
December 15, 2008, 10:48 PM
BreW
[quote author=Andy link=topic=17703.msg180817#msg180817 date=1229381290]
I'm sorry, I just had to laugh out loud when I saw this:
[code]    Select Case A
        Case &H10000021
        Case &H10000050
        Case &H10000070
        Case &H100000A1
        Case &H11000020
        Case &H11000021
        Case &H16000030
        Case &H1700007C
        Case &H170001E9
        Case &H19000059
        Case &H1A0000C3
        Case &H1F000219
        Case &H1F000234
        Case &H20000022
        Case &H20000049
        Case &H23000048
        Case &H24000032
        Case &H250001EE
        Case &H250001FE
        Case &H28000091
        Case &H2A0000E1
        Case &H2A0000F1
        Case &H3000069C
        Case &H300006D4
        Case &H300006D7
        Case &H300007A8
        Case &H32000121
        Case &H3700008E
        Case &H40000081
        Case &H58000092
        Case &HC0002D0
        Case &HD0000E8
        Case &HE0001FD
        Case &HE000622
        Case Else: Exit Function
    End Select[/code]
You know you can do "Case &H10000021, &H10000050, etc...", right? Hopefully it's more efficient than running 35 case checks, too...

Edit: Also, I tried logging in, and noticed something I find quite funny. The icon for my account (RealityRipple) on Warcraft 2, has the #1 IronMan icon next to it, even though I'm #33.
[/quote]

I'm sorry, I had to laugh out loud when I saw this:









wait a minute, nothing
hmmm...
expect realityripple bot have a 'warden bypass' in the next 24 hours. no thanks to ringo, either.
December 16, 2008, 12:23 AM
Barabajagal
My bot doesn't have a warden bypass. And won't. Ringo and Blake were helping me with one for a while, but I got tired of trying to do things in VB6 and PB when they should be done in assembly (which I can't write in), so I deleted all of it. I'm waiting till Blake writes JBLS in C and then he or I will convert it to a nice little DLL like BNCSutil and we'll have a good library again.
December 16, 2008, 12:49 AM
BreW
[quote author=Andy link=topic=17703.msg180819#msg180819 date=1229388597]
My bot doesn't have a warden bypass. And won't. Ringo and Blake were helping me with one for a while, but I got tired of trying to do things in VB6 and PB when they should be done in assembly (which I can't write in), so I deleted all of it. I'm waiting till Blake writes JBLS in C and then he or I will convert it to a nice little DLL like BNCSutil and we'll have a good library again.
[/quote]

No, you had no idea. Nor did Hdx. Stop acting as if either of you actually had a chance to solve warden on your own.
And for your information, his seemingly verbose switch statement would compile to the same as case cond1, cond2, ...
December 16, 2008, 1:01 AM
Barabajagal
Ya, well... VB6's compiler sucks. Nothing I can do about that.
And when did I ever claim I had any chance to solve warden myself? I'm fairly certain I've stated in any posts about me writing anything to do with warden or checkrevision that it was thanks to iago, ringo, and blake that I got anything done. I'm not a reverse engineer. I've never claimed to be one. I never intend to be one. Now shut the fuck up.
December 16, 2008, 1:10 AM
BreW
[quote author=Andy link=topic=17703.msg180821#msg180821 date=1229389850]
Now shut the fuck up.
[/quote]

No please, you first, especially when you're critizing ringo's work when you haven't done jack shit. All you do, like the rest of the current battle.net 'programmers' is suck off of those who have talent. You're a leech, and I'm sure everyone else here (sans Hdx) would agree.

By the way, as observant as you are, i'd assume you saw how Ringo blended assembly with vb6 just fine.
December 16, 2008, 1:13 AM
Explicit[nK]
brew, someone who stopped by beta summed up your life as such:

[quote]
[00:10:01] <anon> he got so mad, that he quit life n spent everymin of his life to learn about programming so we couldn't bag on him ne more
[/quote]

You just confirmed it. :)
December 16, 2008, 1:37 AM
HdxBmx27
[quote author=brew link=topic=17703.msg180820#msg180820 date=1229389315]
[quote author=Andy link=topic=17703.msg180819#msg180819 date=1229388597]
My bot doesn't have a warden bypass. And won't. Ringo and Blake were helping me with one for a while, but I got tired of trying to do things in VB6 and PB when they should be done in assembly (which I can't write in), so I deleted all of it. I'm waiting till Blake writes JBLS in C and then he or I will convert it to a nice little DLL like BNCSutil and we'll have a good library again.
[/quote]

No, you had no idea. Nor did Hdx. Stop acting as if either of you actually had a chance to solve warden on your own.
And for your information, his seemingly verbose switch statement would compile to the same as case cond1, cond2, ...
[/quote]I can honestly say, that No, I did not have any freakin idea what I was doing when trying to reverse Warden, or anything else for that matter. I was able to correctly identify RC4/SHA functions, and also able to find the jump tables for packet handlers. But I am not, At least not yet, flaunt enough to of done much more on my own. But i'm learning. Ringo, and Ron are both almost 100% to be credited with everything. If you'd look at anything i've posted its been a long the times of 'Hey, I cant do it so untill someone else does, meh'

Brew quit being a douche. As for Andy, that switch is him trying to keep count of all the different checks 0x02 is showing.
December 16, 2008, 2:03 AM
Sixen
[quote author=brew link=topic=17703.msg180822#msg180822 date=1229390038]
No please, you first, especially when you're critizing ringo's work when you haven't done jack shit. All you do, like the rest of the current battle.net 'programmers' is suck off of those who have talent. You're a leech, and I'm sure everyone else here (sans Hdx) would agree.

By the way, as observant as you are, i'd assume you saw how Ringo blended assembly with vb6 just fine.
[/quote]

So it's not OK for Andy to criticize Ringo, but it's OK for you to criticize Andy?

Now, now. There was no reason for this bitchfest to start. Andy was simply stating there was a cleaner way Ringo could've written code in his program.

Oh yes, that's terrible. How dare you give constructive criticism, Andy! Bad!

I don't even see how brew brought Hdx into this.. But, uh, whatever.
December 16, 2008, 6:01 AM
Ringo
[quote author=Andy link=topic=17703.msg180817#msg180817 date=1229381290]
I'm sorry, I just had to laugh out loud when I saw this:
[code]*snip*
[/code]
You know you can do "Case &H10000021, &H10000050, etc...", right? Hopefully it's more efficient than running 35 case checks, too...
[/quote]
Yeah, but I case'ed them like that for a good reassion:
1st was, thats how I printed them out, and didn't fancy moving them to one line.
2nd was, this is ment purely as an example/referance, so I didn't want to make it harder to read than it already is.
3rd was, it make's no differnce to the compiler :p

[quote author=Andy link=topic=17703.msg180817#msg180817 date=1229381290]
Edit: Also, I tried logging in, and noticed something I find quite funny. The icon for my account (RealityRipple) on Warcraft 2, has the #1 IronMan icon next to it, even though I'm #33.
[/quote]
Theres probly plenty more misscounts/bugs like that -- I wrote the whole bot from pretty much nothing in a week end, so a large percent of things like that never got tested.
If you want to fix it, see modCHAN.GetW2UniqueIcon() :)
December 16, 2008, 6:21 AM
Barabajagal
I'm so glad I don't even have to say anything anymore.
December 16, 2008, 6:59 AM
Ringo
[quote author=Andy link=topic=17703.msg180828#msg180828 date=1229410771]
I'm so glad I don't even have to say anything anymore.
[/quote]
Then don't ;)
The later half of this topic is spammed up enough.
December 16, 2008, 7:19 AM
Sixen
[quote author=Ringo link=topic=17703.msg180829#msg180829 date=1229411997]
[quote author=Andy link=topic=17703.msg180828#msg180828 date=1229410771]
I'm so glad I don't even have to say anything anymore.
[/quote]
Then don't ;)
The later half of this topic is spammed up enough.
[/quote]

=/.

Back on topic, great job, Ringo! =).
December 16, 2008, 5:46 PM
PunK
Nice listbox / listview interface =o

I was wondering how I could go about changing the basic windows scroll bar and drop down... Looks like I will take a looky when I get home.
December 17, 2008, 1:38 AM
chyea
I'll too concur that Andy is a douche.
December 17, 2008, 7:11 AM
Newby
[quote author=Explicit link=topic=17703.msg180823#msg180823 date=1229391422]
brew, someone who stopped by beta summed up your life as such:

[quote]
[00:10:01] <anon> he got so mad, that he quit life n spent everymin of his life to learn about programming so we couldn't bag on him ne more
[/quote]

You just confirmed it. :)
[/quote]

Epic win.

--

@ Ringo: Nice work. VB6 is an evil language, but the fact that you pulled this off is impressive anyway. :)
December 17, 2008, 9:16 AM
MyStiCaL
[quote author=Explicit link=topic=17703.msg180823#msg180823 date=1229391422]
brew, someone who stopped by beta summed up your life as such:

[quote]
[00:10:01] <anon> he got so mad, that he quit life n spent everymin of his life to learn about programming so we couldn't bag on him ne more
[/quote]

You just confirmed it. :)
[/quote]

I remember that.

Who would say such a thing like that? ;)
December 22, 2008, 3:03 AM
MyStiCaL
[quote author=Ringo link=topic=17703.msg180814#msg180814 date=1229355200]
How ever, Ive wrote the modWARDEN.bas iin such away, it should be pretty hard to modify and put into a load bot, or alike -- unless you know what you're doing.
Besides that, the 10mins I was online with it, testing, it looked like SCGP hasn't changed at all in 1.16.
Hope you enjoy it.
[size=5]SCGP.zip[/size]
[/quote]

Yeah definitly a big pain in the ass trying to rip your warden function out, it has calls all over the place uhg! but im definity not using this for a public bot or load bot, just so i can get back on starcraft again and of course the credits yours! I almost got it but then i dont haha. :]
January 10, 2009, 1:34 PM
Ribose
I was able to "rip" it and convert it to C# (with tons of help from him and Hdx, and looking at iago's wiki) and it's working mostly. If I could get it, you should be able to. :D :P
January 10, 2009, 2:57 PM
MyStiCaL
[quote author=Ribose link=topic=17703.msg181097#msg181097 date=1231599438]
I was able to "rip" it and convert it to C# (with tons of help from him and Hdx, and looking at iago's wiki) and it's working mostly. If I could get it, you should be able to. :D :P
[/quote]

Well I'm not getting actual help from them, just RIPPING his warden source, ha ha, I've pulled all the needed functions converted what i needed to convert.I how ever believe I"m generating the seed wrong. the way things r going, i'll probley end up just understanding his FULL source.
January 10, 2009, 10:39 PM
Ringo
You can, in theory, copy/paste the modWARDEN.bas and clsASM.cls into a chat bot, declare the needed API's and a few other functions (like HexToStr(), StrToHex(), malloc() and free()) and use it right away.
It is not copy/paste friendly for multi profile chat bots, load bots, or alike tho.

If anyone wants to just copy/paste the .bas and .cls to their bot, I will explain below (after all, that is what I had in mind when writeing this)
[hr]
1st, create a folder in you're bots directory called "warden", this is where the modules will be downloaded and saved to.
[hr]
2nd, declare any API the module/class uses, and add the extra functions, that you currently dont have, IE: hextostr, strtohex, malloc, free, etc. (they should all be in the modAPI.bas, iirc)
[hr]
3rd, any call in the modWARDEN.bas to "modBNET.SB5E()", change to you're send0x5E() sub.
[hr]
4th, when you send BNCS 0x51, make a call to the modWARDEN.WardenInit(FirstDwordOfCdkeyHash)
If you're sending 0x36, pass zero, rather than the first dword of the cdkey hash.
This call will also unload any existing module, ready for a fresh logon.
[hr]
5th, when you recv an incoming 0x5E message, pass the whole packet to the modWARDEN.WardenOnData(PacketData)
[hr]
6th, when you unload you're program, you should make a call to the modWARDEN.WardenCleanUp()


Thats pretty much it, iirc.
January 11, 2009, 1:36 PM
Smarter
Ringo, I hate to critisize, but when will you learn a new language, your amazing truly, but VB6 makes me want to lose my lunch, or whatever meal it is I may have recently ingested.
January 11, 2009, 1:48 PM
MyStiCaL
[quote author=Ringo link=topic=17703.msg181106#msg181106 date=1231681000]
You can, in theory, copy/paste the modWARDEN.bas and clsASM.cls into a chat bot, declare the needed API's and a few other functions (like HexToStr(), StrToHex(), malloc() and free()) and use it right away.
It is not copy/paste friendly for multi profile chat bots, load bots, or alike tho.

If anyone wants to just copy/paste the .bas and .cls to their bot, I will explain below (after all, that is what I had in mind when writeing this)
[hr]
1st, create a folder in you're bots directory called "warden", this is where the modules will be downloaded and saved to.
[hr]
2nd, declare any API the module/class uses, and add the extra functions, that you currently dont have, IE: hextostr, strtohex, malloc, free, etc. (they should all be in the modAPI.bas, iirc)
[hr]
3rd, any call in the modWARDEN.bas to "modBNET.SB5E()", change to you're send0x5E() sub.
[hr]
4th, when you send BNCS 0x51, make a call to the modWARDEN.WardenInit(FirstDwordOfCdkeyHash)
If you're sending 0x36, pass zero, rather than the first dword of the cdkey hash.
This call will also unload any existing module, ready for a fresh logon.
[hr]
5th, when you recv an incoming 0x5E message, pass the whole packet to the modWARDEN.WardenOnData(PacketData)
[hr]
6th, when you unload you're program, you should make a call to the modWARDEN.WardenCleanUp()


Thats pretty much it, iirc.
[/quote]

Hmm, That's exactly what i have already done, and sadly, I must have errored somewhere or generate the wrong seed, because it doesn't even attempt tocreate it's own warden modules lol. as far as about the multiprofile after i have it working, i can probley just attempt to add it to a library n should be easyier to work from there.
January 11, 2009, 4:29 PM
helpmeringo
Here's the problem that I've ran into.

The ENTIRE packet starting from "FF" is S.

[code]
Public Function WardenOnData(S As String)
    Dim lngData         As Long
    Dim lngLengh        As Long
    Dim lngID           As Long
    lngLengh = (Len(S) - 4)
    If (lngLengh < 1) Then Exit Function
    lngData = malloc(lngLengh)
    Call RC4CryptStr(S, m_KeyIn(), 5)
    lngID = Asc(Mid$(S, 5, 1))
    If (lngID < 6) Then
        Call CopyMemory(ByVal lngData, ByVal Mid$(S, 5, lngLengh), lngLengh)
        Call CallWindowProcA(m_Parse(lngID), lngData, lngID, lngLengh, 0)
    End If
    Call free(lngData)
End Function[/code]

The problem that I run into is that lngID is never 5 or under.  RC4CryptStr is broken. 

Packet data before I run it into rc4cryptstr
FF 5E 29 00 D9 9A F8 69 D9 3D DC 1F EF 28 83 4D 07 9D D7 90 2C 3D C6 D2 0F 77 80 46 73 36 32 D1 CB 10 CC 38 32 B9 15 63 AD


The packet data after it's ran through rc4cryptstr
FF 5E 29 00 C5 6A F4 E2 AB E9 B4 56 0F FC 2F AD CA 40 7D 4D 69 BD 74 26 6C B7 78 51 C8 63 2A 8F E8 39 4A 98 1C C4 D5 45 52

As you can see.  the 5th hex string "C5" isn't below 6.  I'm clueless why this is happening!  I got warden init, everything else correct.  I can't even pass the FIRST warden packet.  Again I'm completely clueless I've been trying for hours!  It makes no sense why the rc4cryptstr works for SCGP and not another bot??

Here's my RC4CryptStr function

[code]
Private Sub RC4CryptStr(ByRef S As String, ByRef bK() As Byte, ByVal Pos As Long)
    Dim A          As Long
    Dim B          As Long
    Dim C          As Byte
    Dim i          As Long
    A = bK(256)
    B = bK(257)
    Call WritetoFile("warden.txt", StrToHex(S))
    For i = Pos To Len(S)
        A = (A + 1) Mod 256
        B = (B + bK(A)) Mod 256
        C = bK(A)
        bK(A) = bK(B)
        bK(B) = C
        Mid(S, i, 1) = Chr$(Asc(Mid$(S, i, 1)) Xor bK((CInt(bK(A)) + bK(B)) Mod 256))
    Next i
    Call WritetoFile("warden.txt", StrToHex(S))
    bK(256) = A
    bK(257) = B
End Sub
[/code]
January 11, 2009, 7:53 PM
Ringo
I would guess you're not passing the correct seed to wardeninit(), when you build 0x51.
It should be the 1st 4 bytes of the 1st cdkey's broken SHA1 hash.
If you're logging on via 0x06/0x07/0x36 etc, you will need to seed wardeninit() with 0x00000000.
January 11, 2009, 8:21 PM
helpmeringo
[quote author=Ringo link=topic=17703.msg181116#msg181116 date=1231705316]
I would guess you're not passing the correct seed to wardeninit(), when you build 0x51.
It should be the 1st 4 bytes of the 1st cdkey's broken SHA1 hash.
If you're logging on via 0x06/0x07/0x36 etc, you will need to seed wardeninit() with 0x00000000.

[/quote]

I think I did something wrong at the warden init, gonna check

Ok here's part of my 0x51 send packet code

[code]   
Dim lngSeed     As Long

Call CopyMemory(lngSeed, ByVal AccountHash, 4)
   
    Call ModWarden.WardenInit(lngSeed)

'fast forward to see what accounthash is

           pk.InsertDWORD Len(CDKeyg)
            pk.InsertDWORD productvalue
            pk.InsertDWORD publicvalue
            pk.InsertDWORD Checksum
           
           
            pk.InsertNonNTString AccountHash

[/code]

Am I doing it right?

accounthash works for 0x51


I FIXED IT!  Make sure INIT warden works!

After like 2 minutes my prog freezes?  Any ideas why?
January 11, 2009, 8:42 PM
MyStiCaL
Yuck, now here comes a load bot ^ nes
January 11, 2009, 10:35 PM
Ringo
[quote author=MyStiCaL link=topic=17703.msg181119#msg181119 date=1231713328]
Yuck, now here comes a load bot ^ nes
[/quote]
heh yeah, thought it might be with a name like that :P
gonner take him a long time to figger out how to get it working for multiple connects at once :P
Fun times.
January 11, 2009, 11:10 PM
MyStiCaL
[quote author=Ringo link=topic=17703.msg181120#msg181120 date=1231715424]
[quote author=MyStiCaL link=topic=17703.msg181119#msg181119 date=1231713328]
Yuck, now here comes a load bot ^ nes
[/quote]
heh yeah, thought it might be with a name like that :P
gonner take him a long time to figger out how to get it working for multiple connects at once :P
Fun times.
[/quote]

well for me that's actually the easy part, i guess my problem is still the seed to see if anything is intializing right
January 11, 2009, 11:40 PM
Ribose
[quote author=Ringo link=topic=17703.msg181120#msg181120 date=1231715424][quote author=MyStiCaL link=topic=17703.msg181119#msg181119 date=1231713328]Yuck, now here comes a load bot ^ nes
[/quote]
heh yeah, thought it might be with a name like that :P
gonner take him a long time to figger out how to get it working for multiple connects at once :P
Fun times.
[/quote]Converting it to C# almost unavoidably made it easy to use the class multiple times (there are not "modules" like there are in VB6, instead use a class), besides the part that I already had all of the RC4 and init with seed done from the first Warden work-around. :)

I really can't understand what the point of having Warden support for a load bot serves anyway. You're connected for less than two minutes...
January 12, 2009, 6:20 AM
Paladin
Hey Ringo  :)!

I have tried to integrate your source code into my own bot however I do not get the results I would want to get.

I succesfully get the:
[code]Downloading Warden Module:
615178218368F15E84FF2921091A3D78.bin
[/code]
message but...the module doesn't seem to get downloaded as it is not saved in my \Warden\ folder and my bot disconnects ~2 minutes after connecting.

What could possibly cause this? Bad seed?

Nice work by the way!
Would appreciate help  :)


EDIT: Nevermind, got everything working fine now..:D
January 12, 2009, 9:42 PM
Ringo
[quote author=Paladin link=topic=17703.msg181131#msg181131 date=1231796547]
EDIT: Nevermind, got everything working fine now..:D
[/quote]

What was the problem and how did you fix it, incase others have the same problem?
I'm guessing, you didn't include zlib.dll to the bot directory?
January 13, 2009, 6:40 AM
Paladin
Well, I got it to work by using your SCGP program to download Warden modules (which isn't the best solution but it worked for me :P I was tired and didn't really bother..)

Anyways, now I read my debug messages and I get this:

[code]HW0x02() Error:


W:é—uq\¢–/¥ëÛh1þ$' :ÚâÖÎïýv&µaËÕ6yêP4rÌ
{
PrepareModule()
  Allocated 49152 (0xC000) bytes for new module
  Copying code sections to module.
  Adjusting references to global variables...
  Updating API library references..
  Lib: KERNEL32.dll
      Function: Sleep
      Function: TlsFree
      Function: TlsGetValue
      Function: TlsSetValue
      Function: RaiseException
      Function: TlsAlloc
      Function: GetProcAddress
      Function: GetModuleHandleA
      Function: GetVersionExA
      Function: GetSystemInfo
      Function: GetTickCount
      Function: VirtualQuery
      Function: QueryDosDeviceA
      Function: CloseHandle
      Function: GetCurrentProcess
      Function: FreeLibrary
      Function: DuplicateHandle
      Function: LoadLibraryA
      Function: GetProcessHeap
      Function: HeapFree
      Function: TerminateProcess
      Function: UnhandledExceptionFilter
      Function: SetUnhandledExceptionFilter
      Function: QueryPerformanceCounter
      Function: GetCurrentThreadId
      Function: GetCurrentProcessId
      Function: GetSystemTimeAsFileTime
      Function: RtlUnwind
  Lib: USER32.dll
      Function: CharUpperBuffA
  Successfully mapped Warden Module to 0x383FFDC
InitModule()
  Initialize Function is mapped at 0x384646C
[/code]

As you can see, there's an error at HW0x02() and I know the error occurs at that line:
[code]If (Not m_ModState = 2) Then GoTo HW0x02Err[/code]

So what could it possibly be?
January 13, 2009, 3:53 PM
MyStiCaL
[quote author=Ribose link=topic=17703.msg181123#msg181123 date=1231741243]
[quote author=Ringo link=topic=17703.msg181120#msg181120 date=1231715424][quote author=MyStiCaL link=topic=17703.msg181119#msg181119 date=1231713328]Yuck, now here comes a load bot ^ nes
[/quote]
heh yeah, thought it might be with a name like that :P
gonner take him a long time to figger out how to get it working for multiple connects at once :P
Fun times.
[/quote]Converting it to C# almost unavoidably made it easy to use the class multiple times (there are not "modules" like there are in VB6, instead use a class), besides the part that I already had all of the RC4 and init with seed done from the first Warden work-around. :)

I really can't understand what the point of having Warden support for a load bot serves anyway. You're connected for less than two minutes...
[/quote]

well, vb6 has classes to and load bots are ment to be kept up for hours, days, somtimes weeks. the purpose of them was to keep channels full.
January 13, 2009, 4:23 PM
PunK
So when building 0x51, you have to use SHA1 to hash the first 4 bytes of the cdkeyhash?
January 13, 2009, 11:24 PM
Ribose
[quote author=PunK link=topic=17703.msg181153#msg181153 date=1231889075]
So when building 0x51, you have to use SHA1 to hash the first 4 bytes of the cdkeyhash?
[/quote]No, just take the computed hash for the CD-key.
For example, if you're using MBNCSUtil, you'd take the byte[] from [CdKey (instance)].GetHash([clientToken], [serverToken]) and the first four bytes in that array go straight into the WardenHandler's constructor, which (in my code) passes it through the WardenRandom struct then into the encryptor and decryptor with the WardenRandom data.
January 13, 2009, 11:37 PM
PunK
Alright, I am pretty sure that I am generating the seed correctly now. What I find weird now is that it's not even replying to 0x5E. I pass the data into the handler when I receive 0x5E but I don't see any data being sent back. I don't get an error either. So I am stumped. I don't see any modules being downloaded either.

=x

--edit

So I fixed my problem. It's all good now. Thanks Ringo. Good job!
January 14, 2009, 12:03 AM
Paladin
So...now these are the last things I got in my debug box:

[code]500 Of 17072
1000 Of 17072
2514 Of 17072
[/code]

Why would it stop there?
I know that I'm generating my seed correctly.

What's wrong?
January 14, 2009, 2:08 PM
Ringo
[quote author=Paladin link=topic=17703.msg181161#msg181161 date=1231942107]
So...now these are the last things I got in my debug box:

[code]500 Of 17072
1000 Of 17072
2514 Of 17072
[/code]

Why would it stop there?
I know that I'm generating my seed correctly.

What's wrong?
[/quote]
I'm going to take a wild guess, that you're not buffering split TCP packets correctly, not acounting for a brake in the TCP stream will also screw up/desynq the rc4 keys, since data that should of been decrypted, was lost.
See modBNET.OnBNETData()
January 14, 2009, 5:54 PM
xpeh
Wow n1ce! Probably the first starcraft game bot ever.

It's very simple, but it works :)

1. Can you make PvPGN support? It's a little different. Main difference is checkrevision, it's much easier than for bnet, you only have to take some constants from versioncheck.conf file instead of bnls. I can explain more if you agree.

2. How do you process unicode chat? The chat on server uses "unicode" - yes, it's not real unicode. It's cp1252 -> utf8 translation, and it's only seems like unicode for cp1252 (west european codepage), for any other codepage you'll get crap.
The in-lobby chat uses AFAIK ascii.
January 14, 2009, 7:27 PM
Barabajagal
StrToUTF will convert text you want to send to the server to UTF-8, UTFToStr will convert text from the server.
As for PvPGN, I don't think anyone on this site cares about it. We all tend to be strictly BNet dev if we're dealing with BNCS at all.

[code]Private Declare Function MultiByteToWideChar Lib "kernel32" (ByVal CodePage As Long, ByVal dwFlags As Long, ByVal lpMultiByteStr As Long, ByVal cchMultiByte As Long, ByVal lpWideCharStr As Long, ByVal cchWideChar As Long) As Long
Private Declare Function WideCharToMultiByte Lib "kernel32" (ByVal CodePage As Long, ByVal dwFlags As Long, ByVal lpWideCharStr As Long, ByVal cchWideChar As Long, ByVal lpMultiByteStr As Long, ByVal cchMultiByte As Long, ByVal lpDefaultChar As Long, lpUsedDefaultChar As Long) As Long

Public Function StrToUTF(ByVal sStr As String) As String
  If LenB(sStr) = 0 Then Exit Function
  StrToUTF = TrimNull(StrConv(WToA(sStr), vbUnicode))
  Exit Function
End Function

Public Function UTFToStr(ByVal sUTF As String) As String
Dim sConv As String
  If LenB(sUTF) = 0 Then Exit Function
  sConv = WToA(sUTF, 0)
  UTFToStr = AToW(sConv)
End Function

Private Function AToW(ByVal st As String) As String
Dim stBuffer  As String
Dim cwch      As Long
Dim pwz      As Long
Dim pwzBuffer As Long
  pwz = StrPtr(st)
  cwch = MultiByteToWideChar(65001, 0&, pwz, -1, 0&, 0&)
  stBuffer = String$(cwch + 1, vbNullChar)
  pwzBuffer = StrPtr(stBuffer)
  cwch = MultiByteToWideChar(65001, 0&, pwz, -1, pwzBuffer, Len(stBuffer))
  AToW = Left$(stBuffer, cwch - 1)
End Function

Private Function WToA(ByVal st As String, Optional ByVal cpg As Long = 65001) As String
Dim stBuffer          As String
Dim cwch              As Long
Dim pwz              As Long
Dim pwzBuffer        As Long
  pwz = StrPtr(st)
  cwch = WideCharToMultiByte(cpg, 0&, pwz, -1, 0&, 0&, ByVal 0&, ByVal 0&)
  stBuffer = String$(cwch + 1, vbNullChar)
  pwzBuffer = StrPtr(stBuffer)
  cwch = WideCharToMultiByte(cpg, 0&, pwz, -1, pwzBuffer, Len(stBuffer), ByVal 0&, ByVal 0&)
  WToA = Left$(stBuffer, cwch - 1)
End Function[/code]
January 14, 2009, 8:03 PM
xpeh
As for PvPGN, you only have to take  exeinfostring, versionbyte, verstr, checksum from config instead of bnls server.

Just take a look at this file: http://svn.berlios.de/svnroot/repos/pvpgn/trunk/pvpgn/conf/versioncheck.conf.in

As for your utf code, i didnt see there any point to what codepage do you en-/decode from/to. Probably it is taken from local computer settings, but for starcraft it must always be cp1252. I didnt tested it for asian fonts.
January 14, 2009, 8:26 PM
Barabajagal
65001 (0xFDE9). Notice the cpg in WToA. I don't like using constants if they're only going to be used once or twice and never modified.
January 14, 2009, 8:33 PM
xpeh
I'm not a VB user, sry :) I dont know what 65001 means, but if your functions always use cp1252, you are on the rigth way.
January 14, 2009, 9:06 PM
Barabajagal
65001 is CP_UTF8. You're looking at the system backwards, methinks. 1252 is ANSI, not Unicode.
January 14, 2009, 9:25 PM
Ringo
[quote author=xpeh link=topic=17703.msg181165#msg181165 date=1231961261]
Wow n1ce! Probably the first starcraft game bot ever.

It's very simple, but it works :)

1. Can you make PvPGN support? It's a little different. Main difference is checkrevision, it's much easier than for bnet, you only have to take some constants from versioncheck.conf file instead of bnls. I can explain more if you agree.

2. How do you process unicode chat? The chat on server uses "unicode" - yes, it's not real unicode. It's cp1252 -> utf8 translation, and it's only seems like unicode for cp1252 (west european codepage), for any other codepage you'll get crap.
The in-lobby chat uses AFAIK ascii.
[/quote]
Use a BNLS server that supports all types of checkrevison, not just lockdown.
January 14, 2009, 9:25 PM
xpeh
[quote author=Andy link=topic=17703.msg181176#msg181176 date=1231968308]
65001 is CP_UTF8. You're looking at the system backwards, methinks. 1252 is ANSI, not Unicode.
[/quote]
Yes, i mean you must use cp1252 <-> UTF8 translation. Regardless of the current codepage on the computer. Did you do it?


[quote author=Ringo link=topic=17703.msg181177#msg181177 date=1231968333]
Use a BNLS server that supports all types of checkrevison, not just lockdown.
[/quote]
For example? I'm not familiar with bnet stuff, local hashing always worked fine for me. But .conf file use were better since it dont need to use extra connections.
January 14, 2009, 9:37 PM
Barabajagal
Why would I convert it to something other than the computer's default CP? It's for display, not for sending to the server.
January 14, 2009, 9:40 PM
xpeh
Ask blizzard, dude.

If you convert it to wrong codepage, you'll get ???? instead of letters. You possibly have westeuropean or similar codepage and don't see any difference, am i right?
January 14, 2009, 9:59 PM
Barabajagal
I set my system to German a while back to test some things, and my UTF 8 system in my bot worked just fine.
January 15, 2009, 1:56 AM
xpeh
Lol man. What codepage use german locale?

Set it to east european / russian, then tell me.
January 15, 2009, 3:12 AM
xpeh
bug found

can't enter 'localhost' as address.

And a question:
[code]  UDP    192.168.0.200:6113     *:*[/code]
Why is it bound to external ip, and not to INADDR_ANY (0.0.0.0)?
January 15, 2009, 3:45 AM
Barabajagal
localhost isn't an address, it's a redirect.
UDP isn't bound to an IP, it's bound to a port.
January 15, 2009, 3:52 AM
xpeh
[quote author=Andy link=topic=17703.msg181205#msg181205 date=1231991571]
localhost isn't an address, it's a redirect.
[/quote]
It's a DNS, like any other. You can have a name without a dot in you LAN.

[quote author=Andy link=topic=17703.msg181205#msg181205 date=1231991571]
UDP isn't bound to an IP, it's bound to a port.[/quote]
I think you are completely wrong. It's bound to port and interface.
January 15, 2009, 3:55 AM
xpeh
Andy

write a program that corvertes a text file from ansi cp1252 to unicode and vice versa, and i'll test it. OK?
January 15, 2009, 2:16 PM
Ringo
*Sigh*
January 15, 2009, 6:23 PM
xpeh
Ringo, can u answer my question in scgp protocol topic?
January 15, 2009, 8:36 PM
Barabajagal
Already did. My chat bot.
January 15, 2009, 11:17 PM
MyStiCaL
This is SCGP discussion, why did you kill this topic!!

anyways, warden's pain in the ass, I'm having same problems as paladin now, So i decided to take and use your packet handler, hm, same problem, I don't get as far as printing the functions from zlib nor actually saving the .bin oh well im still trying! =) 
January 16, 2009, 12:22 AM
xpeh
Andy

omg, just why the hell did i installed your bot. Works only with battle.net, places a huge amount of shit into system32. And than disappeared when i closed it but it was still in process list, keepeng executable and dlls locked, preventing uninstall.

Can you just make a program that works with text files, as i wrote above?
January 16, 2009, 1:09 AM
Barabajagal
Wow, you fail hardcore. I know a few hundred D1 noobs that have no problem with it.
January 16, 2009, 2:23 AM
xpeh
I'm not paid as betatester. And i can't check it on bnet since all my friends are on pvpgn servers. So if you want me to check if your code works, make it as i said and i'll prove it...
January 16, 2009, 1:14 PM
Ringo
[quote author=MyStiCaL link=topic=17703.msg181238#msg181238 date=1232065322]
This is SCGP discussion, why did you kill this topic!!
[/quote]
Yeah :/ I think xpeh thinks this topic is a bot support  topic or somthing.

[quote author=MyStiCaL link=topic=17703.msg181238#msg181238 date=1232065322]
anyways, warden's pain in the ass, I'm having same problems as paladin now, So i decided to take and use your packet handler, hm, same problem, I don't get as far as printing the functions from zlib nor actually saving the .bin oh well im still trying! =) 
[/quote]
Urg, I forget what problem paladin was having now, to much spam/ot posts to go through to find it :p

In the WardenOnData() sub, just below lngID = asc(mid(s,5,1)), can you put a:
Debug.Print "WARDEN 0x" & Right("0" & Hex(lngID), 2) & ", Len=" & lngLengh
Then post the prints?
Also post you're DataArrival event for BNCS packets (or the code that buffers/pass's data to ur parser) ?
January 16, 2009, 1:21 PM
xpeh
[quote author=Ringo link=topic=17703.msg181252#msg181252 date=1232112104]
[quote author=MyStiCaL link=topic=17703.msg181238#msg181238 date=1232065322]
This is SCGP discussion, why did you kill this topic!!
[/quote]
Yeah :/ I think xpeh thinks this topic is a bot support  topic or somthing.

[/quote]
Isn't it? At least it's called  SCGP Client
January 16, 2009, 1:35 PM
Ringo
New memory blobs for 1.16.1:
[code]
            If (A = &H41E22E) And (L = 16) Then R = HexToStr("CC CC A0 50 EF 6C 00 84 C0 74 38 A0 51 EF 6C 00")
            If (A = &H4A3247) And (L = 8) Then R = HexToStr("5B C3 CC CC CC CC CC CC")
            If (A = &H4BD4FF) And (L = 8) Then R = HexToStr("CC 57 8B F9 0F BF 47 10")
            If (A = &H4512D8) And (L = 5) Then R = HexToStr("8B DE A1 88 68")
            If (A = &H450230) And (L = 6) Then R = HexToStr("93 00 00 00 8B 03")
            If (A = &H46F8C8) And (L = 9) Then R = HexToStr("E8 63 F6 01 00 5E 5B 5F 8B")
            If (A = &H41E227) And (L = 4) Then R = HexToStr("CC CC CC CC")
            If (A = &H46F8CA) And (L = 9) Then R = HexToStr("F6 01 00 5E 5B 5F 8B E5 5D")
            If (A = &H41E24B) And (L = 10) Then R = HexToStr("00 0C 01 56 0F BF 35 56 EF 6C")
            If (A = &H41E23F) And (L = 9) Then R = HexToStr("BF 0D 54 EF 6C 00 0F BF 15")
[/code]
Warden's still checking the same address's, altho the memory in those address is now differnt.
Silly blizzard forgot to disable warden when they patched, or just forgot to change the offsets.
Sending the old memory blobs probly won't get you banned, but who knows, maybe they didn't update the address, just to catch the bots. (unlikely)

The source code for SCGP bot has been updated.
January 21, 2009, 7:07 PM
MyStiCaL
is that all that needs to be changed?
January 21, 2009, 7:12 PM
Ringo
yeah, those are the memory blobs starcraft 1.16.1 is now spitting out.
Better to be safe than sry, and change them.
January 21, 2009, 7:13 PM
Barabajagal
I know I said I wouldn't, but Warden.DLL v1.0.2. I'm not going to help anyone with implementing this version. I think that was the main mistake last time.
January 21, 2009, 7:31 PM
MyStiCaL
[quote author=Andy link=topic=17703.msg181360#msg181360 date=1232566312]
I know I said I wouldn't, but Warden.DLL v1.0.2. I'm not going to help anyone with implementing this version. I think that was the main mistake last time.
[/quote]

ohhh nooo =(

bad andy!
January 21, 2009, 7:48 PM
Barabajagal
Don't worry, it's got a dependency and some strange implementation requirements. In fact, I don't even think it'll work unless you call it from an object module.
January 21, 2009, 7:53 PM
BreW
How about multiple instances?
January 21, 2009, 8:08 PM
Ringo
From ripple chat bot, to warden.dll *sigh*
w/e next!
January 21, 2009, 8:58 PM
PunK
andy..
January 21, 2009, 10:19 PM
xpeh
Andy, you fucking bot suck awesome! Even after deinstallation it makes problems - Stealth does not work properly. I really regret that moment as i decided to install this VB-gay-shit.
January 21, 2009, 11:56 PM
Ringo
[quote author=Ringo link=topic=17703.msg181364#msg181364 date=1232571505]
w/e next!
[/quote]
Anti andy bot and vb hater troll, I didn't see that one coming.
This forum has gone to shit ::) even the few remaining modorators have given up trying, which is understandable.
January 22, 2009, 12:39 AM
xpeh
Ringo, i am not VB hater, i am only VB-gay hater. What should i think after another-crapy-bot hurt my system? So i needed to reinstall Stealth that previously worked. Such things that you write, i think that you never used bots except yours and a couple of stable other's.

And someone offtoped my topic, so we are quits :)
January 22, 2009, 1:39 AM
Barabajagal
@Brew: Not unless the object module that instances it is made into an array.
@PunK: What?
@xeph: Whatever.

I updated it a bit (1.0.21), adding the option to set an EXEPath to Starcraft.exe to get the data for 0x02 manually. Blizzard probably won't repeat what they did today, but if they do, this DLL won't be affected by it if you use that feature.

@Ringo: It's just your code in a wrapper. I didn't spend much time at all on it. BTW, here's the addition to Get0x02Data:

[code]
   If LenB(m_EXEPath) > 0 Then
     nFile = FreeFile
     Open m_EXEPath For Binary Access Read As #nFile
     R = String$(L, 0)
     Get #nFile, A - &H3FFFFF, R
     Close #nFile
   Else
     Select Case A
       Case &H41E22E: R = HexToStr("CC CC A0 50 EF 6C 00 84 C0 74 38 A0 51 EF 6C 00")
       Case &H4A3247: R = HexToStr("5B C3 CC CC CC CC CC CC")
       Case &H4BD4FF: R = HexToStr("CC 57 8B F9 0F BF 47 10")
       Case &H4512D8: R = HexToStr("8B DE A1 88 68")
       Case &H450230: R = HexToStr("93 00 00 00 8B 03")
       Case &H46F8C8: R = HexToStr("E8 63 F6 01 00 5E 5B 5F 8B")
       Case &H41E227: R = HexToStr("CC CC CC CC")
       Case &H46F8CA: R = HexToStr("F6 01 00 5E 5B 5F 8B E5 5D")
       Case &H41E24B: R = HexToStr("00 0C 01 56 0F BF 35 56 EF 6C")
       Case &H41E23F: R = HexToStr("BF 0D 54 EF 6C 00 0F BF 15")
       Case Else:     R = vbNullString
     End Select
   End If[/code]
January 22, 2009, 2:03 AM
BreW
[quote author=Andy link=topic=17703.msg181374#msg181374 date=1232589798]
@Brew: Not unless the object module that instances it is made into an array.
[/quote]
Might want to fix that. Really.
January 22, 2009, 4:07 AM
Barabajagal
Why?
January 22, 2009, 4:16 AM
BreW
Because it opens macilous possibilities for potential users of your dll?
January 22, 2009, 8:07 PM
Barabajagal
Except for that whole lack of documentation, and since last time I gave full docs and they still couldn't figure it out, I don't think it's gonna be a problem. Beside that, it can't be made into an array. Is there any class module in vb6 that can prevent multiple instances of itself if each instance resides within individual object modules? How would you even execute that?
January 22, 2009, 9:59 PM
Myndfyr
[quote author=Andy link=topic=17703.msg181384#msg181384 date=1232661581]
Except for that whole lack of documentation, and since last time I gave full docs and they still couldn't figure it out, I don't think it's gonna be a problem. Beside that, it can't be made into an array. Is there any class module in vb6 that can prevent multiple instances of itself if each instance resides within individual object modules? How would you even execute that?
[/quote]
You could use a system-wide mutex to prevent an object from being instantiated more than once.
January 22, 2009, 11:11 PM
Barabajagal
Hm... As nifty an idea as this sounds, there are legitimate reasons for having multiple instances of the Warden module open in separate processes, or even in the same process of a tabbed interface bot.

Doing a bit of digging around, the CreateMutexA API doesn't look like it would allow for that. Similarly, a registry key that stores the count of running connections (if I were to set a limit at say, 8 instances) would lose reckoning should the process terminate without terminating the class. That method would probably be easily exploitable, anyway. (Perhaps a reset on system restart could be contrived somehow?)

On top of all that, I don't believe in locking down a piece of code like this. This type of 'security' just bugs the crap out of me. We've released libraries to handle almost every aspect of Battle.net connection, from BNCSutil to CleanSlateBot, and to guard Warden so vigorously while giving out Lockdown just seems... illogical. Things are going to change no matter what we do.
January 23, 2009, 2:35 AM
Myndfyr
[quote author=Andy link=topic=17703.msg181387#msg181387 date=1232678150]
Doing a bit of digging around, the CreateMutexA API doesn't look like it would allow for that. Similarly, a registry key that stores the count of running connections (if I were to set a limit at say, 8 instances) would lose reckoning should the process terminate without terminating the class. That method would probably be easily exploitable, anyway. (Perhaps a reset on system restart could be contrived somehow?)
[/quote]

http://msdn.microsoft.com/en-us/library/ms682411(VS.85).aspx

[quote]If you are using a named mutex to limit your application to a single instance, a malicious user can create this mutex before you do and prevent your application from starting. To prevent this situation, create a randomly named mutex and store the name so that it can only be obtained by an authorized user. Alternatively, you can use a file for this purpose. To limit your application to one instance per user, create a locked file in the user's profile directory.[/quote]
January 23, 2009, 6:53 AM
PunK
Looks like nes brought back warring to his bot with andy's DLL.

Greaaaaaaaaaaaaaaaat
January 25, 2009, 11:38 PM
Barabajagal
For serious? Already?
January 26, 2009, 1:09 AM
Sixen
[quote author=PunK link=topic=17703.msg181412#msg181412 date=1232926711]
Looks like nes brought back warring to his bot with andy's DLL.

Greaaaaaaaaaaaaaaaat
[/quote]

I don't honestly think Nes is that smart.
January 26, 2009, 1:38 AM
BreW
YES!!!!!! THANK YOU ANDY!!!!!! I just needed to see nesucks run around battle.net spamming people nonstop....!
January 26, 2009, 2:43 AM
PunK
Apparently so. Unless his messages that say "Now warden supported" are just there to be deceiving :-P
January 26, 2009, 4:16 AM
Ribose
Genocide doesn't need Warden support for the flooding it does (it doesn't stay in the channel for longer than about 5 seconds, unless banned, then it's shorter). Why wouild he need it? Seems like something more to brag about like a retard. :/
January 26, 2009, 4:18 AM
Barabajagal
Well, I guess I might as well release full documentation now, right?
January 26, 2009, 4:19 AM
MyStiCaL
[quote author=Andy link=topic=17703.msg181420#msg181420 date=1232943567]
Well, I guess I might as well release full documentation now, right?
[/quote]

how about no.
January 26, 2009, 8:20 AM
Barabajagal
It was a joke... I'm afraid I find this terribly funny.
January 26, 2009, 12:41 PM
MyStiCaL
edit: nothing nvm
January 26, 2009, 10:40 PM
PunK
I'm not 100% positive but it looks like warden was updated again.

-edit

Looks like warden has changed completely. Thanks loaders, you sent us all to doom. Looks like there wont be any new warden fix for awhile...
January 27, 2009, 5:21 AM
Ringo
Since this kind of went off topic a few pages back, I might as well post this here for a laugh.
[quote]
[07:00:22 AM] <mystical[@Northrend> hi guys
[07:00:29 AM] <mystical[@Northrend> is ringo here
[07:01:21 AM] <mystical[@Northrend> anyways, the offsets for 0x02 changed!  Help me pls
[07:08:58 AM] <Ringo> hi nes
[07:09:05 AM] <mystical[@Northrend> hi
[07:09:12 AM] <mystical[@Northrend> im not nes
[07:10:24 AM] <Ringo> im not ringo
[07:10:30 AM] <mystical[@Northrend> hahaha
[07:10:48 AM] <mystical[@Northrend> pls ringo
[07:10:56 AM] <mystical[@Northrend> nobody knows how to get offsets except you...
[07:11:12 AM] <Ringo> if you're who you say you are
[07:11:19 AM] <Ringo> then you already have them, cos I pm'ed them to you
[07:11:24 AM] <Ringo> fail more, nes
[07:11:24 AM] <Ringo> !
[07:11:30 AM] <mystical[@Northrend> fine im nes lol
[07:11:38 AM] <Ringo> duh
[07:11:38 AM] <mystical[@Northrend> how the fuck u get the offsets -.-
[07:11:47 AM] <mystical[@Northrend> brute them?
[07:11:56 AM] <Ringo> you have to wait till dec 25th, and hope santa sends them to you
[07:12:13 AM] <mystical[@Northrend> ...
[07:12:18 AM] <mystical[@Northrend> can u give me sc keys
[07:12:20 AM] <mystical[@Northrend> :)
[07:12:22 AM] <Ringo> I got them from santa last xmas
[07:12:37 AM] <Ringo> you're boring me now
[07:12:42 AM] <Ringo> ,ban mystical[@Northrend be gone
[07:12:42 AM] mystical[ was banned by BOT (be gone).
[07:12:58 AM] <From:mystical[@Northrend> you won't stop me from warring noob
[07:13:11 AM] <to:mystical[@Northrend> duh
[07:13:22 AM] <From:mystical[@Northrend> im going to load you
[07:13:25 AM] <From:mystical[@Northrend> u mother fucker
[07:13:33 AM] <to:mystical[@Northrend> and i'm not going to care
[07:13:38 AM] <to:mystical[@Northrend> good we have an understanding
[07:14:02 AM] <From:mystical[@Northrend> y did u turn gay
[07:14:06 AM] <From:mystical[@Northrend> wheres ur fucking massload noob
[07:14:21 AM] <to:mystical[@Northrend> loading was so 1998 - 2000
[07:14:25 AM] <to:mystical[@Northrend> get with the times
[07:15:19 AM] <From:mystical[@Northrend> u think warden is going to stop me from owning u :)?
[07:15:39 AM] <to:mystical[@Northrend> no, but my flood filters will
[07:15:49 AM] <to:mystical[@Northrend> you couldnt own a gold fish, if you won one at the fair.
[07:16:24 AM] <From:mystical[@Northrend> verifying proxies right now to own u
[07:16:43 AM] <to:mystical[@Northrend> have you also verifyed I don't care? lol
[07:17:04 AM] <From:mystical[@Northrend> i am going to own you
[07:17:15 AM] <to:mystical[@Northrend> spamming a channel where everyones afk, and has leet flood filters, is not owning
[07:17:23 AM] <to:mystical[@Northrend> you're under some kind of retarded illusion
[07:17:58 AM] <From:mystical[@Northrend> so how much money do u want
[07:18:02 AM] <From:mystical[@Northrend> for my warden offsets
[07:18:20 AM] <to:mystical[@Northrend> -5000 bucks
[07:18:28 AM] <From:mystical[@Northrend> wtf
[07:18:38 AM] <From:mystical[@Northrend> 100 bucks
[07:19:51 AM] <From:mystical[@Northrend> ur now being loaded
[07:20:14 AM] <to:mystical[@Northrend> actualy im watching you fail
...some d2/w3 bots get auto banned here...
[07:29:10 AM] <to:mystical[@Northrend> that was the best fail ive ever seen
[/quote]
Nesucks' failed attempt of pretending to be mystical and verifying he has no idea what hes doing, lol.

Aside, as most of you have already guess'ed, next big module update, I won't be posting public source code for people who don't understand the word educational useage, to just compile into a dll for the abusers of battle.net.
I might post infomation about it, for those who have exp on the subject.
Others might post their findings tho, but I persionaly won't be.

I also advise not talking about how to get the memory blobs for the new offsets, as easy as it is, since its clear nesucks and other load bot kiddies read these forums.
As quoted above, he doesn't know how, lolz. :)
January 27, 2009, 7:46 AM
zeroirc
[quote]
[07:11:56 AM] <Ringo> you have to wait till dec 25th, and hope santa sends them to you
[07:12:13 AM] <mystical[@Northrend> ...
[07:12:18 AM] <mystical[@Northrend> can u give me sc keys
[07:12:20 AM] <mystical[@Northrend> Smiley
[07:12:22 AM] <Ringo> I got them from santa last xmas
[07:12:37 AM] <Ringo> you're boring me now
[07:12:42 AM] <Ringo> ,ban mystical[@Northrend be gone
[/quote]
lmao  :)
January 27, 2009, 10:28 AM
PunK
What a noob.
January 27, 2009, 5:22 PM
LW-Falcon
Wow... what a sad guy.
January 27, 2009, 6:30 PM
HdxBmx27
[quote author=PunK link=topic=17703.msg181442#msg181442 date=1233033667]
I'm not 100% positive but it looks like warden was updated again.

-edit

Looks like warden has changed completely. Thanks loaders, you sent us all to doom. Looks like there wont be any new warden fix for awhile...
[/quote]Did it actually change? Anyone gunna take a look at this?
I'm not interested in a dev sense just in a personal want-to-know sense.
January 27, 2009, 10:24 PM
BreW
No, it didn't change. I'm not sure what punk means by that. It's working just dandy for me...
January 27, 2009, 11:03 PM
PunK
It was a joke.
January 27, 2009, 11:33 PM
MyStiCaL
out of all people why would he pretend to be me lol..

btw i have bot@useast =)


and, since mystical & mystic got banned, i only go by Patrick@useast & @uswest.
January 28, 2009, 6:54 AM
Sixen
And this all ties back down to:

[quote author=Sixen link=topic=17703.msg181415#msg181415 date=1232933881]
[quote author=PunK link=topic=17703.msg181412#msg181412 date=1232926711]
Looks like nes brought back warring to his bot with andy's DLL.

Greaaaaaaaaaaaaaaaat
[/quote]

I don't honestly think Nes is that smart.
[/quote]
January 28, 2009, 7:27 AM
Myndfyr
I can honestly say that I don't know at which point I should start splitting off posts.  Any insight from the person who started the thread?
January 28, 2009, 7:34 AM
Barabajagal
I'm surprised Nes knew to include SSubTmr6 to even make my DLL work. Maybe he already had it...
January 28, 2009, 7:40 AM
Ringo
urg, I guess it doesn't matter so much -- I don't really fancy reading through 7 pages :P

On a minor side note, I was just adding warden support to a test bnet chat server i've been writeing for the past few hours.
I logged on bnet to get the packet ID's of the checks, but forgot to xor them with the end byte, so 1min later, reconnected -- but the module had changed in that 1 min.
Looks like blizzard finaly enabled another one of the many types of checks the modules can do.
I haven't looked into it yet, to see if I fucked up somwhere, theres totaly new modules, or anything like that, so this might all be kinda jumping the gun abit.
none the less, fun fun fun.

/e
At a 1st glance, they look like totaly new modules. awsome!
[code]
[07:53:21] Request: 37
00 DE 1D 77 7F 2E 72 17 5C 0D 1A 4E 66 D6 86 B7       ...w..r.\..Nf...
AD 44 95 F0 4F DF 48 21 45 5E 6D 3E 77 62 FF F5       .D..O.H!E^m>wb..
94 B3 12 00 00                                        .....

[07:53:21] Responce: 1
01                                                    .


[07:53:26] Request: 18
02 10 37 A7 55 AB 47 96 27 06 94 75 0C D0 43 72       ..7.U.G.'..u..Cr
77 9A                                                 w.

[07:53:26] Responce: 37
02 93 5B 5D 44 58 AB C9 24 9C 21 01 C5 A0 60 9F       ..[]DX..$.!...`.
C3 08 59 36 A7 8F 3E 9B 7E 6D AC 8B 6B A5 A0 97       ..Y6..>.~m..k...
E2 D7 FA 57 D2                                        ...W.


[07:53:41] Request: 18
02 10 79 B3 7B D5 B1 5D 32 3A 14 2D 4A BB 7B 7A       ..y.{..]2:.-J.{z
01 88                                                 ..

[07:53:41] Responce: 37
02 A5 C0 D3 BA DF D2 80 15 43 33 13 5E 23 49 F7       .........C3.^#I.
77 B4 96 77 17 46 1E 18 1E E3 D7 A5 C7 9F 7D 31       w..w.F........}1
B7 C6 22 36 99                                        .."6.


[07:53:57] Request: 18
02 10 13 DC FD 01 94 6C E3 F6 2A 4A EC EF 34 47       .......l..*J..4G
9C D5                                                 ..

[07:53:57] Responce: 37
02 27 22 E4 04 2C 84 3D 29 AC 92 64 59 79 AE 55       .'"..,.=)..dYy.U
55 2F DA DF 4F A6 B4 CE 51 09 F2 E2 85 4C BE A3       U/..O...Q....L..
05 91 5B AE 82                                        ..[..
[/code]

Looks like they might have abit of 0x04/0x05 and 0x02 all bound into one another!

/e#2
n/m, lmao at what blizzard are doing here -- they should fix this pretty soon.
I don't want to go into detail what they are doing, but its so retarded, they can't possibly keep on useing this module.
January 28, 2009, 7:48 AM
Barabajagal
Is the new module really only 6-7 KB, or am I doing something wrong?
January 28, 2009, 8:48 AM
Barabajagal
Hmm... I'm running into an occasional problem. Either I'm doing something wrong in my code, or warden's requesting memory in an impossible location:

Server Request:
[code]0200A7914ECEAE7BF0DD554D5177C97002B4D26D3BCE4BE728543A2050000010AB002AF4460009A76A6B5DB61441DC983FD45F681518B9072CD3BFAD37B723FF9CFE010025A7EF635B77D636B0C93C110034E90896D3AB3D4AAB87142C2620EE010025A7006C1A5B2310E82228B5F8AFA62C4A8DEA4CD41EF41C75DB5A22000020A7579B66E052FF5FD922A606A8F102B56ED7BD4C9DB59FDD1CB47C00001728[/code]

That gives me a request for memory locations 46F42A and 235B1A6C. What am I supposed to do?
January 29, 2009, 11:47 PM
BreW
your post is breaking the tables, dickwad.
January 30, 2009, 12:19 AM
Barabajagal
Not my fault you're using a poorly written theme.
January 30, 2009, 12:26 AM
NeSuckS2
I'll continue to load on war3s and d2s so this warden isn't effecting me, it's effecting the newbs who need to load bots!  I've supplied keys & proxies with genocide.  Someone needs to crack this shit and show blizz that they can't stop us.  >:(

I might make genocide 1.7 source public & release sourcecode to support more than 1 bot on warden (genocide 1.7 loaded multiple sc bots supporting warden until offsets changed)
;D


Anyone interested in helping me with genocide?


January 30, 2009, 12:28 AM
chyea
[quote author=NeSuckS2 link=topic=17703.msg181477#msg181477 date=1233275293]
I'll continue to load on war3s and d2s so this warden isn't effecting me, it's effecting the newbs who need to load bots!  I've supplied keys & proxies with genocide.  Someone needs to crack this shit and show blizz that they can't stop us.  >:(

I might make genocide 1.7 source public & release sourcecode to support more than 1 bot on warden (genocide 1.7 loaded multiple sc bots supporting warden until offsets changed)
;D


Anyone interested in helping me with genocide?
[/quote]

If you're the first to go.
January 30, 2009, 12:43 AM
NeSuckS2
[quote author=chyea link=topic=17703.msg181478#msg181478 date=1233276195]
If you're the first to go.
[/quote]

???

What does that mean  ???
January 30, 2009, 12:46 AM
BreW
[quote author=NeSuckS2 link=topic=17703.msg181477#msg181477 date=1233275293]
I'll continue to load on war3s and d2s so this warden isn't effecting me, it's effecting the newbs who need to load bots!  I've supplied keys & proxies with genocide.  Someone needs to crack this shit and show blizz that they can't stop us.  >:(
[/quote]
Uh, wouldn't that make you a newb who needs to load bots?
Also, affecting*.
January 30, 2009, 12:51 AM
NeSuckS2
[quote author=brew link=topic=17703.msg181480#msg181480 date=1233276671]
Uh, wouldn't that make you a newb who needs to load bots?
Also, affecting*.
[/quote]

no because i load war3s & d2s
January 30, 2009, 12:57 AM
BreW
Yes, but you're still a newb who needs to load bots, regardless of what client they're using.
There's a certain word for this. I think they call it "desperate".
January 30, 2009, 12:59 AM
Barabajagal
There's nothing to crack. The other module was actually the default (maiev), that somehow found its way in. This module's the same as the last one, but with different requests. All you have to do is return the data they ask for, which can be found by subtracting 0x400000 from the request value and reading that memory location in Starcraft.exe, which is what my DLL does if you give it the path.

Honestly, though, I don't care anymore, because my power supply is fried, and probably some of the other hardware, since my dad forgot to ground the generator when he turned it on. This is goodbye for a while, I guess. Have fun dealing with these idiots, vL.
January 30, 2009, 2:57 AM
Ringo
Andy, the biggest idiot on this forum, I can think of, is you, by far.
When I told you that the module was infact maiev and how the responce is generated, you almost right away started adding it to you're dll for the abusers to use.
not to mention;
[quote]
I also advise not talking about how to get the memory blobs for the new offsets, as easy as it is, since its clear nesucks and other load bot kiddies read these forums.
As quoted above, he doesn't know how, lolz. :)
[/quote]
You really are a kiddie with a gun, arnt you.

As long as you're a member of this forum, i'm going to be very carefull about posting info that can be abused.
January 30, 2009, 3:15 AM
NeSuckS2
hey andy thx for not being an asshole

need any war3 / d2 / sc / war2 working keys ?  :-*

BTW I have saved andy's msg so even if you delete it I still have it. 

Andy can u give me ur updated dll  ;D
January 30, 2009, 4:35 AM
Barabajagal
I didn't update my DLL, Ringo. And remember, I added a lock to it that crashes your app if you don't do something right ;)

You really think he's going to be able to do anything with that information? Also, where'd that quote come from? I don't remember reading it.
January 30, 2009, 7:47 AM
HdxBmx27
[quote author=Andy link=topic=17703.msg181489#msg181489 date=1233301635]
I didn't update my DLL, Ringo. And remember, I added a lock to it that crashes your app if you don't do something right ;)

You really think he's going to be able to do anything with that information? Also, where'd that quote come from? I don't remember reading it.
[/quote]https://davnit.net/bnet/vL/index.php?topic=17703.msg181444#msg181444
Anyways, Andy, I honestly think you shouldn't release DLLs anymore. I dont see a problem with someone releasing documentation and leaving it at that, maybe some pseudo code. But that's about it.

Anyways, Anyone mind writing me a shell DLL project for VC++ 9 for some fucking reasons mine isnt working. VB/other languages keep telling me they can't find the DLL when its sitting in the same folder. Possibly a bug with win 7? Iono its bugging me!
January 30, 2009, 10:37 AM
Barabajagal
Added in an edit... That's why I didn't see it.

Fine... But I'm still using DLLs in my bot (whenever I get another version done). It makes it so much easier to update a single component rather than the entire thing.
January 30, 2009, 11:39 AM
MysT_DooM
goobers
January 30, 2009, 12:51 PM
Ringo
[quote author=Andy link=topic=17703.msg181491#msg181491 date=1233315577]
Added in an edit... That's why I didn't see it.
[/quote]
That edit a few mins after posting, was infact to correct some pretty bad spelling errors. But nice try ;)

[quote author=Andy link=topic=17703.msg181491#msg181491 date=1233315577]
Fine... But I'm still using DLLs in my bot (whenever I get another version done). It makes it so much easier to update a single component rather than the entire thing.
[/quote]
I don't think you get it, do you?
Doing that, is no issue. How ever, doing that then releaseing the DLL for the mass', just contributes to abuse on battle.net.
Let me educate you.
On battle.net, theres still people who acutaly play battle.net games.. It's crazzy, eh?
Infact theres 100's of 1000's online and playing at any given time.
When alot of these people are not ingame on battle.net, they are in a thing called a battle.net chat channel. Neat, eh?
Anyway, alot of them like to make online friends, ask other people for games, and make clans etc etc.
The last thing any of them want, is some kid who doesn't get bored of flooding/spamming their channels, because they are to dumb or find somthing else better to do with their time.
I couldnt' care less about the spam, since it doesn't effect me. None the less, I respect 100's of 1000's of players who acutaly legity use battle.net still, and have no repesct for the hand full of kids who think its cool and fun to screw it up for other players.  ::)
January 31, 2009, 5:31 AM
Barabajagal
I dunno then... Maybe I just skipped over that part of the post.

And in case you hadn't noticed, I don't really respect anyone or anything, nor do I expect any respect in return. I don't see the point in it. Information should be free, regardless of the repercussions. I don't care if you agree or disagree with that. When I started writing battle.net bots (and even now), I didn't want anything to do with the reversing process, nor even handling packets. My interest has always been in the application itself, and how well it does at whatever its purpose is. If that happens to be massloading or flooding, so be it.
January 31, 2009, 5:57 AM
xpeh
Partially agree with Andy.

If some1 wanna to do something that you don't like, but is possible, he will made it, w/o asking your opinion.

As for me, working with protocol is interesting. Reversing sux.
January 31, 2009, 6:11 AM
MyStiCaL
[quote author=xpeh link=topic=17703.msg181507#msg181507 date=1233382299]
Partially agree with Andy.

If some1 wanna to do something that you don't like, but is possible, he will made it, w/o asking your opinion.

As for me, working with protocol is interesting. Reversing sux.
[/quote]

i don't think that applies to taking someone elses working code modifing it and releasing it into a public distributed dl for all to use, specially even if he did release the source public, he put work and time into it to make it much harder for anyone to jack

January 31, 2009, 6:15 AM
xpeh
Does it violate any license?
January 31, 2009, 6:17 AM
Ringo
[quote author=Andy link=topic=17703.msg181506#msg181506 date=1233381437]
I dunno then... Maybe I just skipped over that part of the post.
[/quote]
none the less, it kind of went with out saying, unless, you lack any form of common sence.

[quote author=Andy link=topic=17703.msg181506#msg181506 date=1233381437]
And in case you hadn't noticed, I don't really respect anyone or anything, nor do I expect any respect in return. I don't see the point in it. Information should be free, regardless of the repercussions. I don't care if you agree or disagree with that.[/quote]
Right, so you don't respect anyone or anything, but you respect peoples right to free infomation.
Just listen to you're self for 5min.
Incase you haven't noticed, This topic is all about free infomation, on both SCGP, and warden.
The infomation is free for people to use and learn from.
Just becasue you lack any self respect, doesn't mean you should ignore peoples right to use battle.net with out having to put up with abuseing little kids like nes.
Common man, find that thing you call a brain, and use it.
No wunder the world sucks, with morons like you and with logic like that.

[quote author=xpeh link=topic=17703.msg181509#msg181509 date=1233382638]
Does it violate any license?
[/quote]
Yes. Common sence.
January 31, 2009, 6:20 AM
xpeh
[quote author=Ringo link=topic=17703.msg181510#msg181510 date=1233382804]
[quote author=xpeh link=topic=17703.msg181509#msg181509 date=1233382638]
Does it violate any license?
[/quote]
Yes. Common sence.
[/quote]
Wow, didn't know. What type of license is it?

Why are you so sure, that noone else can write it on his own?

Btw what are you talking about?
January 31, 2009, 6:23 AM
Ringo
[quote author=xpeh link=topic=17703.msg181511#msg181511 date=1233382989]
[quote author=Ringo link=topic=17703.msg181510#msg181510 date=1233382804]
[quote author=xpeh link=topic=17703.msg181509#msg181509 date=1233382638]
Does it violate any license?
[/quote]
Yes. Common sence.
[/quote]
Wow, didn't know. What type of license is it?

Why are you so sure, that noone else can write it on his own?

Btw what are you talking about?
[/quote]
???
January 31, 2009, 6:35 AM
MyStiCaL
[quote author=xpeh link=topic=17703.msg181511#msg181511 date=1233382989]
[quote author=Ringo link=topic=17703.msg181510#msg181510 date=1233382804]
[quote author=xpeh link=topic=17703.msg181509#msg181509 date=1233382638]
Does it violate any license?
[/quote]
Yes. Common sence.
[/quote]
Wow, didn't know. What type of license is it?

Why are you so sure, that noone else can write it on his own?

Btw what are you talking about?
[/quote]

I don't think you should be talking if you didn't read the forums.

and i believe this should be in all in respect.
January 31, 2009, 6:56 AM
xpeh
Sry, but i didn't read all 10 pages, most of them flood, in all respect :)
January 31, 2009, 7:09 AM
HdxBmx27
[quote author=xpeh link=topic=17703.msg181516#msg181516 date=1233385755]
Sry, but i didn't read all 10 pages, most of them flood, in all respect :)
[/quote]The cause of alot of that is Andy releasing his warden dll then NES begging for help on how to use it in his flood bot. Then thinking hes 1337 and badass because he is flooding again.

Basically, Andy, Don't release DLLs. That should be the end of it.
Ringo, Keep up the good work, Posting docs and maybe psudocode.

Aside form that everyone else shut it and someone perma ban nes?
its more then easy to completely block ips and proxys from the forum.
January 31, 2009, 8:16 AM
Barabajagal
And here I was thinking the world sucks because the people who do use their brains take all the resources they can from those who don't, or are under some misguided pretense that they can improve the human race by removing it from nature. Thinking does much worse than not thinking ever will.

@xeph: My first DLL was my own code; this recent version is basically a rip and a wrapper, since it's impossible to emulate warden without using assembly, and when I tried to do it in PB, it refused to work.
January 31, 2009, 8:39 AM
xpeh
Andy, please write my nick properly.
January 31, 2009, 10:51 AM
xpeh
[quote author=Ringo link=topic=17703.msg181503#msg181503 date=1233379889]
Doing that, is no issue. How ever, doing that then releaseing the DLL for the mass', just contributes to abuse on battle.net.
[/quote]
Is it the thing you don't agree, releasing fot the mass'?
January 31, 2009, 10:56 AM
Explicit[nK]
[quote author=Andy link=topic=17703.msg181519#msg181519 date=1233391170]
And here I was thinking the world sucks because the people who do use their brains take all the resources they can from those who don't, or are under some misguided pretense that they can improve the human race by removing it from nature. Thinking does much worse than not thinking ever will.
[/quote]

You may not realize it, but you inadvertently put yourself into a false dilemma if you really believe that.
January 31, 2009, 8:08 PM
NeSuckS2
EVERYONE of you fucks don't want warden code released because you're concerned that it will let spammers spam again??

Make warden info public or I will.  My warden code supports up to 30,000 connections.  :D
I will continue to provide cdkeys + proxies with my genocide spambot.  As long as u motherfuckers keep on doing this shit. 

What's this??

[quote author=MyndFyre[vL] link=topic=17703.msg181385#msg181385 date=1232665901]
You could use a system-wide mutex to prevent an object from being instantiated more than once.
[/quote]

Whoa, you're spending more time making sure nobody can "abuse" warden than the fucking warden itself!  Get a fucking life you retarded assnugget.  I know why, your one scared little fuck who can't stand spambots.
Let me tell you all something, Ringo ran thousands of sc winbots and now he runs many d2 bots.  But you would definitely share info with him!  You decide that ruining d2 game is better than ruining d2 chat??  I bet most of you only go on bnet to chat like I do.  100k users on bnet, only 2% in channels.  1% of those are idle bots.

Make warden public you selfish fucks!  I'm offering cdkeys for additional info on 0x03/0x04 modules.
January 31, 2009, 9:34 PM
Sixen
[quote author=NeSuckS2 link=topic=17703.msg181531#msg181531 date=1233437679]
100k users on bnet, only 2% in channels.  1% of those are idle bots.
[/quote]

98.4837% of people make up statistics right on the spot.
January 31, 2009, 9:51 PM
HdxBmx27
[quote author=NeSuckS2 link=topic=17703.msg181531#msg181531 date=1233437679]Make warden info public or I will.[/quote]Its already public you shittard. [quote author=NeSuckS2 link=topic=17703.msg181531#msg181531 date=1233437679]My warden code supports up to 30,000 connections.   :D[/quote] Mine supports 2^(2^size of HD in free bytes)[quote author=NeSuckS2 link=topic=17703.msg181531#msg181531 date=1233437679]I will continue to provide cdkeys + proxies with my genocide spambot.  As long as u motherfuckers keep on doing this shit. [/quote]Nobody gives a shit. I ive already made an addon for all products that filter spammers like you out. It affect me none.[quote author=NeSuckS2 link=topic=17703.msg181531#msg181531 date=1233437679]What's this??
[quote author=MyndFyre[vL] link=topic=17703.msg181385#msg181385 date=1232665901]You could use a system-wide mutex to prevent an object from being instantiated more than once.[/quote]Whoa, you're spending more time making sure nobody can "abuse" warden than the fucking warden itself![/quote]Not really, if you understood anything about warden you'd understand that that simple mutex is nothing in relation to the protection systems warden has on itself.[quote author=NeSuckS2 link=topic=17703.msg181531#msg181531 date=1233437679]Get a fucking life you retarded assnugget.[/quote]Take a bit of your own advice please.[quote author=NeSuckS2 link=topic=17703.msg181531#msg181531 date=1233437679]I know why, your one scared little fuck who can't stand spambots.
Let me tell you all something, Ringo ran thousands of sc winbots and now he runs many d2 bots.  But you would definitely share info with him![/quote] I admit running winbots is a douche of a thing to do but it has vary little impact on anyone elses gaming/chatting experience. Spamming on the other hand is done soly to be a fucking jackass to others.[quote author=NeSuckS2 link=topic=17703.msg181531#msg181531 date=1233437679]100k users on bnet, only 2% in channels.  1% of those are idle bots.[/quote] I think your numbers are off.[quote author=NeSuckS2 link=topic=17703.msg181531#msg181531 date=1233437679]Make warden public you selfish fucks!  I'm offering cdkeys for additional info on 0x03/0x04 modules.[/quote]Nobody give a flying fuck about cdkeys except for retards like you who need thousands for spamming. I have 2 sets of each product that I use for gaming/chatting. I've had the SAME keys for YEARS. Not a single thing wrong with them. Also, didn't you threaten above to make info about warden public? and down here you're begging for info on parts of it? See, inconsistencies, this is why people hate you.
January 31, 2009, 9:52 PM
BreW
Nesucks: What's an 0x03/0x04 module....? And if warden were still private, you as a plebe certainly wouldn't have a working dll for it. Assnugget.
January 31, 2009, 9:55 PM
MyStiCaL
funny part is, he's still here bitching about "make warden public" but he says he already has warden patched? =\

ironic
February 1, 2009, 2:22 AM
PunK
Excuse my grammar I am on my itouch.

This is one of those arguments that could go on forever. Only argument I see here that can be settled is that nes is still stuck in the stone age. And the fact he can't figure anything out on his own.

But besides that... Trying to argue that andy wrongfully released a library is pointless... Even though he could have just released it without much of an announcement.. For example.. Releasing it with your but rather then posting it here on vl.
As long as a select few only have the knowledge (thanks ringo!) of obtaining the offsets then we should consider this argument dead. And I think we don't have to worry about nes.. 2+2 still equals 5 to him.
February 1, 2009, 6:23 AM
Ringo
This thread is becoming epic.

[quote author=NeSuckS2 link=topic=17703.msg181531#msg181531 date=1233437679]
Ringo ran thousands of sc winbots and now he runs many d2 bots.  But you would definitely share info with him!  You decide that ruining d2 game is better than ruining d2 chat??[/quote]
Yep, I'm guilty of that, but that was like back in 2001/2002 and for a short space of time.
And yeah, i've made some d2 bots, but I also keep them 100% private, and used to run only 1 bot for the public to exp with, and get free items, since I was not willing to release the bot(s).
All of the above were little more than 5 min interests and hardly compare to you spending the past 4 - 5 years ripping a load bot, and flooding battle.net almost every day, lol.
In fact, I even have logs of you spamming last christmas day.

I've also got a PM today, telling me that nes has/is paying somone from this forum, to add warden to his bots. Idk how true that is, but it doesnt sound at all suppriseing.

[quote author=NeSuckS2 link=topic=17703.msg181531#msg181531 date=1233437679]
I Need a fucking life, I'm a retarded assnugget.[/quote]
Fixed*

@punk, it wasnt really a case of argueing with him about releaseing a dll, it was an attempt to educate him -- but as he's already stated, he doesn't give a shit about anyone or anything.
February 1, 2009, 6:58 AM
xpeh
Warden is implemented in java library, maybe in another with open sources.

Is it so hard to rewrite it? Is there no warden library dll?

Btw, l33tarium sux.
February 1, 2009, 9:09 AM
PunK
I guess ringo.. anyways I find it hilarious that nesucks came on here begging for the new offsets and then clearly threatened that he would release the code publicly.
February 1, 2009, 4:25 PM
MyStiCaL
well i just noticed nes's flood obviously he has it connected to starcraft bu they all drop.. over and over again, so he dunt have it
February 1, 2009, 10:08 PM
Barabajagal
Doesn't really matter right now anyway, since my computer is inoperable, and it's quite possible that my entire hard drive, processor, motherboard, and RAM were all fried when my PSU blew. If that's the case, RCB, my warden dll, and pretty much everything I've collected and done over the last decade have been nullified. Funny how not grounding a generator can do that...
February 2, 2009, 1:36 AM
BreW
[quote author=Andy link=topic=17703.msg181565#msg181565 date=1233538582]
Doesn't really matter right now anyway, since my computer is inoperable, and it's quite possible that my entire hard drive, processor, motherboard, and RAM were all fried when my PSU blew. If that's the case, RCB, my warden dll, and pretty much everything I've collected and done over the last decade have been nullified. Funny how not grounding a generator can do that...
[/quote]
*claps*
February 2, 2009, 2:30 AM
Yegg
[quote author=Andy link=topic=17703.msg181565#msg181565 date=1233538582]
Doesn't really matter right now anyway, since my computer is inoperable, and it's quite possible that my entire hard drive, processor, motherboard, and RAM were all fried when my PSU blew. If that's the case, RCB, my warden dll, and pretty much everything I've collected and done over the last decade have been nullified. Funny how not grounding a generator can do that...
[/quote]

Of all people, I'd expect you to have some form of an elaborate backup system prepared at all times.
February 2, 2009, 3:24 AM
Ribose
[quote author=Andy link=topic=17703.msg181565#msg181565 date=1233538582]
Doesn't really matter right now anyway, since my computer is inoperable, and it's quite possible that my entire hard drive, processor, motherboard, and RAM were all fried when my PSU blew. If that's the case, RCB, my warden dll, and pretty much everything I've collected and done over the last decade have been nullified. Funny how not grounding a generator can do that...
[/quote]Backup on some place on the Internet? Backup hard drive? Backup flash drive? Backup CD? Backup........ printed copy of code (it can't be fried by a PSU!)...? :P
February 2, 2009, 3:45 AM
Barabajagal
Backup was wiped due to test Windows 7 installation. I was planning to re-back everything up this weekend, but didn't get a chance.
February 2, 2009, 4:05 AM
Myndfyr
Locked until I can figure out how to clean this up.
February 2, 2009, 5:44 AM

Search