Author Topic: Reversing M&B  (Read 1235 times)

0 Members and 1 Guest are viewing this topic.

Seb

  • Relentless Teamkiller
  • **
  • Posts: 72
    • View Profile
    • Aimjunkies.com
Reversing M&B
« on: December 04, 2016, 05:38:08 am »
Hey guys, this is the first post I've ever made on these forums and I just started looking into Mount and Blade: Warband yesterday with no previous info on the game. I just found this site a few hours ago and did some browsing. I've decided to dump what little info I have here, and it would be great if someone could point me in the right direction next. Sorry that it's probably really messy

Code: [Select]
class Interfaces;
class cLocalHud;
class N000000A9;
class cCharacter;
class cConversation;
class cOptions;
class cGraphics;
class cControls;
class cSaveLoad;
class cTerrainGeneration;
class cMenu;
class cStats;
class cGameLog;
class cNotes;
class N000000CF;
class N000000D3;
class N000000D7;
class cProfile;
class cMultiplayerClient;
class cServers;
class N000000E7;
class cBanner;
class Movement;

class Interfaces
{
public:
cLocalHud* LocalHud; //0x0000
cCharacter* Character; //0x0004
cConversation* ConversationWindow; //0x0008
cOptions* Options; //0x000C
cGraphics* Graphics; //0x0010
cControls* Controls; //0x0014
cSaveLoad* SaveLoad; //0x0018
cTerrainGeneration* TerrainGeneration; //0x001C
cMenu* Menu; //0x0020
cStats* Stats; //0x0024
cGameLog* GameLog; //0x0028
cNotes* Notes; //0x002C
char pad_0x0030[0xC]; //0x0030
cProfile* Profile; //0x003C
cMultiplayerClient* MultiplayerClient; //0x0040
cServers* Servers; //0x0044
cBanner* Banner; //0x0048

}; //Size=0x004C

class cLocalHud
{
public:
char pad_0x0000[0x13C]; //0x0000
N000000A9* HudContainer; //0x013C
char pad_0x0140[0x3C]; //0x0140
float CrosshairAlpha1; //0x017C
float CrosshairAlpha2; //0x0180
float CrosshairAlpha3; //0x0184
char pad_0x0188[0x5C]; //0x0188
__int32 Money; //0x01E4
char pad_0x01E8[0x30]; //0x01E8
float Health; //0x0218
char pad_0x021C[0xC]; //0x021C
float Ammo; //0x0228
char pad_0x022C[0x18]; //0x022C

}; //Size=0x0244

class N000000A9
{
public:
char pad_0x0000[0x4]; //0x0000

}; //Size=0x0004

class cCharacter
{
public:
char pad_0x0000[0x4]; //0x0000

}; //Size=0x0004

class cConversation
{
public:
char pad_0x0000[0x4]; //0x0000

}; //Size=0x0004

class cOptions
{
public:
char pad_0x0000[0x4]; //0x0000

}; //Size=0x0004

class cGraphics
{
public:
char pad_0x0000[0x4]; //0x0000

}; //Size=0x0004

class cControls
{
public:
char pad_0x0000[0x4]; //0x0000

}; //Size=0x0004

class cSaveLoad
{
public:
char pad_0x0000[0x4]; //0x0000

}; //Size=0x0004

class cTerrainGeneration
{
public:
char pad_0x0000[0x4]; //0x0000

}; //Size=0x0004

class cMenu
{
public:
char pad_0x0000[0x4]; //0x0000

}; //Size=0x0004

class cStats
{
public:
char pad_0x0000[0x4]; //0x0000

}; //Size=0x0004

class cGameLog
{
public:
char pad_0x0000[0x4]; //0x0000

}; //Size=0x0004

class cNotes
{
public:
char pad_0x0000[0x4]; //0x0000

}; //Size=0x0004

class N000000CF
{
public:
char pad_0x0000[0x4]; //0x0000

}; //Size=0x0004

class N000000D3
{
public:
char pad_0x0000[0x4]; //0x0000

}; //Size=0x0004

