Main Menu
Menu

Show posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Show posts Menu

Messages - MADCATX

#16
Starcraft II Beta / Re: Emulate Battle.net
February 23, 2010, 05:00:51 PM
Quote from: Gamewiz on February 23, 2010, 04:54:05 PM
Wow man excellent job! If you created a server does that mean we could theoratically play both AI and multiplayer (multiplayer against only for those who join the fake bnet server)?
 
If it's your server than how come you still need a key? Sorry, I'm a newb and I'm just trying to understand the progress. :)
I created server logic(Open/Close Sockets, send Packets, patch windows hosts file, etc...), but I still don't know what packets I must send to client so client can login. All data server sends is data mined by me with wireshark. I don't have the key to SC2, so i can't data mine other data, needed to client to Interact with BNet.
#17
Starcraft II Beta / Re: Emulate Battle.net
February 23, 2010, 03:40:28 PM
The sc2 server I have written in java yesterday, link to the server:

JRE(must install to run) - http://www.java.com/ru/download/manual.jsp, Server(Only Login with responses - badPass/NoSC2) - http://loino.co.cc/upload-files/tmp/SC2BattleNET.jar

I need packets dump or sc2 key in order to furter develop it.
#18
Starcraft II Beta / Emulate Battle.net
February 22, 2010, 06:18:36 AM
I writed java server application(with response to login packets) and changed my IP to 12.129.206.131, however game don't want to connect to this address, further investigation showed that game connects to 12.129.206.133:bnetfile(1120) to download battle.net settings file. After that file redirects to 12.129.206.131. Protocol to get the file is Blizzard HTTP(User-Agent: Blizzard Web Client, Host: us-beta.patch.battle.net:1120). To emulate server we need to change this file and log all packets to battle.net with WireShark.
#19
Starcraft II Beta / Re: Collaboration for a new member
February 21, 2010, 05:12:37 PM
I searched battle.net.gfx file for strings, there is no config Strings in this file, only the various functions to get info about maps, etc...
The game connects to following hosts(netstat -b -n):
 12.129.206.131:1119
 12.129.242.21:80 (Breaking News Dialog)

Someone who have active sc2 key need to log all packets from/to this server, then we can emulate bnet.

#20
Starcraft II Beta / Re: Collaboration for a new member
February 21, 2010, 12:48:35 PM
Here are FLA generated by this program and SWF it made from.
#21
Starcraft II Beta / Re: Collaboration for a new member
February 21, 2010, 11:28:21 AM
2nd attachment is scripts from battle.net.gfx.
To open battle.net.gfx - rename it to battle.net.swf and edit first 3 symbols(from CFX to CWS) in notepad or hex editor. Then open it in Sothink SWF Decompiler. It will look like on attached screenshot...
#22
Starcraft II Beta / Re: Collaboration for a new member
February 21, 2010, 11:04:41 AM
_Packeges.SC2.Singletons.Maps.S2Maps
as attachment
#23
Starcraft II Beta / Re: Collaboration for a new member
February 21, 2010, 10:55:43 AM
I opened the WindowMapList.gfx not the mpq, there is nothing usefull, it seems that all data is indeed in battle.net.gfx. This file is really huge on scripts, i can send it if you didn't opened it. Some code from file:
_Packeges.Protocol.BSN.Battlenet.S2Map.Statistics

// Action script...

