Skip to content

Commit

Permalink
Plugins
Browse files Browse the repository at this point in the history
  • Loading branch information
davidebeatrici committed Nov 12, 2017
1 parent 94ddd49 commit 7bb33c2
Show file tree
Hide file tree
Showing 44 changed files with 310 additions and 314 deletions.
6 changes: 3 additions & 3 deletions plugins/aoc/aoc.cpp
Expand Up @@ -3,11 +3,11 @@
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.

#include "../mumble_plugin_win32_32bit.h"
#include "../mumble_plugin_win32.h"

using namespace std;

procptr32_t posptr, rotptr, stateptr, hostptr;
procptr_t posptr, rotptr, stateptr, hostptr;

static bool calcout(float *pos, float *rot, float *opos, float *front, float *top) {
float h = rot[0];
Expand Down Expand Up @@ -97,7 +97,7 @@ static int trylock(const std::multimap<std::wstring, unsigned long long int> &pi
if (! initialize(pids, L"hl2.exe", L"client.dll"))
return false;

procptr32_t mod_engine=getModuleAddr(L"engine.dll");
procptr_t mod_engine=getModuleAddr(L"engine.dll");
if (!mod_engine)
return false;

Expand Down
10 changes: 5 additions & 5 deletions plugins/arma2/arma2.cpp
Expand Up @@ -3,9 +3,9 @@
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.

#include "../mumble_plugin_win32_32bit.h"
#include "../mumble_plugin_win32.h"

procptr32_t posptr, frontptr, topptr;
procptr_t posptr, frontptr, topptr;

static int fetch(float *avatar_pos, float *avatar_front, float *avatar_top, float *camera_pos, float *camera_front, float *camera_top, std::string &, std::wstring &) {
for (int i=0;i<3;i++)
Expand Down Expand Up @@ -92,11 +92,11 @@ static int trylock(const std::multimap<std::wstring, unsigned long long int> &pi
if (!pModule)
*/

procptr32_t ptr1 = peekProc<procptr32_t>(0x00C500FC);
procptr_t ptr1 = peekProcPtr(0x00C500FC);

procptr32_t ptr2 = peekProc<procptr32_t>(ptr1 + 0x88);
procptr_t ptr2 = peekProcPtr(ptr1 + 0x88);

procptr32_t base = ptr2 + 0x10;
procptr_t base = ptr2 + 0x10;

posptr = base + 0x18;
frontptr = base;
Expand Down
40 changes: 20 additions & 20 deletions plugins/bf1/bf1.cpp
Expand Up @@ -3,7 +3,7 @@
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.

#include "../mumble_plugin_win32_64bit.h" // Include standard plugin header.
#include "../mumble_plugin_win32.h" // Include standard plugin header.
#include "../mumble_plugin_utils.h" // Include plugin header for special functions, like "escape".

static int fetch(float *avatar_pos, float *avatar_front, float *avatar_top, float *camera_pos, float *camera_front, float *camera_top, std::string &context, std::wstring &identity) {
Expand All @@ -16,51 +16,51 @@ static int fetch(float *avatar_pos, float *avatar_front, float *avatar_top, floa
BYTE squad, squad_leader;

// State pointers
procptr64_t state_base = peekProc<procptr64_t>(pModule + 0x33DBD08);
procptr_t state_base = peekProcPtr(pModule + 0x33DBD08);
if (!state_base) return false;
procptr64_t state_offset_0 = peekProc<procptr64_t>(state_base + 0x5F0);
procptr_t state_offset_0 = peekProcPtr(state_base + 0x5F0);
if (!state_offset_0) return false;
procptr64_t state_offset_1 = peekProc<procptr64_t>(state_offset_0 + 0x488);
procptr_t state_offset_1 = peekProcPtr(state_offset_0 + 0x488);
if (!state_offset_1) return false;
procptr64_t state_offset_2 = peekProc<procptr64_t>(state_offset_1 + 0x8);
procptr_t state_offset_2 = peekProcPtr(state_offset_1 + 0x8);
if (!state_offset_2) return false;
procptr64_t state_offset_3 = peekProc<procptr64_t>(state_offset_2 + 0x8);
procptr_t state_offset_3 = peekProcPtr(state_offset_2 + 0x8);
if (!state_offset_3) return false;

// Camera pointer
procptr64_t camera_base = peekProc<procptr64_t>(pModule + 0x368E828);
procptr_t camera_base = peekProcPtr(pModule + 0x368E828);
if (!camera_base) return false;

// Server name pointers
procptr64_t server_name_base = peekProc<procptr64_t>(pModule + 0x3103A38);
procptr_t server_name_base = peekProcPtr(pModule + 0x3103A38);
if (!server_name_base) return false;
procptr64_t server_name_offset_0 = peekProc<procptr64_t>(server_name_base + 0x738);
procptr_t server_name_offset_0 = peekProcPtr(server_name_base + 0x738);
if (!server_name_offset_0) return false;
procptr64_t server_name_offset_1 = peekProc<procptr64_t>(server_name_offset_0 + 0x370);
procptr_t server_name_offset_1 = peekProcPtr(server_name_offset_0 + 0x370);
if (!server_name_offset_1) return false;
procptr64_t server_name_offset_2 = peekProc<procptr64_t>(server_name_offset_1 + 0x10);
procptr_t server_name_offset_2 = peekProcPtr(server_name_offset_1 + 0x10);
if (!server_name_offset_2) return false;

// Team pointers
procptr64_t team_base = peekProc<procptr64_t>(pModule + 0x36CC128);
procptr_t team_base = peekProcPtr(pModule + 0x36CC128);
if (!team_base) return false;
procptr64_t team_offset_0 = peekProc<procptr64_t>(team_base + 0x20);
procptr_t team_offset_0 = peekProcPtr(team_base + 0x20);
if (!team_offset_0) return false;
procptr64_t team_offset_1 = peekProc<procptr64_t>(team_offset_0 + 0x648);
procptr_t team_offset_1 = peekProcPtr(team_offset_0 + 0x648);
if (!team_offset_1) return false;
procptr64_t team_offset_2 = peekProc<procptr64_t>(team_offset_1 + 0xF8);
procptr_t team_offset_2 = peekProcPtr(team_offset_1 + 0xF8);
if (!team_offset_2) return false;

// Squad pointers
procptr64_t squad_base = peekProc<procptr64_t>(pModule + 0x31C3E40);
procptr_t squad_base = peekProcPtr(pModule + 0x31C3E40);
if (!squad_base) return false;
procptr64_t squad_offset_0 = peekProc<procptr64_t>(squad_base + 0x30);
procptr_t squad_offset_0 = peekProcPtr(squad_base + 0x30);
if (!squad_offset_0) return false;
procptr64_t squad_offset_1 = peekProc<procptr64_t>(squad_offset_0 + 0x578);
procptr_t squad_offset_1 = peekProcPtr(squad_offset_0 + 0x578);
if (!squad_offset_1) return false;
procptr64_t squad_offset_2 = peekProc<procptr64_t>(squad_offset_1 + 0xC0);
procptr_t squad_offset_2 = peekProcPtr(squad_offset_1 + 0xC0);
if (!squad_offset_2) return false;
procptr64_t squad_offset_3 = peekProc<procptr64_t>(squad_offset_2 + 0x58);
procptr_t squad_offset_3 = peekProcPtr(squad_offset_2 + 0x58);
if (!squad_offset_3) return false;

// Peekproc and assign game addresses to our containers, so we can retrieve positional data
Expand Down
8 changes: 4 additions & 4 deletions plugins/bf1942/bf1942.cpp
Expand Up @@ -3,9 +3,9 @@
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.

#include "../mumble_plugin_win32_32bit.h"
#include "../mumble_plugin_win32.h"

procptr32_t faceptr, topptr;
procptr_t faceptr, topptr;
//BYTE *stateptr;
//BYTE *contextptr;

Expand Down Expand Up @@ -56,8 +56,8 @@ static int trylock(const std::multimap<std::wstring, unsigned long long int> &pi
if (! initialize(pids, L"BF1942.exe"))
return false;

procptr32_t ptr1 = peekProc<procptr32_t>(0x009A9468);
procptr32_t ptr2 = peekProc<procptr32_t>(ptr1 + 0x98);
procptr_t ptr1 = peekProcPtr(0x009A9468);
procptr_t ptr2 = peekProcPtr(ptr1 + 0x98);

faceptr = ptr2 + 0x5C;
topptr = ptr2 + 0x4C;
Expand Down
40 changes: 20 additions & 20 deletions plugins/bf2/bf2.cpp
Expand Up @@ -3,41 +3,41 @@
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.

#include "../mumble_plugin_win32_32bit.h"
#include "../mumble_plugin_win32.h"
using namespace std;


bool ptr_chain_valid = false;

// Modules
procptr32_t pmodule_bf2, pmodule_renddx9;
procptr_t pmodule_bf2, pmodule_renddx9;

// Magic ptrs
procptr32_t const login_ptr = 0x30058642;
procptr32_t const state_ptr = 0x00A1D0A8;
procptr_t const login_ptr = 0x30058642;
procptr_t const state_ptr = 0x00A1D0A8;

// Vector ptrs
procptr32_t pos_ptr, face_ptr, top_ptr;
procptr_t pos_ptr, face_ptr, top_ptr;

// Context ptrs
procptr32_t const ipport_ptr = 0x009A80B8;
procptr_t const ipport_ptr = 0x009A80B8;

// Identity ptrs
procptr32_t commander_ptr, squad_leader_ptr, squad_state_ptr, team_state_ptr, voip_ptr, voip_com_ptr, target_squad_ptr;
procptr_t commander_ptr, squad_leader_ptr, squad_state_ptr, team_state_ptr, voip_ptr, voip_com_ptr, target_squad_ptr;

inline bool resolve_ptrs() {
pos_ptr = face_ptr = top_ptr = commander_ptr = squad_leader_ptr = squad_state_ptr = team_state_ptr = voip_ptr = voip_com_ptr = target_squad_ptr = 0;
//
// Resolve all pointer chains to the values we want to fetch
//

procptr32_t base_bf2audio = pModule + 0x4645c;
procptr32_t base_bf2audio_2 = peekProc<procptr32_t>(base_bf2audio);
procptr_t base_bf2audio = pModule + 0x4645c;
procptr_t base_bf2audio_2 = peekProcPtr(base_bf2audio);
if (!base_bf2audio_2) return false;

pos_ptr = peekProc<procptr32_t>(base_bf2audio_2 + 0xb4);
face_ptr = peekProc<procptr32_t>(base_bf2audio_2 + 0xb8);
top_ptr = peekProc<procptr32_t>(base_bf2audio_2 + 0xbc);
pos_ptr = peekProcPtr(base_bf2audio_2 + 0xb4);
face_ptr = peekProcPtr(base_bf2audio_2 + 0xb8);
top_ptr = peekProcPtr(base_bf2audio_2 + 0xbc);
if (!pos_ptr || !face_ptr || !top_ptr) return false;

/*
Expand All @@ -59,34 +59,34 @@ inline bool resolve_ptrs() {
Com. VoiP state: BF2.exe+005A4DA0 -> 4E BYTE 1 is VoiP on commander channel active (held down)
Target squad state: RendDX9.dll+00266D84 -> C0 -> C0 -> 40 -> AC BYTE 1 is Alpha squad, 2 Bravo... selected on commander screen
*/
procptr32_t base_renddx9 = peekProc<procptr32_t>(pmodule_renddx9 + 0x00244AE0);
procptr_t base_renddx9 = peekProcPtr(pmodule_renddx9 + 0x00244AE0);
if (!base_renddx9) return false;

procptr32_t base_renddx9_2 = peekProc<procptr32_t>(base_renddx9 + 0x60);
procptr_t base_renddx9_2 = peekProcPtr(base_renddx9 + 0x60);
if (!base_renddx9_2) return false;

commander_ptr = base_renddx9_2 + 0x110;
squad_leader_ptr = base_renddx9_2 + 0x111;
squad_state_ptr = base_renddx9_2 + 0x10C;

procptr32_t base_bf2 = peekProc<procptr32_t>(pmodule_bf2 + 0x0058734C);
procptr_t base_bf2 = peekProcPtr(pmodule_bf2 + 0x0058734C);
if (!base_bf2) return false;

team_state_ptr = base_bf2 + 0x239;

procptr32_t base_voip = peekProc<procptr32_t>(pmodule_bf2 + 0x005A4DA0);
procptr_t base_voip = peekProcPtr(pmodule_bf2 + 0x005A4DA0);
if (!base_voip) return false;

voip_ptr = base_voip + 0x61;
voip_com_ptr = base_voip + 0x4E;

procptr32_t base_target_squad = peekProc<procptr32_t>(pmodule_renddx9 + 0x00266D84);
procptr_t base_target_squad = peekProcPtr(pmodule_renddx9 + 0x00266D84);
if (!base_target_squad) return false;
procptr32_t base_target_squad_2 = peekProc<procptr32_t>(base_target_squad + 0xC0);
procptr_t base_target_squad_2 = peekProcPtr(base_target_squad + 0xC0);
if (!base_target_squad_2) return false;
procptr32_t base_target_squad_3 = peekProc<procptr32_t>(base_target_squad_2 + 0xC0);
procptr_t base_target_squad_3 = peekProcPtr(base_target_squad_2 + 0xC0);
if (!base_target_squad_3) return false;
procptr32_t base_target_squad_4 = peekProc<procptr32_t>(base_target_squad_3 + 0x40);
procptr_t base_target_squad_4 = peekProcPtr(base_target_squad_3 + 0x40);
if (!base_target_squad_4) return false;

target_squad_ptr = base_target_squad_4 + 0xAC;
Expand Down
22 changes: 11 additions & 11 deletions plugins/bf2142/bf2142.cpp
Expand Up @@ -3,11 +3,11 @@
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.

#include "../mumble_plugin_win32_32bit.h" // Include standard plugin header.
#include "../mumble_plugin_win32.h" // Include standard plugin header.
#include "../mumble_plugin_utils.h" // Include plugin header for special functions, like "escape".

// Variable to contain module's addresses
procptr32_t RendDX9 = 0;
procptr_t RendDX9 = 0;


static int fetch(float *avatar_pos, float *avatar_front, float *avatar_top, float *camera_pos, float *camera_front, float *camera_top, std::string &context, std::wstring &identity) {
Expand All @@ -21,37 +21,37 @@ static int fetch(float *avatar_pos, float *avatar_front, float *avatar_top, floa

// Server name pointers
// Doubles as an in-server state variable (NULL if not in a game)
procptr32_t server_offset_0 = peekProc<procptr32_t>(pModule + 0x61B5D8);
procptr_t server_offset_0 = peekProcPtr(pModule + 0x61B5D8);
if (!server_offset_0) {
context.clear(); // Clear context
identity.clear(); // Clear identity

return true; // This tells Mumble to ignore all vectors.
}

procptr32_t server_offset_1 = peekProc<procptr32_t>(server_offset_0 + 0x108);
procptr_t server_offset_1 = peekProcPtr(server_offset_0 + 0x108);
if (!server_offset_1) return false;

// Team ID pointers
procptr32_t team_offset_0 = peekProc<procptr32_t>(pModule + 0x624430);
procptr_t team_offset_0 = peekProcPtr(pModule + 0x624430);
if (!team_offset_0) return false;
procptr32_t team_offset_1 = peekProc<procptr32_t>(team_offset_0 + 0x1B4);
procptr_t team_offset_1 = peekProcPtr(team_offset_0 + 0x1B4);
if (!team_offset_1) return false;

// Commander, SquadLeader, SquadID base pointers
procptr32_t role_offset_0 = peekProc<procptr32_t>(pModule + 0x685228);
procptr_t role_offset_0 = peekProcPtr(pModule + 0x685228);
if (!role_offset_0) return false;
procptr32_t role_offset_1 = peekProc<procptr32_t>(role_offset_0 + 0x6C);
procptr_t role_offset_1 = peekProcPtr(role_offset_0 + 0x6C);
if (!role_offset_1) return false;

// Tactical pointers
procptr32_t tactical_offset_0 = peekProc<procptr32_t>(pModule + 0x72D148);
procptr_t tactical_offset_0 = peekProcPtr(pModule + 0x72D148);
if (!tactical_offset_0) return false;
procptr32_t tactical_offset_1 = peekProc<procptr32_t>(tactical_offset_0 + 0xE4);
procptr_t tactical_offset_1 = peekProcPtr(tactical_offset_0 + 0xE4);
if (!tactical_offset_1) return false;

// VoiP pointers
procptr32_t voip_offset_0 = peekProc<procptr32_t>(pModule + 0x620D30);
procptr_t voip_offset_0 = peekProcPtr(pModule + 0x620D30);
if (!voip_offset_0) return false;

// Peekproc and assign game addresses to our containers, so we can retrieve positional data
Expand Down
24 changes: 12 additions & 12 deletions plugins/bf3/bf3.cpp
Expand Up @@ -36,22 +36,22 @@
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/

#include "../mumble_plugin_win32_32bit.h"
#include "../mumble_plugin_win32.h"
static bool ptr_chain_valid = false;

// Magic ptrs
static procptr32_t const state_ptr = 0x238ABDC;
static procptr_t const state_ptr = 0x238ABDC;

// Vector ptrs
static procptr32_t const avatar_pos_ptr = 0x0238AB70;
static procptr32_t const avatar_front_ptr = 0x0238ABA0;
static procptr32_t const avatar_top_ptr = 0x0238AB90;
static procptr_t const avatar_pos_ptr = 0x0238AB70;
static procptr_t const avatar_front_ptr = 0x0238ABA0;
static procptr_t const avatar_top_ptr = 0x0238AB90;

// Context ptrs
static procptr32_t const ipport_ptr = 0x0235DB90;
static procptr_t const ipport_ptr = 0x0235DB90;

// Identity ptrs
static procptr32_t team_state_ptr, squad_state_ptr, squad_lead_state_ptr;
static procptr_t team_state_ptr, squad_state_ptr, squad_lead_state_ptr;

// Offsets
static const int base_offset = 0x01EF25C4;
Expand Down Expand Up @@ -100,17 +100,17 @@ inline bool resolve_ptrs() {
Team state: BF3.exe+0x01EF25C4 + 0x1C + 0xBC + 0x31C BYTE 1 is blufor (US team, for example), 2 is opfor (RU), 0 is probably upcoming spec mode
*/

procptr32_t base_bf3 = peekProc<procptr32_t>(pModule + base_offset);
procptr_t base_bf3 = peekProcPtr(pModule + base_offset);
if (!base_bf3)
return false;

procptr32_t offset_ptr1 = peekProc<procptr32_t>(base_bf3 + identity_offset1);
procptr_t offset_ptr1 = peekProcPtr(base_bf3 + identity_offset1);
if (!offset_ptr1) return false;
procptr32_t offset_ptr2 = peekProc<procptr32_t>(offset_ptr1 + identity_offset2);
procptr_t offset_ptr2 = peekProcPtr(offset_ptr1 + identity_offset2);
if (!offset_ptr2) return false;
procptr32_t offset_ptr3 = peekProc<procptr32_t>(offset_ptr2 + identity_offset3);
procptr_t offset_ptr3 = peekProcPtr(offset_ptr2 + identity_offset3);
if (!offset_ptr3) return false;
procptr32_t offset_ptr4 = peekProc<procptr32_t>(offset_ptr3 + identity_offset4);
procptr_t offset_ptr4 = peekProcPtr(offset_ptr3 + identity_offset4);
if (!offset_ptr4) return false;

squad_state_ptr = offset_ptr4 + squad_state_offset;
Expand Down

0 comments on commit 7bb33c2

Please sign in to comment.