class N000000D7
{
public:
char pad_0x0000[0x4]; //0x0000

}; //Size=0x0004

class cProfile
{
public:
char pad_0x0000[0x4]; //0x0000

}; //Size=0x0004

class cMultiplayerClient
{
public:
char pad_0x0000[0x4]; //0x0000

}; //Size=0x0004

class cServers
{
public:
char pad_0x0000[0x4]; //0x0000

}; //Size=0x0004

class N000000E7
{
public:
char pad_0x0000[0x4]; //0x0000

}; //Size=0x0004

class cBanner
{
public:
char pad_0x0000[0x4]; //0x0000

}; //Size=0x0004

class Movement
{
public:
Vector3 Position; //0x0000
char pad_0x000C[0xC]; //0x000C
float SideVelocity; //0x0018
float ForwardVelocity; //0x001C
char pad_0x0020[0x34]; //0x0020
float TickCount; //0x0054
char pad_0x0058[0x4]; //0x0058
__int32 Button; //0x005C
char pad_0x0060[0x8A8]; //0x0060

}; //Size=0x0908


MrMedic

  • MasstKer
  • ********
  • Posts: 8900
  • programmer/dev/software engineer
    • View Profile
Re: Reversing M&B
« Reply #1 on: December 04, 2016, 10:09:43 pm »
Hey guys, this is the first post I've ever made on these forums and I just started looking into Mount and Blade: Warband yesterday with no previous info on the game. I just found this site a few hours ago and did some browsing. I've decided to dump what little info I have here, and it would be great if someone could point me in the right direction next. Sorry that it's probably really messy

Code: [Select]
class Interfaces;
class cLocalHud;
class N000000A9;
class cCharacter;
class cConversation;
class cOptions;
class cGraphics;
class cControls;
class cSaveLoad;
class cTerrainGeneration;
class cMenu;
class cStats;
class cGameLog;
class cNotes;
class N000000CF;
class N000000D3;
class N000000D7;
class cProfile;
class cMultiplayerClient;
class cServers;
class N000000E7;
class cBanner;
class Movement;

class Interfaces
{
public:
   cLocalHud* LocalHud; //0x0000
   cCharacter* Character; //0x0004
   cConversation* ConversationWindow; //0x0008
   cOptions* Options; //0x000C
   cGraphics* Graphics; //0x0010
   cControls* Controls; //0x0014
   cSaveLoad* SaveLoad; //0x0018
   cTerrainGeneration* TerrainGeneration; //0x001C
   cMenu* Menu; //0x0020
   cStats* Stats; //0x0024
   cGameLog* GameLog; //0x0028
   cNotes* Notes; //0x002C
   char pad_0x0030[0xC]; //0x0030
   cProfile* Profile; //0x003C
   cMultiplayerClient* MultiplayerClient; //0x0040
   cServers* Servers; //0x0044
   cBanner* Banner; //0x0048

}; //Size=0x004C

class cLocalHud
{
public:
   char pad_0x0000[0x13C]; //0x0000
   N000000A9* HudContainer; //0x013C
   char pad_0x0140[0x3C]; //0x0140
   float CrosshairAlpha1; //0x017C
   float CrosshairAlpha2; //0x0180
   float CrosshairAlpha3; //0x0184
   char pad_0x0188[0x5C]; //0x0188
   __int32 Money; //0x01E4
   char pad_0x01E8[0x30]; //0x01E8
   float Health; //0x0218
   char pad_0x021C[0xC]; //0x021C
   float Ammo; //0x0228
   char pad_0x022C[0x18]; //0x022C

}; //Size=0x0244

class N000000A9
{
public:
   char pad_0x0000[0x4]; //0x0000

}; //Size=0x0004

class cCharacter
{
public:
   char pad_0x0000[0x4]; //0x0000

}; //Size=0x0004

class cConversation
{
public:
   char pad_0x0000[0x4]; //0x0000

}; //Size=0x0004

class cOptions
{
public:
   char pad_0x0000[0x4]; //0x0000

}; //Size=0x0004

class cGraphics
{
public:
   char pad_0x0000[0x4]; //0x0000

}; //Size=0x0004

class cControls
{
public:
   char pad_0x0000[0x4]; //0x0000

}; //Size=0x0004

class cSaveLoad
{
public:
   char pad_0x0000[0x4]; //0x0000

}; //Size=0x0004

class cTerrainGeneration
{
public:
   char pad_0x0000[0x4]; //0x0000

}; //Size=0x0004

class cMenu
{
public:
   char pad_0x0000[0x4]; //0x0000

}; //Size=0x0004

class cStats
{
public:
   char pad_0x0000[0x4]; //0x0000

}; //Size=0x0004

class cGameLog
{
public:
   char pad_0x0000[0x4]; //0x0000

}; //Size=0x0004

class cNotes
{
public:
   char pad_0x0000[0x4]; //0x0000

}; //Size=0x0004

class N000000CF
{
public:
   char pad_0x0000[0x4]; //0x0000

}; //Size=0x0004

class N000000D3
{
public:
   char pad_0x0000[0x4]; //0x0000

}; //Size=0x0004

class N000000D7
{
public:
   char pad_0x0000[0x4]; //0x0000

}; //Size=0x0004

class cProfile
{
public:
   char pad_0x0000[0x4]; //0x0000

}; //Size=0x0004

class cMultiplayerClient
{
public:
   char pad_0x0000[0x4]; //0x0000

}; //Size=0x0004

class cServers
{
public:
   char pad_0x0000[0x4]; //0x0000

}; //Size=0x0004

class N000000E7
{
public:
   char pad_0x0000[0x4]; //0x0000

}; //Size=0x0004

class cBanner
{
public:
   char pad_0x0000[0x4]; //0x0000

}; //Size=0x0004

class Movement
{
public:
   Vector3 Position; //0x0000
   char pad_0x000C[0xC]; //0x000C
   float SideVelocity; //0x0018
   float ForwardVelocity; //0x001C
   char pad_0x0020[0x34]; //0x0020
   float TickCount; //0x0054
   char pad_0x0058[0x4]; //0x0058
   __int32 Button; //0x005C
   char pad_0x0060[0x8A8]; //0x0060

}; //Size=0x0908


You are on the right track , you should look into what you've called multiclient with more detail , its actually client and multi client BTW not just the multi they have packed it all into one class and you can differentiate dependent on where you get the pointers from , there's a hell of a lot going on in there and its a lot bigger than it is in your dumps.

Also you will need hud if you want to make some type of aim with it as the world to screen is very strange on these games , everything renders at z+ local location then bone mesh isbasically just slapped onto the z POS which is really bad practice as the hit boxes are all over the place the reason being ...ping and sync , dig and you'll see what I mean.
« Last Edit: December 04, 2016, 10:26:35 pm by MrMedic »
EnCoded Message: i3iy9yl8kr2xf3g2Txs3pr6ye3ya7jg5ty2z

https://www.youtube.com/watch?v=62_7-AYfdkQ
you need a paypal account for the private versions.

Website:
http://bit.ly/medic101

Teamspeak 3: 85.236.101.5:10157

Seb

  • Relentless Teamkiller
  • **
  • Posts: 72
    • View Profile
    • Aimjunkies.com
Re: Reversing M&B
« Reply #2 on: December 05, 2016, 02:59:05 am »
Thanks for the advice. I decided to dig deeper into the class and find what I could about the game. I didn't really see much specific to the actual player, but rather to the server and it's current data. I think someone in another thread was asking how to find the server IP? Well it's stated multiple times within that class. Here's an update to what I've found/reversed.