// [Initial MovieClip Action of sprite 20504]
#initclip 25
if (!Protocol.BSN.Battlenet.S2Map.Statics)
{
    if (!Protocol)
    {
        _global.Protocol = new Object();
    } // end if
    if (!Protocol.BSN)
    {
        _global.Protocol.BSN = new Object();
    } // end if
    if (!Protocol.BSN.Battlenet)
    {
        _global.Protocol.BSN.Battlenet = new Object();
    } // end if
    if (!Protocol.BSN.Battlenet.S2Map)
    {
        _global.Protocol.BSN.Battlenet.S2Map = new Object();
    } // end if
    var _loc1 = (_global.Protocol.BSN.Battlenet.S2Map.Statics = function ()
    {
    }).prototype;
    ASSetPropFlags(_loc1, null, 1);
    (_global.Protocol.BSN.Battlenet.S2Map.Statics = function ()
    {
    }).MAX_REQUIRED_MODS = 4;
    (_global.Protocol.BSN.Battlenet.S2Map.Statics = function ()
    {
    }).MAX_OPTIONAL_MODS = 4;
    (_global.Protocol.BSN.Battlenet.S2Map.Statics = function ()
    {
    }).MAX_DEPENDENCIES = 10;
    (_global.Protocol.BSN.Battlenet.S2Map.Statics = function ()
    {
    }).MAX_VARIANTS = 32;
    (_global.Protocol.BSN.Battlenet.S2Map.Statics = function ()
    {
    }).MAX_NAME_LENGTH = 80;
    (_global.Protocol.BSN.Battlenet.S2Map.Statics = function ()
    {
    }).MAX_DESCRIPTION_LENGTH = 500;
    (_global.Protocol.BSN.Battlenet.S2Map.Statics = function ()
    {
    }).BATCH_SIZE = 10;
    (_global.Protocol.BSN.Battlenet.S2Map.Statics = function ()
    {
    }).BAD_ID = 0;
    (_global.Protocol.BSN.Battlenet.S2Map.Statics = function ()
    {
    }).MIN_MAP_SEARCH_STRING = 3;
    (_global.Protocol.BSN.Battlenet.S2Map.Statics = function ()
    {
    }).MAX_MAP_LOCALES = 50;
    (_global.Protocol.BSN.Battlenet.S2Map.Statics = function ()
    {
    }).MAPFILTERTYPE_EVERYTHING = 0;
    (_global.Protocol.BSN.Battlenet.S2Map.Statics = function ()
    {
    }).MAPFILTERTYPE_GENRE = 1;
    (_global.Protocol.BSN.Battlenet.S2Map.Statics = function ()
    {
    }).BAD_VERSION = 0;
    (_global.Protocol.BSN.Battlenet.S2Map.Statics = function ()
    {
    }).FIRST_VALID_VERSION = 1;
    (_global.Protocol.BSN.Battlenet.S2Map.Statics = function ()
    {
    }).LINKENTRYTYPE_PRIMARY = 0;
    (_global.Protocol.BSN.Battlenet.S2Map.Statics = function ()
    {
    }).LINKENTRYTYPE_OPTIONAL = 1;
    (_global.Protocol.BSN.Battlenet.S2Map.Statics = function ()
    {
    }).LINKENTRYTYPE_DEPENDENCY = 2;
    (_global.Protocol.BSN.Battlenet.S2Map.Statics = function ()
    {
    }).MAP_LINK_LIST_SIZE = 100;
    (_global.Protocol.BSN.Battlenet.S2Map.Statics = function ()
    {
    }).BlizzardLabel = "BLIZ";
    (_global.Protocol.BSN.Battlenet.S2Map.Statics = function ()
    {
    }).BlizzardPublisher = "blizzmaps#blizzmaps";
    (_global.Protocol.BSN.Battlenet.S2Map.Statics = function ()
    {
    }).MAX_GAMETYPE_VALUE = 7;
    (_global.Protocol.BSN.Battlenet.S2Map.Statics = function ()
    {
    }).FLAGVALUE_FLAG_BANNED = 1;
} // end if
#endinitclip


_Packeges.SC2.Dashboard.CreateGame.MapItemRenderer

// Action script...

