Exemple #1
0
        public bool GetInterface()
        {
            steamFriends = Steamworks.CastInterface<ISteamFriends002> ( steamClient.GetISteamFriends ( user, pipe, "SteamFriends002" ) );

            if ( steamFriends == null )
                return false;

            clientFriends = Steamworks.CastInterface<IClientFriends> ( clientEngine.GetIClientFriends ( user, pipe, "CLIENTFRIENDS_INTERFACE_VERSION001" ) );

            if ( clientFriends == null )
                return false;

            // Virtual Table
            VTable vTable = new VTable ( clientFriends.Interface );

            getChatMsg = vTable.GetFunc<NativeGetChatRoomEntry> ( 99 );
            getChatName = vTable.GetFunc<NativeGetChatRoomName> ( 117 );
            sendChatMsg = vTable.GetFunc<NativeSendChatMsg> ( 98 );

            CallbackDispatcher.SpawnDispatchThread ( pipe );

            return true;
        }
Exemple #2
0
        public bool GetInterface()
        {
            steamFriends = Steamworks.CastInterface<ISteamFriends002>( steamClient.GetISteamFriends( user, pipe, "SteamFriends002" ) );

            if ( steamFriends == null )
                return false;

            clientFriends = Steamworks.CastInterface<IClientFriends>( clientEngine.GetIClientFriends( user, pipe, "CLIENTFRIENDS_INTERFACE_VERSION001" ) );

            if ( clientFriends == null )
                return false;

            VTable vTable = new VTable( clientFriends.Interface );

            getChatMsg = vTable.GetFunc<NativeGetChatRoomEntry>( 99 );
            getChatName = vTable.GetFunc<NativeGetChatRoomName>( 117 );

            groupChatEnabled = true;
            groupStatusMsg = "Enabled with vtable offsets. (Dangerous)";

            CallbackDispatcher.SpawnDispatchThread( pipe );

            return true;
        }
        public bool GetInterface()
        {
            steamFriends = Steamworks.CastInterface<ISteamFriends002>(steamClient.GetISteamFriends(user, pipe, steamFriendsEngineVersion));

            if (steamFriends == null)
                return false;

            Program.logToWindow("Got ISteamFriends002 interface");

            clientFriends = Steamworks.CastInterface<IClientFriends>(clientEngine.GetIClientFriends(user, pipe, clientFriendsEngineVersion));

            if (clientFriends == null)
                return false;

            Program.logToWindow("Got IClientFriends interface");

            VTable vTable = new VTable(clientFriends.Interface);

            getChatMsg = vTable.GetFunc<NativeGetChatRoomEntry>(99);
            getChatName = vTable.GetFunc<NativeGetChatRoomName>(117);
            sendChatMsg = vTable.GetFunc<NativeSendChatMsg>(98);

            groupChatEnabled = true;
            groupStatusMsg = "Enabled with vTable offsets";

            CallbackDispatcher.SpawnDispatchThread(pipe);

            Program.logToWindow("Found steam interface. Listing current clans:");

            int numClans = steamFriends.GetClanCount();
            for (int i = 0; i < numClans; i++)
            {
                ulong clanId = steamFriends.GetClanByIndex(i);
                Program.logToWindow("Clan Num: " + i + " ID: " + clanId + " Name: " + steamFriends.GetClanName(clanId));
            }

            return true;
        }
