I thought I'd release my hacks for planetside. I am using MemoryHackingSoftware by L. Spiro.
Here is what I'm releasing:
Code:
//Static pointers: X Position: [[[[[planetside.exe+0x00908CB4]+0x4C]+0x1F8]+0x10]+0x14]+0x80 Y Position: [[[[[planetside.exe+0x00908CB4]+0x4C]+0x1F8]+0x10]+0x14]+0x84 Z Position: [[[[[planetside.exe+0x00908CB4]+0x4C]+0x1F8]+0x10]+0x14]+0x88 CoF: [[[[planetside.exe+0x9076B0]+0x120]+0x64]+0x50]+0x19C Aircraft Afterburners: [[[[planetside.exe+0x9076B0]+0x11C]+0x58]+0x114]+0x524 Camera Distance: [[planetside.exe+0x9076B0]+0x564]+0xE0
Code:
extern struct PlayerX { BYTE bBuffer[0x4C]; struct { BYTE bBuffer[0x1F8]; struct { BYTE bBuffer[0x10]; struct { BYTE bBuffer[0x14]; struct { BYTE bBuffer[0x80]; FLOAT fValue; } * poObj; } * poObj; } * poObj; }* poObj; } * poX = { "", 0x00D08CB4 }; extern struct PlayerY { BYTE bBuffer[0x4C]; struct { BYTE bBuffer[0x1F8]; struct { BYTE bBuffer[0x10]; struct { BYTE bBuffer[0x14]; struct { BYTE bBuffer[0x84]; FLOAT fValue; } * poObj; } * poObj; } * poObj; }* poObj; } * poY = { "", 0x00D08CB4 }; extern struct PlayerZ { BYTE bBuffer[0x4C]; struct { BYTE bBuffer[0x1F8]; struct { BYTE bBuffer[0x10]; struct { BYTE bBuffer[0x14]; struct { BYTE bBuffer[0x88]; FLOAT fValue; } * poObj; } * poObj; } * poObj; }* poObj; } * poZ = { "", 0x00D08CB4 }; typedef struct VECTOR3 { FLOAT x; FLOAT y; FLOAT z; } * LPVECTOR3; typedef struct VECTOR3 VECTOR3; VECTOR3 SavedPos1; VECTOR3 SavedPos2; void On_HK_0( DWORD dw1, DWORD dw2 ) //Decrease X pos { poZ->poObj->poObj->poObj->poObj->fValue -= 10.0; if (poZ->poObj->poObj->poObj->poObj->fValue < 0) poZ->poObj->poObj->poObj->poObj->fValue = 0; } void On_HK_1( DWORD dw1, DWORD dw2 ) //Increase X pos { poZ->poObj->poObj->poObj->poObj->fValue += 10.0; } void On_HK_2( DWORD dw1, DWORD dw2 ) //Save current position to SavedPos1 { SavedPos1.x = poX->poObj->poObj->poObj->poObj->fValue; SavedPos1.y = poY->poObj->poObj->poObj->poObj->fValue; SavedPos1.z = poZ->poObj->poObj->poObj->poObj->fValue; } void On_HK_3( DWORD dw1, DWORD dw2 ) //Teleport to SavedPos1 { poX->poObj->poObj->poObj->poObj->fValue = SavedPos1.x; poY->poObj->poObj->poObj->poObj->fValue = SavedPos1.y; poZ->poObj->poObj->poObj->poObj->fValue = SavedPos1.z; } void On_HK_4( DWORD dw1, DWORD dw2 ) //Save current position to SavedPos2 { SavedPos2.x = poX->poObj->poObj->poObj->poObj->fValue; SavedPos2.y = poY->poObj->poObj->poObj->poObj->fValue; SavedPos2.z = poZ->poObj->poObj->poObj->poObj->fValue; } void On_HK_5( DWORD dw1, DWORD dw2 ) //Teleport to SavedPos2 { poX->poObj->poObj->poObj->poObj->fValue = SavedPos2.x; poY->poObj->poObj->poObj->poObj->fValue = SavedPos2.y; poZ->poObj->poObj->poObj->poObj->fValue = SavedPos2.z; } void On_HK_6( DWORD dw1, DWORD dw2 ) //Increase Y position { poY->poObj->poObj->poObj->poObj->fValue += 5.0; } void On_HK_7( DWORD dw1, DWORD dw2 ) //Decrease Y position { poY->poObj->poObj->poObj->poObj->fValue -= 5.0; if (poZ->poObj->poObj->poObj->poObj->fValue < 0) poZ->poObj->poObj->poObj->poObj->fValue = 0; } void On_HK_8( DWORD dw1, DWORD dw2 ) //Increase X position { poX->poObj->poObj->poObj->poObj->fValue += 5.0; } void On_HK_9( DWORD dw1, DWORD dw2 ) //Decrease X position { poX->poObj->poObj->poObj->poObj->fValue -= 5.0; if (poZ->poObj->poObj->poObj->poObj->fValue < 0) poZ->poObj->poObj->poObj->poObj->fValue = 0; }
CoF Addresses to NOP/EIP Skip: 0x0090867F & 0x00908DAE (NOP 6 bytes or EIP skip 6 bytes)
Infinite AB: 0x00662D41 (NOP 2 bytes or EIP skip 2 bytes)
Cloaker De-cloaker: 0x006AE6E0 (NOP 2 bytes or EIP skip 2 bytes)
AMS De-cloaker: 0x0059A993 (JMP or EIP skip to 0x0059AA4B)
For those who want to use MHS's Auto-Assemble or make your own trainer, here are the byte arrays:
Code:
PBYTE bCoF1[] = { 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, }; // 0x0090867F. PBYTE bCoF2[] = { 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, }; // 0x00908DAE. PBYTE bInfAB[] = { 0x90, 0x90, }; // 0x00662D41. PBYTE bCloakers[] = { 0x90, 0x90, }; // 0x006AE6E0. PBYTE bAMSes[] = { 0xEB, 0xFE, 0x90, 0x90, }; // 0x0059A993.
Code:
planetside.exe+0x0050867F : ;CoF 1 nop nop nop nop nop nop planetside.exe+0x00508DAE : ;CoF 2 nop nop nop nop nop nop planetside.exe+0x00262D41 : ;Inf. AB nop nop planetside.exe+0x002AE6E0 : ;Cloakers nop nop planetside.exe+0x0019A993 : ;AMSes jmp 0x0059AA4B nop nop
I will NOT teach you or show you how to use MHS, this post is designed for the other hackers out there who want to improve upon or use this. This is my last work on PS. I didn't release all of my hacks mainly because it's my secret as to how I did it and I don't want to give away too much.
In any event, enjoy! I hope SOE learns how to code better in the future, but PS is dying anyways. Peak times are only ~300 players... boo!
***** As with ANY code I release, this is Open Source and not to be used for monetary profit *****