Code: [Select]
class Interfaces;
class cLocalHud;
class N000000A9;
class cCharacter;
class cConversation;
class cOptions;
class cGraphics;
class cControls;
class cSaveLoad;
class cTerrainGeneration;
class cMenu;
class cStats;
class cGameLog;
class cNotes;
class N000000CF;
class N000000D3;
class N000000D7;
class cProfile;
class cMultiplayerClient;
class cServers;
class N000000E7;
class cBanner;
class Movement;
class N00000128;
class N0000016E;
class N00000172;
class N000002BD;
class N000002E0;
class N000002F3;
class N00000308;
class N0000031C;
class N00000336;
class N00000393;
class cServerInfo;
class N0000045E;
class N00000463;
class cAVrglResource;
class N000004AF;
class N000004C2;
class N000004D5;
class N000004D8;
class N000004DD;
class N000004E2;
class N00000528;
class N0000053B;
class N00000560;
class cServerWindow;
class N000005D7;
class cGameWindow;
class N0000063E;
class cPartyWindow;
class N00000669;
class cAVrglMesh;
class cProgressBar;
class N000006EA;
class N000006EE;
class N00000702;
class N00000716;
class cStrategicEnt;
class N0000074D;
class cStrategicEnt2;
class cProgressBar2;
class N00000767;
class cStrategicEnt3;
class N0000076E;

class Interfaces
{
public:
cLocalHud* LocalHud; //0x0000
cCharacter* Character; //0x0004
cConversation* ConversationWindow; //0x0008
cOptions* Options; //0x000C
cGraphics* Graphics; //0x0010
cControls* Controls; //0x0014
cSaveLoad* SaveLoad; //0x0018
cTerrainGeneration* TerrainGeneration; //0x001C
cMenu* Menu; //0x0020
cStats* Stats; //0x0024
cGameLog* GameLog; //0x0028
cNotes* Notes; //0x002C
char pad_0x0030[0xC]; //0x0030
cProfile* Profile; //0x003C
cMultiplayerClient* MultiplayerClient; //0x0040
cServers* Servers; //0x0044
cBanner* Banner; //0x0048
char pad_0x004C[0xC0]; //0x004C

}; //Size=0x010C

class cLocalHud
{
public:
char pad_0x0000[0x13C]; //0x0000
N000000A9* HudContainer; //0x013C
char pad_0x0140[0x3C]; //0x0140
float CrosshairAlpha1; //0x017C
float CrosshairAlpha2; //0x0180
float CrosshairAlpha3; //0x0184
char pad_0x0188[0x5C]; //0x0188
__int32 Money; //0x01E4
char pad_0x01E8[0x30]; //0x01E8
float Health; //0x0218
char pad_0x021C[0xC]; //0x021C
float Ammo; //0x0228
char pad_0x022C[0x18]; //0x022C

}; //Size=0x0244

class N000000A9
{
public:
char pad_0x0000[0x4]; //0x0000

}; //Size=0x0004

class cCharacter
{
public:
char pad_0x0000[0x4]; //0x0000

}; //Size=0x0004

class cConversation
{
public:
char pad_0x0000[0x4]; //0x0000

}; //Size=0x0004

class cOptions
{
public:
char pad_0x0000[0x4]; //0x0000

}; //Size=0x0004

class cGraphics
{
public:
char pad_0x0000[0x4]; //0x0000

}; //Size=0x0004

class cControls
{
public:
char pad_0x0000[0x4]; //0x0000

}; //Size=0x0004

class cSaveLoad
{
public:
char pad_0x0000[0x4]; //0x0000

}; //Size=0x0004

class cTerrainGeneration
{
public:
char pad_0x0000[0x4]; //0x0000

}; //Size=0x0004

class cMenu
{
public:
char pad_0x0000[0x4]; //0x0000

}; //Size=0x0004

class cStats
{
public:
char pad_0x0000[0x4]; //0x0000

}; //Size=0x0004

class cGameLog
{
public:
char pad_0x0000[0x4]; //0x0000

}; //Size=0x0004

class cNotes
{
public:
char pad_0x0000[0x4]; //0x0000

}; //Size=0x0004

class N000000CF
{
public:
char pad_0x0000[0x4]; //0x0000

}; //Size=0x0004

class N000000D3
{
public:
char pad_0x0000[0x4]; //0x0000

}; //Size=0x0004

class N000000D7
{
public:
char pad_0x0000[0x4]; //0x0000

}; //Size=0x0004

class cProfile
{
public:
char pad_0x0000[0x4]; //0x0000

}; //Size=0x0004

class cMultiplayerClient
{
public:
N000002BD* ServerOptions?; //0x0000
char pad_0x0004[0xAC]; //0x0004
cServerInfo* ServerInfo; //0x00B0
char pad_0x00B4[0x88]; //0x00B4
cAVrglMesh* AVrglMesh; //0x013C
cProgressBar* ProgressBar; //0x0140
char pad_0x0144[0x10]; //0x0144
cStrategicEnt* StrategicEnt; //0x0154
char pad_0x0158[0x4]; //0x0158
cStrategicEnt2* StrategicEnt2; //0x015C
cProgressBar2* ProgressBar2; //0x0160
char pad_0x0164[0x4]; //0x0164
cStrategicEnt3* StrategicEnt3; //0x0168
char pad_0x016C[0xC]; //0x016C
char * ServerIP; //0x0178
char pad_0x017C[0x8]; //0x017C
char ServerIP[12]; //0x0184
char pad_0x0190[0x88]; //0x0190
char * Module; //0x0218
char pad_0x021C[0x8]; //0x021C
char Module[8]; //0x0224
char pad_0x022C[0x58]; //0x022C

}; //Size=0x0284

class cServers
{
public:
char pad_0x0000[0x4]; //0x0000

}; //Size=0x0004

class N000000E7
{
public:
char pad_0x0000[0x4]; //0x0000

}; //Size=0x0004

class cBanner
{
public:
char pad_0x0000[0x4]; //0x0000

}; //Size=0x0004

class Movement
{
public:
char pad_0x0000[0xB4]; //0x0000

}; //Size=0x00B4

class N00000128
{
public:
char pad_0x0000[0x4]; //0x0000

}; //Size=0x0004

class N0000016E
{
public:
char pad_0x0000[0x4]; //0x0000

}; //Size=0x0004

class N00000172
{
public:
char pad_0x0000[0x84]; //0x0000

}; //Size=0x0084

class N000002BD
{
public:
char pad_0x0000[0x2C]; //0x0000
char MultiplayerClientInfo[24]; //0x002C
char TextPositionX[16]; //0x0044
char TableSortYOffset[48]; //0x0054
char ServerListX[44]; //0x0084
char ServerListY[44]; //0x00B0
char ServerListSizeX[40]; //0x00DC
char ServerListSizeY[40]; //0x0104
char ServerFileterHeight2[40]; //0x012C
char ClientFilterHeight1[40]; //0x0154
char pad_0x017C[0x1C8]; //0x017C

}; //Size=0x0344

class N000002E0
{
public:
char pad_0x0000[0x44]; //0x0000

}; //Size=0x0044

class N000002F3
{
public:
char pad_0x0000[0x44]; //0x0000

}; //Size=0x0044

class N00000308
{
public:
char pad_0x0000[0x44]; //0x0000

}; //Size=0x0044

class N0000031C
{
public:
char pad_0x0000[0x4]; //0x0000

}; //Size=0x0004

class N00000336
{
public:
char pad_0x0000[0x44]; //0x0000

}; //Size=0x0044

class N00000393
{
public:
char pad_0x0000[0x44]; //0x0000

}; //Size=0x0044

class cServerInfo
{
public:
char pad_0x0000[0x80]; //0x0000
cAVrglResource* AVrglResource; //0x0080
char pad_0x0084[0x38]; //0x0084
char * ServerIP; //0x00BC
char pad_0x00C0[0x8]; //0x00C0
char ServerIP[12]; //0x00C8
char pad_0x00D4[0x88]; //0x00D4
char * ModuleName; //0x015C
char pad_0x0160[0x8]; //0x0160
char ModuleName[8]; //0x0168
char pad_0x0170[0x1EC]; //0x0170
cServerWindow* ServerWindow; //0x035C
char pad_0x0360[0x3C]; //0x0360

}; //Size=0x039C

class N0000045E
{
public:
N00000463* N0000045F; //0x0000
char pad_0x0004[0x8]; //0x0004

}; //Size=0x000C

class N00000463
{
public:
char pad_0x0000[0x8]; //0x0000

}; //Size=0x0008

class cAVrglResource
{
public:
char pad_0x0000[0x8]; //0x0000
char * BeardLOD?; //0x0008
char pad_0x000C[0x8]; //0x000C
char NewLOD[24]; //0x0014
char pad_0x002C[0x78]; //0x002C

}; //Size=0x00A4

class N000004AF
{
public:
N000004C2* N000004B0; //0x0000
N000004DD* N000004B1; //0x0004
N000004D8* N000004B2; //0x0008
char pad_0x000C[0x38]; //0x000C

}; //Size=0x0044

class N000004C2
{
public:
char pad_0x0000[0x44]; //0x0000

}; //Size=0x0044

class N000004D5
{
public:
char pad_0x0000[0x4]; //0x0000

}; //Size=0x0004

class N000004D8
{
public:
char pad_0x0000[0xC]; //0x0000

}; //Size=0x000C

class N000004DD
{
public:
char pad_0x0000[0x4]; //0x0000

}; //Size=0x0004

class N000004E2
{
public:
char pad_0x0000[0x44]; //0x0000

}; //Size=0x0044

class N00000528
{
public:
char pad_0x0000[0x44]; //0x0000

}; //Size=0x0044

class N0000053B
{
public:
char pad_0x0000[0x44]; //0x0000

}; //Size=0x0044

class N00000560
{
public:
char pad_0x0000[0x44]; //0x0000

}; //Size=0x0044

class cServerWindow
{
public:
N000005D7* N000005C5; //0x0000
char pad_0x0004[0x40]; //0x0004

}; //Size=0x0044

class N000005D7
{
public:
char pad_0x0000[0x48]; //0x0000
cGameWindow* GameWindow; //0x0048
char pad_0x004C[0x20]; //0x004C
cPartyWindow* PartyWindow; //0x006C
char pad_0x0070[0x154]; //0x0070

}; //Size=0x01C4

class cGameWindow
{
public:
char pad_0x0000[0xE4]; //0x0000

}; //Size=0x00E4

class N0000063E
{
public:
char pad_0x0000[0x44]; //0x0000

}; //Size=0x0044

class cPartyWindow
{
public:
char pad_0x0000[0x14]; //0x0000

}; //Size=0x0014

class N00000669
{
public:
char pad_0x0000[0x4]; //0x0000

}; //Size=0x0004

class cAVrglMesh
{
public:
char pad_0x0000[0x1C]; //0x0000

}; //Size=0x001C

class cProgressBar
{
public:
char pad_0x0000[0x4]; //0x0000

}; //Size=0x0004

class N000006EA
{
public:
char pad_0x0000[0x4]; //0x0000

}; //Size=0x0004

class N000006EE
{
public:
char pad_0x0000[0x44]; //0x0000

}; //Size=0x0044

class N00000702
{
public:
char pad_0x0000[0x44]; //0x0000

}; //Size=0x0044

class N00000716
{
public:
char pad_0x0000[0x44]; //0x0000

}; //Size=0x0044

class cStrategicEnt
{
public:
char pad_0x0000[0x84]; //0x0000

}; //Size=0x0084

class N0000074D
{
public:
char pad_0x0000[0x4]; //0x0000

}; //Size=0x0004

class cStrategicEnt2
{
public:
char pad_0x0000[0x44]; //0x0000

}; //Size=0x0044

class cProgressBar2
{
public:
char pad_0x0000[0x4]; //0x0000

}; //Size=0x0004

class N00000767
{
public:
char pad_0x0000[0x4]; //0x0000

}; //Size=0x0004

class cStrategicEnt3
{
public:
char pad_0x0000[0x4]; //0x0000

}; //Size=0x0004

class N0000076E
{
public:
char pad_0x0000[0x4]; //0x0000

}; //Size=0x0004


dunnohow

  • Intentional Cheater
  • **
  • Posts: 44
    • View Profile
Re: Reversing M&B
« Reply #3 on: December 06, 2016, 06:08:45 pm »
this is great

Seb

  • Relentless Teamkiller
  • **
  • Posts: 72
    • View Profile
    • Aimjunkies.com
Re: Reversing M&B
« Reply #4 on: December 06, 2016, 08:05:28 pm »
this is great

Glad someone is benefitting from this

MrMedic

  • MasstKer
  • ********
  • Posts: 8900
  • programmer/dev/software engineer
    • View Profile
Re: Reversing M&B
« Reply #5 on: December 07, 2016, 01:37:15 am »
there is a 'kind of' a 3rd party sdk for warband made by some fans of the game , some type of addon module system which i forget the name of right now , google it and it will help you with the reversing.

btw good work , keep it up.  :smile
EnCoded Message: i3iy9yl8kr2xf3g2Txs3pr6ye3ya7jg5ty2z

https://www.youtube.com/watch?v=62_7-AYfdkQ
you need a paypal account for the private versions.

Website:
http://bit.ly/medic101

Teamspeak 3: 85.236.101.5:10157

Seb

  • Relentless Teamkiller
  • **
  • Posts: 72
    • View Profile
    • Aimjunkies.com
Re: Reversing M&B
« Reply #6 on: December 07, 2016, 07:26:12 am »
there is a 'kind of' a 3rd party sdk for warband made by some fans of the game , some type of addon module system which i forget the name of right now , google it and it will help you with the reversing.

btw good work , keep it up.  :smile

Don't really want to use an SDK like that since I'll be doing it more memory based.
I still can't find the damn entity list or the local player, the health which I'm grabbing is from the HUD as well as the ammo.
Tell me what you think though.

Mercenary_Frank

  • Online Villain
  • ***
  • Posts: 177
    • View Profile
Re: Reversing M&B
« Reply #7 on: December 08, 2016, 01:20:09 am »
there is a 'kind of' a 3rd party sdk for warband made by some fans of the game , some type of addon module system which i forget the name of right now , google it and it will help you with the reversing.

btw good work , keep it up.  :smile

I think he is asking if you can provide him with some paste here let me help him

LocalPlayer: 0x03137044

You gotta spoonfeed these kids a bit Will you know that :p

MrMedic

  • MasstKer
  • ********
  • Posts: 8900
  • programmer/dev/software engineer
    • View Profile
Re: Reversing M&B
« Reply #8 on: December 08, 2016, 03:03:46 am »
there is a 'kind of' a 3rd party sdk for warband made by some fans of the game , some type of addon module system which i forget the name of right now , google it and it will help you with the reversing.

btw good work , keep it up.  :smile

Don't really want to use an SDK like that since I'll be doing it more memory based.
I still can't find the damn entity list or the local player, the health which I'm grabbing is from the HUD as well as the ammo.
Tell me what you think though.


Looks good Seb , great work well done. :icon_thumbsup

keep working on it , heres myne.


« Last Edit: December 08, 2016, 03:52:13 am by MrMedic »
EnCoded Message: i3iy9yl8kr2xf3g2Txs3pr6ye3ya7jg5ty2z

https://www.youtube.com/watch?v=62_7-AYfdkQ
you need a paypal account for the private versions.

Website:
http://bit.ly/medic101

Teamspeak 3: 85.236.101.5:10157

Seb

  • Relentless Teamkiller
  • **
  • Posts: 72
    • View Profile
    • Aimjunkies.com
Re: Reversing M&B
« Reply #9 on: December 08, 2016, 08:11:18 am »
there is a 'kind of' a 3rd party sdk for warband made by some fans of the game , some type of addon module system which i forget the name of right now , google it and it will help you with the reversing.

btw good work , keep it up.  :smile

I think he is asking if you can provide him with some paste here let me help him

LocalPlayer: 0x03137044

You gotta spoonfeed these kids a bit Will you know that :p

Didn't really want some copy paste, but I do appreciate it. I just wanted to know a solid method of how to find the local player since scanning for health or ammo also leads to the HUD.

@MrMedic, Thanks for the reply, I'll try to reverse W2S within the game or just re-write my own. Also, I'm assuming the entity list is also really close to the Local pointer which Frank provided. If all the offsets are the same and the game isn't fucked in that way then I'll put up my GUI and make a ESP/Wallhack. Do you know if 100% accuracy is possible? I tried to do scanning for the actual accuracy depending upon the cross hair and how it spreads out. I found a good use of the crosshair is to also check if the player is using a melee or ranged weapon, just check if the alpha of the crosshair > 0 and they're using a ranged weapon.

MrMedic

  • MasstKer
  • ********
  • Posts: 8900
  • programmer/dev/software engineer
    • View Profile
Re: Reversing M&B
« Reply #10 on: December 08, 2016, 08:37:27 pm »
Code: (asm) [Select]
sub esp,000000A4 //<< spawn function.
push ebx
push ebp
push esi
mov esi,[esp+000000EC]
push edi
mov edi,ecx
mov [esp+1C],edi
cmp esi,-01
jne 114AF8
lea ebx,[edi+04]
mov ecx,ebx
call 108030
mov ecx,[ebx+1C]
mov esi,eax
mov edx,esi
and edx,0F
imul edx,edx,00006240 //  .. idiots
shr eax,04
mov eax,[ecx+eax*4]
lea ecx,[eax+edx]
mov edx,[ecx] //<< Local_Client

Have fun. :icon_thumbsup
EnCoded Message: i3iy9yl8kr2xf3g2Txs3pr6ye3ya7jg5ty2z

https://www.youtube.com/watch?v=62_7-AYfdkQ
you need a paypal account for the private versions.

Website:
http://bit.ly/medic101

Teamspeak 3: 85.236.101.5:10157

Mercenary_Frank

  • Online Villain
  • ***
  • Posts: 177
    • View Profile
Re: Reversing M&B
« Reply #11 on: December 09, 2016, 12:22:57 am »
Seb, how did you discover the names of those classes?

btw mrmedic how did you do that crazy bot shit again? man you make good cheats...


Seb

  • Relentless Teamkiller
  • **
  • Posts: 72
    • View Profile
    • Aimjunkies.com
Re: Reversing M&B
« Reply #12 on: December 09, 2016, 01:51:42 am »
Seb, how did you discover the names of those classes?

btw mrmedic how did you do that crazy bot shit again? man you make good cheats...

It's more or less guessing. The 'Interfaces' Class, which I named, contains a large number of pointer, when I open them, the first pointer has the name sort of, and I just name them based off of that.

For example, my Character Class:

MrMedic

  • MasstKer
  • ********
  • Posts: 8900
  • programmer/dev/software engineer
    • View Profile
Re: Reversing M&B
« Reply #13 on: December 09, 2016, 10:59:28 pm »
Seb, how did you discover the names of those classes?

btw mrmedic man you make good cheats...

I guessed.


yes and theres a class system ..you may want to look for it. check the exe and look for strings.

you will also find some of the sourcecode for the game inside the exe in text format.
EnCoded Message: i3iy9yl8kr2xf3g2Txs3pr6ye3ya7jg5ty2z

https://www.youtube.com/watch?v=62_7-AYfdkQ
you need a paypal account for the private versions.

Website:
http://bit.ly/medic101

Teamspeak 3: 85.236.101.5:10157

Mercenary_Frank

  • Online Villain
  • ***
  • Posts: 177
    • View Profile
Re: Reversing M&B
« Reply #14 on: December 10, 2016, 02:29:50 am »
Can't you dumb VTables with the MACos binaries?