GameCapture 1.24b

This is a discussion on GameCapture 1.24b within the Warcraft 3 Hacks, bots and tools board part of the Warcraft 3 forum category; Most likely not. Warden is currently disabled, and I see no reason for Blizzard to ban this harmless utility. However, ...

Page 6 of 7 FirstFirst ... 4567 LastLast
Results 51 to 60 of 68
  1. #51
    Zephyrix is offline Wannabe Member
    Array
    Join Date
    Dec 2009
    Posts
    21
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Rep Power
    8
    Reputation
    5
    Most likely not. Warden is currently disabled, and I see no reason for Blizzard to ban this harmless utility.



    However, as with all third party applications, banning is possible, so use at your own risk.

  2. #52
    Tracky's Avatar
    Tracky is offline Administrator

    Array
    Join Date
    Dec 2007
    Location
    Germany
    Posts
    9,855
    Mentioned
    158 Post(s)
    Tagged
    2 Thread(s)
    Rep Power
    42
    Reputation
    5607
    No. But it's outdated since the actuell patch is 1.24c

  3. #53
    goofus is offline Wannabe Member
    Array
    Join Date
    Dec 2009
    Posts
    20
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Rep Power
    0
    Reputation
    0
    thanks!

  4. #54
    Zephyrix is offline Wannabe Member
    Array
    Join Date
    Dec 2009
    Posts
    21
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Rep Power
    8
    Reputation
    5
    Quote Originally Posted by Tracky View Post
    No. But it's outdated since the actuell patch is 1.24c
    Actually, I've rewritten the DLL so it is self-updating.
    It works for every version of TFT 1.22 and up, including 1.24c

    Only problem is, because I don't have ten posts, I have to resort to hijacking this thread.

    See pages 4 and 5.

  5. #55
    wolverprex's Avatar
    wolverprex is offline Guru
    Array
    Join Date
    Jun 2007
    Posts
    86
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Rep Power
    11
    Reputation
    6
    haha.. i already said.. go yo "general chat" or "Say Hello" forum and spam there

  6. #56
    SoFreshSoReal is offline Newbie
    Array
    Join Date
    Dec 2009
    Posts
    1
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Rep Power
    0
    Reputation
    0
    Thanks for the update Zephyrix!

    On a note, the program captures little "c" as "d". Can you send a fix?

  7. #57
    Zephyrix is offline Wannabe Member
    Array
    Join Date
    Dec 2009
    Posts
    21
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Rep Power
    8
    Reputation
    5
    Quote Originally Posted by SoFreshSoReal View Post
    Thanks for the update Zephyrix!

    On a note, the program captures little "c" as "d". Can you send a fix?
    It captures "c"s just fine for me.
    Can you post what the entire text is supposed to be?
    Are you using strip colour codes?

  8. #58
    Darimus's Avatar
    Darimus is offline Hacker
    Array
    Join Date
    Jul 2008
    Posts
    185
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Rep Power
    11
    Reputation
    300
    That's a bit of an unexpected development... what method did you use to determine how the DLL and program interacted?

  9. #59
    goofus is offline Wannabe Member
    Array
    Join Date
    Dec 2009
    Posts
    20
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Rep Power
    0
    Reputation
    0
    new version still changes c into 0 sometimes.
    Thanks for the update Zephyrix!

  10. #60
    Zephyrix is offline Wannabe Member
    Array
    Join Date
    Dec 2009
    Posts
    21
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Rep Power
    8
    Reputation
    5
    Quote Originally Posted by Darimus View Post
    That's a bit of an unexpected development... what method did you use to determine how the DLL and program interacted?
    TBH I was just going to edit the new offsets in, but then I noticed some calls to SendMessage. Upon further inspection I found that it was quite easy to interact with the application as it was just a simple injector and a nice msgloop

    One thing I noticed is that the application would inject the DLL before creating its class/window, so I had to make the DLL create a thread and sleep until it saw the gamecapture class before sending any messages.
    This way I could print any debug messages straight in the GameCapture window.

    Some code:
    Code:
    void __stdcall SendText(const char* text)
    {
        HWND hGameCapture = NULL;
        HWND hEdit = NULL;
    
        int iPosition = 0;
        bool bFilterColourTags = false;
    
        hGameCapture = FindWindowA("GameCapture Class", 0);
        hEdit = FindWindowExA(hGameCapture, 0, "Edit", 0);
        
        if(!hEdit)
            return;
    
        iPosition = (int)SendMessageA(hEdit, WM_GETPOSITION, 0, 0);
        bFilterColourTags = SendMessageA(hGameCapture, WM_FILTERCOLOUR, 0, 0) ? true : false;
    
        string szBuffer = string(text);
    
        if(bFilterColourTags)
            StripColourCodes(szBuffer);
    
        szBuffer += "\r\n";
    
        SendMessageA(hEdit, WM_SETPOSITION, iPosition, iPosition);
        SendMessageA(hEdit, WM_ADDTEXT, 0, (LPARAM)szBuffer.c_str());
    
        return;
    }
    At first I was hoping that the GameCapture window would do the stripping of the colour codes, but it didn't, so I tried doing a complete rewrite of the stripcolourcodes function to be more faithful to wc3's handling, which behaves like this:

    Remove all instances of "|r"
    Remove all instaces of "|cAABBCCDD", where AABBCCDD are valid hex digits; it doesn't remove it if any of the letters aren't in hex.

    So even strings like "|c|rAABBCCDD" would be rejected, because the |r would be removed, and then "|cAABBCCDD" is removed.

    Unfortunately, my StripColourCodes implementation is a little buggy as you can see...

    Code:
    inline void StripColourCodes(string &szBuffer)
    {
        size_t pos = szBuffer.find("|r");
    
        while(pos != string::npos)
        {
            szBuffer.erase(pos, 2);
            pos = szBuffer.find("|r");
        }
    
        if(szBuffer.length() < 10)
            return;
    
        pos = szBuffer.find("|c");
    
        while(pos != string::npos)
        {
            const string szValidChars = "0123456789abcdefABCDEF";
    
            if(szBuffer.length() - pos + 8 < 10 || pos + 9 >= szBuffer.length())
                break;
    
            int i;
            for(i = 0; i < 8; ++i)
            {
                if(szValidChars.find(szBuffer.at(pos+2+i)) == string::npos)
                    break;
            }
    
            if(i == 8 && szValidChars.find(szBuffer.at(pos+i)) != string::npos)
            {
                szBuffer.erase(pos, 10);
                pos = szBuffer.find("|c", pos);
            }
            else
                pos = szBuffer.find("|c", pos+2);
        }
    }
    Currently, the DLL itself also supports being unloaded, and will remove its hooks when asked to unload, but there is no way to actually unload it :p
    Last edited by Zephyrix; 12-30-2009 at 01:18 PM.

Page 6 of 7 FirstFirst ... 4567 LastLast

Similar Threads

  1. GameCapture 1.24
    By Darimus in forum Warcraft 3 Hacks, bots and tools
    Replies: 12
    Last Post: 04-02-2017, 06:14 PM
  2. GameCapture
    By Darimus in forum Warcraft 3 Hacks, bots and tools
    Replies: 16
    Last Post: 03-28-2011, 11:25 PM
  3. TFTLaunch 1.24b
    By Darimus in forum Warcraft 3 Hacks, bots and tools
    Replies: 18
    Last Post: 10-09-2009, 03:16 PM
  4. GameCapture 1.23
    By Darimus in forum Warcraft 3 Hacks, bots and tools
    Replies: 17
    Last Post: 09-15-2009, 02:18 PM

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •