├── r6_external
├── r6_external
│ ├── r6_external.vcxproj.user
│ ├── utils.h
│ ├── r6_external.vcxproj.filters
│ ├── driver.h
│ ├── entry.cpp
│ ├── ROL.h
│ └── r6_external.vcxproj
└── r6_external.sln
└── README.md
/r6_external/r6_external/r6_external.vcxproj.user:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # r6-external
2 | Simple external for r6
3 |
4 | Includes:
5 | - Glow for enemy players
6 | - Updated to latest Game Patch
7 |
8 | Doesnt Include:
9 | - Driver
10 |
11 | Note:
12 | - You have to add your own driver or else it will not work.
13 |
14 |
15 |
16 | BIG Credits to @Roblox932! You helped me so much in the past week Thank you!
17 |
18 |
--------------------------------------------------------------------------------
/r6_external/r6_external/utils.h:
--------------------------------------------------------------------------------
1 | namespace utils
2 | {
3 | auto get_process_id( const wchar_t *name ) -> std::int32_t
4 | {
5 | const auto snapshot = CreateToolhelp32Snapshot( TH32CS_SNAPPROCESS, 0 );
6 |
7 | PROCESSENTRY32 entry = { 0 };
8 | entry.dwSize = sizeof( entry );
9 |
10 | Process32First( snapshot, &entry );
11 | do
12 | {
13 | if ( wcscmp( entry.szExeFile, name ) )
14 | {
15 | continue;
16 | }
17 |
18 | CloseHandle( snapshot );
19 | return entry.th32ProcessID;
20 |
21 | } while ( Process32Next( snapshot, &entry ) );
22 |
23 | CloseHandle( snapshot );
24 | return 0;
25 | }
26 | }
--------------------------------------------------------------------------------
/r6_external/r6_external/r6_external.vcxproj.filters:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | {4FC737F1-C7A5-4376-A066-2A32D752A2FF}
6 | cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx
7 |
8 |
9 | {93995380-89BD-4b04-88EB-625FBE52EBFB}
10 | h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd
11 |
12 |
13 | {67DA6AB6-F800-4c08-8B7A-83BB121AAD01}
14 | rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms
15 |
16 |
17 |
18 |
19 | Source Files
20 |
21 |
22 |
23 |
24 | Header Files
25 |
26 |
27 | Header Files
28 |
29 |
30 | Header Files
31 |
32 |
33 |
--------------------------------------------------------------------------------
/r6_external/r6_external.sln:
--------------------------------------------------------------------------------
1 |
2 | Microsoft Visual Studio Solution File, Format Version 12.00
3 | # Visual Studio Version 16
4 | VisualStudioVersion = 16.0.32802.440
5 | MinimumVisualStudioVersion = 10.0.40219.1
6 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "r6_external", "r6_external\r6_external.vcxproj", "{7E28C248-A230-4124-880C-A8A5A3663D01}"
7 | EndProject
8 | Global
9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution
10 | Debug|x64 = Debug|x64
11 | Debug|x86 = Debug|x86
12 | Release|x64 = Release|x64
13 | Release|x86 = Release|x86
14 | EndGlobalSection
15 | GlobalSection(ProjectConfigurationPlatforms) = postSolution
16 | {7E28C248-A230-4124-880C-A8A5A3663D01}.Debug|x64.ActiveCfg = Debug|x64
17 | {7E28C248-A230-4124-880C-A8A5A3663D01}.Debug|x64.Build.0 = Debug|x64
18 | {7E28C248-A230-4124-880C-A8A5A3663D01}.Debug|x86.ActiveCfg = Debug|Win32
19 | {7E28C248-A230-4124-880C-A8A5A3663D01}.Debug|x86.Build.0 = Debug|Win32
20 | {7E28C248-A230-4124-880C-A8A5A3663D01}.Release|x64.ActiveCfg = Release|x64
21 | {7E28C248-A230-4124-880C-A8A5A3663D01}.Release|x64.Build.0 = Release|x64
22 | {7E28C248-A230-4124-880C-A8A5A3663D01}.Release|x86.ActiveCfg = Release|Win32
23 | {7E28C248-A230-4124-880C-A8A5A3663D01}.Release|x86.Build.0 = Release|Win32
24 | EndGlobalSection
25 | GlobalSection(SolutionProperties) = preSolution
26 | HideSolutionNode = FALSE
27 | EndGlobalSection
28 | GlobalSection(ExtensibilityGlobals) = postSolution
29 | SolutionGuid = {935E01F9-0D6A-4215-A0C1-FDBB95992F4B}
30 | EndGlobalSection
31 | EndGlobal
32 |
--------------------------------------------------------------------------------
/r6_external/r6_external/driver.h:
--------------------------------------------------------------------------------
1 | class c_driver
2 | {
3 | private:
4 |
5 | public:
6 |
7 | auto initialize( const int process_id ) -> bool
8 | {
9 |
10 | return true;
11 | }
12 |
13 | // ADD YOUR DRIVER HERE <<<
14 |
15 | auto get_module_base( const std::string module_name ) -> const std::uintptr_t
16 | {
17 | return true;
18 | }
19 |
20 | auto find_signature( const std::uintptr_t base, const std::string signature ) -> std::uintptr_t
21 | {
22 | return true;
23 | }
24 |
25 | auto read( const std::uintptr_t address, void *buffer, const std::size_t size ) -> bool
26 | {
27 | return true;
28 | }
29 |
30 | template
31 | auto read( const std::uintptr_t address ) -> t
32 | {
33 | t response{ };
34 | this->read( address, &response, sizeof( t ) );
35 | return response;
36 | }
37 |
38 | template
39 | auto read_chain( const std::uintptr_t address, const std::vector chain ) -> t
40 | {
41 | auto current = address;
42 |
43 | for ( int i = 0; i < chain.size( ) - 1; i++ )
44 | {
45 | current = this->read( current + chain[i] );
46 | }
47 | return this->read( current + chain[chain.size( ) - 1] );
48 | };
49 |
50 | auto write( const std::uintptr_t address, void *buffer, const std::size_t size ) -> bool
51 | {
52 | return true;
53 | }
54 |
55 | template
56 | auto write( const std::uintptr_t address, t value ) -> bool
57 | {
58 | return this->write( address, &value, sizeof( t ) );
59 | }
60 |
61 | auto unload( ) -> bool
62 | {
63 |
64 | return true;
65 | }
66 | };
67 |
68 | static c_driver *driver = new c_driver( );
--------------------------------------------------------------------------------
/r6_external/r6_external/entry.cpp:
--------------------------------------------------------------------------------
1 | #include
2 | #include
3 | #include
4 | #include
5 | #include
6 | #include
7 | #include
8 | #include
9 |
10 | #include "driver.h"
11 | #include "utils.h"
12 | #include "ROL.h"
13 |
14 |
15 |
16 | auto main( ) -> std::int32_t
17 | {
18 | driver->initialize( utils::get_process_id( L"RainbowSix.exe" ) );
19 | const auto base = driver->get_module_base( "RainbowSix.exe" );
20 |
21 | // Get the game_manager one time.
22 | const auto game_manager = __ROL8__( driver->read( base + 0x8CA45B8 ) - 0x18E83FAE4211D090i64 ^ 0xB4A4B94B8538E9C0ui64, 5 );
23 |
24 |
25 | while ( true )
26 | {
27 | // Entitylist
28 | const auto list = __ROL8__ ( ( driver->read( game_manager + 0x120 ) ^ 0x6Ei64 ) + 0x2D3008420A01289Fi64, 0x1D);
29 | const auto count = static_cast( __ROL8__ ( ( driver->read( game_manager + 0x128 ) ^ 0x6Ei64 ) + 0x2D3008420A01289Fi64, 0x1D ) );
30 |
31 | for ( auto i = 0u; i < count; ++i )
32 | {
33 | // Entityloop
34 | const auto entity = driver->read( list + ( i * 0x08 ) );
35 | const auto pawn = ( ( driver->read( entity + 0x38 ) - 0x2Di64 ) ^ 0x47 ) - 0x1CAC0E689A643359i64;
36 | const auto actor = ( ( driver->read( pawn + 0x18i64 ) ^ 0xD2EBEAA4B5728AEEui64 ) - 0x11175121A36679Ei64 ) ^ 0xDED4294E880D1C70ui64;
37 |
38 | if ( i == 0 ) // 0 = localplayer
39 | {
40 | // Simple Localplayer check
41 | }
42 | else
43 | {
44 | const auto glow_component = __ROL8__( __ROL8__( driver->read( actor + 0x1c8 ), 0x1D ) + 0xCE2E924B2644A463, 0x29 ); // Glow Component
45 | driver->write( glow_component + 0xB0, 0x20748000); // Glow Overwrite
46 | }
47 | }
48 |
49 | std::this_thread::sleep_for( std::chrono::milliseconds( 500 ) );
50 | }
51 | }
--------------------------------------------------------------------------------
/r6_external/r6_external/ROL.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | //Typedef basically gives an alias for an already existing data type.
4 |
5 | typedef __int64 ll;
6 | typedef __int64 ull;
7 |
8 | typedef unsigned int uint;
9 | typedef unsigned char uchar;
10 | typedef unsigned short ushort;
11 | typedef unsigned long ulong;
12 |
13 | typedef char int8;
14 | typedef signed char sint8;
15 | typedef unsigned char uint8;
16 | typedef short int16;
17 | typedef signed short sint16;
18 | typedef unsigned short uint16;
19 | typedef int int32;
20 | typedef signed int sint32;
21 | typedef unsigned int uint32;
22 | typedef ll int64;
23 | typedef ll sint64;
24 | typedef ull uint64;
25 |
26 |
27 | template T __ROL__( T value, int count )
28 | {
29 | const uint nbits = sizeof( T ) * 8;
30 |
31 | if ( count > 0 )
32 | {
33 | count %= nbits;
34 | T high = value >> ( nbits - count );
35 | if ( T( -1 ) < 0 ) // This will be a signed val.
36 | high &= ~( ( T( -1 ) << count ) );
37 | value <<= count;
38 | value |= high;
39 | }
40 | else
41 | {
42 | count = -count % nbits;
43 | T low = value << ( nbits - count );
44 | value >>= count;
45 | value |= low;
46 | }
47 | return value;
48 | }
49 |
50 | inline uint8 __ROL1__( uint8 value, int count ) {
51 | return __ROL__( (uint8)value, count );
52 | }
53 | inline uint16 __ROL2__( uint16 value, int count ) {
54 | return __ROL__( (uint16)value, count );
55 | }
56 | inline uint32 __ROL4__( uint32 value, int count ) {
57 | return __ROL__( (uint32)value, count );
58 | }
59 | inline uint64 __ROL8__( uint64 value, int count ) {
60 | return __ROL__( (uint64)value, count );
61 | }
62 | inline uint8 __ROR1__( uint8 value, int count ) {
63 | return __ROL__( (uint8)value, -count );
64 | }
65 | inline uint16 __ROR2__( uint16 value, int count ) {
66 | return __ROL__( (uint16)value, -count );
67 | }
68 | inline uint32 __ROR4__( uint32 value, int count ) {
69 | return __ROL__( (uint32)value, -count );
70 | }
71 | inline uint64 __ROR8__( uint64 value, int count ) {
72 | return __ROL__( (uint64)value, -count );
73 | }
--------------------------------------------------------------------------------
/r6_external/r6_external/r6_external.vcxproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Debug
6 | Win32
7 |
8 |
9 | Release
10 | Win32
11 |
12 |
13 | Debug
14 | x64
15 |
16 |
17 | Release
18 | x64
19 |
20 |
21 |
22 | 16.0
23 | Win32Proj
24 | {7e28c248-a230-4124-880c-a8a5a3663d01}
25 | r6external
26 | 10.0.19041.0
27 |
28 |
29 |
30 | Application
31 | true
32 | v142
33 | Unicode
34 |
35 |
36 | Application
37 | false
38 | v142
39 | true
40 | Unicode
41 |
42 |
43 | Application
44 | true
45 | v142
46 | Unicode
47 |
48 |
49 | Application
50 | false
51 | v142
52 | true
53 | Unicode
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 | true
75 |
76 |
77 | false
78 |
79 |
80 | true
81 |
82 |
83 | false
84 |
85 |
86 |
87 | Level3
88 | true
89 | WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)
90 | true
91 |
92 |
93 | Console
94 | true
95 |
96 |
97 |
98 |
99 | Level3
100 | true
101 | true
102 | true
103 | WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)
104 | true
105 |
106 |
107 | Console
108 | true
109 | true
110 | true
111 |
112 |
113 |
114 |
115 | Level3
116 | true
117 | _DEBUG;_CONSOLE;%(PreprocessorDefinitions)
118 | true
119 |
120 |
121 | Console
122 | true
123 |
124 |
125 |
126 |
127 | Level3
128 | true
129 | true
130 | true
131 | NDEBUG;_CONSOLE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)
132 | true
133 | stdcpp20
134 |
135 |
136 | Console
137 | true
138 | true
139 | true
140 |
141 |
142 |
143 |
144 |
145 |
146 |
147 |
148 |
149 |
150 |
151 |
152 |
153 |
--------------------------------------------------------------------------------