// [Initial MovieClip Action of sprite 20538]
#initclip 59
if (!SC2.Dashboard.CreateGame.MapItemRenderer)
{
    if (!SC2)
    {
        _global.SC2 = new Object();
    } // end if
    if (!SC2.Dashboard)
    {
        _global.SC2.Dashboard = new Object();
    } // end if
    if (!SC2.Dashboard.CreateGame)
    {
        _global.SC2.Dashboard.CreateGame = new Object();
    } // end if
    var _loc1 = (_global.SC2.Dashboard.CreateGame.MapItemRenderer = function ()
    {
        super();
        BATTLENET.Singletons.Social.Party.AddListener(this);
        this.m_featuredBackground1._visible = this.m_featuredBackground2._visible = false;
        if (this.hitArea != undefined)
        {
            this.hitArea._visible = false;
        } // end if
        this.doubleClickEnabled = true;
    }).prototype;
    _loc1.setData = function (itemData)
    {
        if (itemData == this.data)
        {
            return;
        } // end if
        super.setData(itemData);
        if (itemData != undefined)
        {
            var _loc4 = new SC2.Containers.Maps.Link(itemData);
            this.m_primaryHandle = _loc4.GetPrimaryHandle();
            SC2.Singletons.Maps.S2Maps.GetS2Map(this.m_primaryHandle.m_id, this.m_primaryHandle.m_version, new LIBRARY.Utilities.Callback(this.setDataCallback, this));
        }
        else
        {
            this.m_primaryHandle = undefined;
            this.SetNormalMode();
        } // end else if
    };
    _loc1.setDataCallback = function (success)
    {
        var _loc3 = success.m_mapInfo;
        var _loc4 = _loc3.m_handle;
        if (this.m_primaryHandle.m_id != _loc4.m_id && this.m_primaryHandle.m_version != _loc4.m_version)
        {
            return;
        } // end if
        this.m_s2MapInfo = _loc3;
        this.SetNormalMode();
        this.PopulateText();
    };
    _loc1.PartyMemberJoined = function ()
    {
        this.SetNormalMode();
    };
    _loc1.PartyMemberLeft = function ()
    {
        this.SetNormalMode();
    };
    _loc1.PartyLeft = function ()
    {
        this.SetNormalMode();
    };
    _loc1.updateAfterStateChange = function ()
    {
        super.updateAfterStateChange();
        this.SetNormalMode();
        this.PopulateText();
    };
    _loc1.PopulateText = function ()
    {
        if (this.data == undefined)
        {
            this.m_name.text = this.m_author.text = this.m_genre.text = this.m_players.text = "";
            this.m_s2MapInfo = undefined;
            return;
        } // end if
        if (this.m_s2MapInfo != undefined)
        {
            var _loc2 = this.m_s2MapInfo.m_maxPlayers;
            if (_loc2 != undefined)
            {
                this.m_players.text = String(_loc2);
            } // end if
            var _loc3 = BattlenetAPI.GetMapHeaderString(this.m_s2MapInfo.m_handle, this.m_s2MapInfo.m_mapName);
            if (_loc3 != undefined)
            {
                this.m_name.text = _loc3;
            } // end if
            var _loc4 = this.CreateGenreListString(this.m_s2MapInfo);
            if (_loc4 != undefined)
            {
                this.m_genre.text = _loc4;
            } // end if
            var _loc5 = this.m_s2MapInfo.m_authorName.m_name;
            if (_loc5 != undefined)
            {
                this.m_author.text = BATTLENET.Utilities.Name.FormatToonName(_loc5);
                this.SetBlizzIcon(this.m_s2MapInfo);
            } // end if
        } // end if
    };
    _loc1.CreateGenreListString = function (mapInfo)
    {
        var _loc3 = SC2.Singletons.Maps.S2Maps.CreateGenreList(mapInfo);
        var _loc4 = new Array();
        var _loc5 = 0;
       
        while (++_loc5, _loc5 < _loc3.length)
        {
            if (_loc3[_loc5].m_visual.length == 0)
            {
                continue;
            } // end if
            _loc4.push(_loc3[_loc5].m_visual);
        } // end while
        return (_loc4.join(", "));
    };
    _loc1.SetBlizzIcon = function (mapInfo)
    {
        if (mapInfo != undefined && mapInfo.m_label == Protocol.BSN.Battlenet.S2Map.Statics.BlizzardLabel)
        {
            this.m_blizzIcon._visible = true;
        }
        else
        {
            this.m_blizzIcon._visible = false;
        } // end else if
    };
    _loc1.SetShowMoreButtonMode = function ()
    {
        this.m_buttonPiece._visible = true;
        this.textField._visible = true;
        this.m_name._visible = false;
        this.m_genre._visible = false;
        this.m_author._visible = false;
        this.m_players._visible = false;
        this.m_blizzIcon._visible = false;
        this.m_numberIcon._visible = false;
        if (this.m_downAnim)
        {
            this.m_downAnim._visible = false;
        } // end if
        if (this.m_overAnim)
        {
            this.m_overAnim._visible = false;
        } // end if
    };
    _loc1.SetNormalMode = function ()
    {
        this.m_buttonPiece._visible = false;
        this.textField._visible = false;
        if (this.data != undefined && this.m_s2MapInfo != undefined)
        {
            this.m_name._visible = true;
            this.m_author._visible = true;
            this.m_players._visible = true;
            this.m_numberIcon._visible = true;
            this.m_genre._visible = true;
            if (this.m_s2MapInfo.m_maxPlayers < BATTLENET.Singletons.Social.Party.GetNumberInParty())
            {
                this.disabled = true;
            }
            else
            {
                this.disabled = false;
            } // end else if
        }
        else
        {
            this.m_name._visible = false;
            this.m_author._visible = false;
            this.m_players._visible = false;
            this.m_numberIcon._visible = false;
            this.m_genre._visible = false;
            this.m_blizzIcon._visible = false;
            this.disabled = true;
        } // end else if
        if (this.m_downAnim)
        {
            this.m_downAnim._visible = true;
        } // end if
        if (this.m_overAnim)
        {
            this.m_overAnim._visible = true;
        } // end if
    };
    ASSetPropFlags(_loc1, null, 1);
} // end if
#endinitclip