Exemple #4
0
        public bool GetInterface()
        {
            steamFriends = Steamworks.CastInterface<ISteamFriends002>( steamClient.GetISteamFriends( user, pipe, "SteamFriends002" ) );

            if ( steamFriends == null )
                return false;

            clientFriends = Steamworks.CastInterface<IClientFriends>( clientEngine.GetIClientFriends( user, pipe, "CLIENTFRIENDS_INTERFACE_VERSION001" ) );

            if ( clientFriends == null )
                return false;

            VTScan vtScan = new VTScan( clientFriends.Interface );

            if ( vtScan.Init() )
            {

                /*
                .text:3809F73D 6A 00                                   push    0
                .text:3809F73F 68 62 D4 46 38                          push    offset unk_3846D462
                .text:3809F744 68 95 03 00 00                          push    394h
                .text:3809F749 68 40 E7 3C 38                          push    offset aEBuild_slav_20 ; "e:\\build_slave\\steam_rel_client_win32\\b"...
                .text:3809F74E 6A 00                                   push    0
                .text:3809F750 68 90 E7 3C 38                          push    offset asc_383CE790 ; "Assertion Failed: bufRet.GetUint8() == "...
                .text:3809F755 FF 15 44 E5 37 38                       call    ds:AssertMsgImplementation
                */
                var results = vtScan.DoScan<NativeGetChatRoomEntry>(
                    "\x6A\x00\x68\x62\xD4\x46\x38\x68\x83\x03\x00\x00\x68\x40\xE7\x3C\x38\x6A\x00\x68\x90\xE7\x3C\x38\xFF\x15\x44\xE5\x37\x38",
                    "xxx????xxxxxx????xxx????xx????"
                );

                bool foundFirst = false;

                if ( results.Count == 0 )
                {
                    groupStatusMsg = "Error: Unable to scan for GetChatRoomEntry";
                }
                else
                {
                    if ( results.Count > 1 )
                    {
                        groupStatusMsg = "Error: Scan for GetChatRoomEntry gave multiple results!";
                    }
                    else
                    {
                        getChatMsg = results[ 0 ].Delegate;
                        foundFirst = true;
                    }
                }

                /*
                .text:380A06A4 6A 00                                   push    0
                .text:380A06A6 68 69 D4 46 38                          push    offset unk_3846D469
                .text:380A06AB 68 AB 03 00 00                          push    3AAh
                .text:380A06B0 68 40 E7 3C 38                          push    offset aEBuild_slav_20 ; "e:\\build_slave\\steam_rel_client_win32\\b"...
                .text:380A06B5 6A 00                                   push    0
                .text:380A06B7 68 90 E7 3C 38                          push    offset asc_383CE790 ; "Assertion Failed: bufRet.GetUint8() == "...
                .text:380A06BC FF 15 44 E5 37 38                       call    ds:AssertMsgImplementation
                */

                var results2 = vtScan.DoScan<NativeGetChatRoomName>(
                    "\x6A\x00\x68\x69\xD4\x46\x38\x68\x99\x03\x00\x00\x68\x40\xE7\x3C\x38\x6A\x00\x68\x90\xE7\x3C\x38\xFF\x15\x44\xE5\x37\x38",
                    "xxx????xxxxxx????xxx????xx????"
                );

                if ( results2.Count == 0 )
                {
                    groupStatusMsg = "Error: Unable to scan for GetChatRoomName";
                }
                else
                {
                    if ( results2.Count > 1 )
                    {
                        groupStatusMsg = "Error: Scan for GetChatRoomName gave multiple results!";
                    }
                    else
                    {
                        getChatName = results2[ 0 ].Delegate;
                        groupChatEnabled = foundFirst && true;
                    }
                }
            }
            else
            {
                groupStatusMsg = "Error: Unable to initialize scan!";
            }

            CallbackDispatcher.SpawnDispatchThread( pipe );

            return true;
        }
Exemple #5
0
        public bool GetInterface()
        {
            steamFriends = Steamworks.CastInterface<ISteamFriends002>( steamClient.GetISteamFriends( user, pipe, "SteamFriends002" ) );

            if ( steamFriends == null )
                return false;

            clientFriends = Steamworks.CastInterface<IClientFriends>( clientEngine.GetIClientFriends( user, pipe, "CLIENTFRIENDS_INTERFACE_VERSION001" ) );

            if ( clientFriends == null )
                return false;

            VTable vTable = new VTable( clientFriends.Interface );

            getChatMsg = vTable.GetFunc<NativeGetChatRoomEntry>( 99 );
            getChatName = vTable.GetFunc<NativeGetChatRoomName>( 117 );

            groupChatEnabled = true;
            groupStatusMsg = "Enabled with vtable offsets. (Dangerous)";

            CallbackDispatcher.SpawnDispatchThread( pipe );

            return true;
        }
Exemple #6
0
        public bool GetInterface()
        {
            steamFriends = Steamworks.CastInterface <ISteamFriends002>(steamClient.GetISteamFriends(user, pipe, "SteamFriends002"));

            if (steamFriends == null)
            {
                return(false);
            }

            clientFriends = Steamworks.CastInterface <IClientFriends>(clientEngine.GetIClientFriends(user, pipe, "CLIENTFRIENDS_INTERFACE_VERSION001"));

            if (clientFriends == null)
            {
                return(false);
            }

            VTScan vtScan = new VTScan(clientFriends.Interface);

            if (vtScan.Init())
            {
                /*
                 * .text:3809F73D 6A 00                                   push    0
                 * .text:3809F73F 68 62 D4 46 38                          push    offset unk_3846D462
                 * .text:3809F744 68 95 03 00 00                          push    394h
                 * .text:3809F749 68 40 E7 3C 38                          push    offset aEBuild_slav_20 ; "e:\\build_slave\\steam_rel_client_win32\\b"...
                 * .text:3809F74E 6A 00                                   push    0
                 * .text:3809F750 68 90 E7 3C 38                          push    offset asc_383CE790 ; "Assertion Failed: bufRet.GetUint8() == "...
                 * .text:3809F755 FF 15 44 E5 37 38                       call    ds:AssertMsgImplementation
                 */
                var results = vtScan.DoScan <NativeGetChatRoomEntry>(
                    "\x6A\x00\x68\x62\xD4\x46\x38\x68\x83\x03\x00\x00\x68\x40\xE7\x3C\x38\x6A\x00\x68\x90\xE7\x3C\x38\xFF\x15\x44\xE5\x37\x38",
                    "xxx????xxxxxx????xxx????xx????"
                    );

                bool foundFirst = false;

                if (results.Count == 0)
                {
                    groupStatusMsg = "Error: Unable to scan for GetChatRoomEntry";
                }
                else
                {
                    if (results.Count > 1)
                    {
                        groupStatusMsg = "Error: Scan for GetChatRoomEntry gave multiple results!";
                    }
                    else
                    {
                        getChatMsg = results[0].Delegate;
                        foundFirst = true;
                    }
                }

                /*
                 * .text:380A06A4 6A 00                                   push    0
                 * .text:380A06A6 68 69 D4 46 38                          push    offset unk_3846D469
                 * .text:380A06AB 68 AB 03 00 00                          push    3AAh
                 * .text:380A06B0 68 40 E7 3C 38                          push    offset aEBuild_slav_20 ; "e:\\build_slave\\steam_rel_client_win32\\b"...
                 * .text:380A06B5 6A 00                                   push    0
                 * .text:380A06B7 68 90 E7 3C 38                          push    offset asc_383CE790 ; "Assertion Failed: bufRet.GetUint8() == "...
                 * .text:380A06BC FF 15 44 E5 37 38                       call    ds:AssertMsgImplementation
                 */

                var results2 = vtScan.DoScan <NativeGetChatRoomName>(
                    "\x6A\x00\x68\x69\xD4\x46\x38\x68\x99\x03\x00\x00\x68\x40\xE7\x3C\x38\x6A\x00\x68\x90\xE7\x3C\x38\xFF\x15\x44\xE5\x37\x38",
                    "xxx????xxxxxx????xxx????xx????"
                    );

                if (results2.Count == 0)
                {
                    groupStatusMsg = "Error: Unable to scan for GetChatRoomName";
                }
                else
                {
                    if (results2.Count > 1)
                    {
                        groupStatusMsg = "Error: Scan for GetChatRoomName gave multiple results!";
                    }
                    else
                    {
                        getChatName      = results2[0].Delegate;
                        groupChatEnabled = foundFirst && true;
                    }
                }
            }
            else
            {
                groupStatusMsg = "Error: Unable to initialize scan!";
            }

            CallbackDispatcher.SpawnDispatchThread(pipe);

            return(true);
        }