There is 20000 symbol limit on this forum, posting one more message.
#24
Starcraft II Beta / Re: Collaboration for a new member
February 21, 2010, 09:59:47 AM
I decompiled gfx files by changing extension to SWF and editing first 3 letters to CWS with Sothink SWF Decompiler. But there is no usefull code generated:
File Battle.net.MPQ->SWF->Dashboard->PlayGame->WindowMapList.gfx->Action:Dashboard-PlayGame-WindowMapList

// Action script...

// [onClipEvent of sprite 57 in frame 1]
onClipEvent (construct)
{
    disableConstraints = false;
    disabled = false;
    disableFocus = true;
    labelID = "";
    toggle = false;
    visible = true;
}

// [onClipEvent of sprite 58 in frame 1]
onClipEvent (construct)
{
    disableConstraints = false;
    disabled = false;
    disableFocus = false;
    labelID = "";
    toggle = false;
    visible = true;
}

// [onClipEvent of sprite 63 in frame 1]
onClipEvent (construct)
{
    disabled = false;
    offsetBottom = 0;
    offsetTop = 0;
    inspectableScrollTarget = "";
    trackMode = "scrollPage";
    visible = true;
}

// [onClipEvent of sprite 65 in frame 1]
onClipEvent (construct)
{
    disabled = false;
    itemRenderer = "WindowMapList-MapListRenderer";
    margin = 0;
    paddingBottom = 0;
    paddingLeft = 0;
    paddingRight = 0;
    paddingTop = 0;
    inspectableRendererInstanceName = "";
    rowHeight = 0;
    inspectableScrollBar = "m_scrollbar";
    thumbOffsetBottom = 0;
    thumbOffsetTop = 0;
    thumbSizeFactor = 1;
    visible = true;
}

// [Initial MovieClip Action of sprite 79]
#initclip 33
Object.registerClass("Dashboard-PlayGame-WindowMapList", SC2.Dashboard.PlayGame.MapVetoList.WindowMapList);
#endinitclip

// [Action in Frame 1]
stop ();


There is also text files in this file, but they are not usefull too:

<p align="left"><font face="$Font_Title1" size="18" color="#0d75b0" letterSpacing="0.000000" kerning="1">Valley of Judgement</font></p>