- UID
- 195926
- 帖子
- 264
- 主題
- 16
- 精華
- 0
- 積分
- 32
- 楓幣
- 1201
- 威望
- 30
- 存款
- 0
- 贊助金額
- 0
- 推廣
- 0
- GP
- 42
- 閱讀權限
- 10
- 在線時間
- 43 小時
- 註冊時間
- 2017-7-10
- 最後登入
- 2024-12-17
|
本帖最後由 易南河 於 2020-3-9 10:06 編輯
這不是 Copy & Paste
純分享個人經驗與 Reverse Engineering 的成果,供想對這遊戲做點事情的人用 (想學的,YT上許多影片)
分享Struct資訊包含了目前我發布的免費Ironsight輔助未放上的功能
額外補充Ironsight使用的引擎為 "Iron Engine" 屬於 Wiple Games 自主開發的獨立遊戲引擎
故網路上的相關文獻資料與UE3,UE4相較為少,但並非沒有。
以下分享Struct
看得懂的人歡迎拿去用,
看不懂想學如具備有基本常識與知識歡迎留言,
我接受不懂得詢問,不接受衝動的又刻意來留言攻擊的,還請各位大哥嘴下留情。
以下三個為主要且需要用到的資訊。
cPlayer Pattern :
C7 05 ?? ?? ?? ?? ?? ?? ?? ??68 ?? ?? ?? ?? 0F 11 05 ?? ?? ?? ?? C7 05 ?? ?? ?? ?? ?? ?? ?? ?? C6 05 ?? ?? ?? ?? ??
cRender Pattern :
8B 0D ?? ?? ?? ?? 8D 44 24 18 50
cMatrix :
接著就是Structs部分 :
cPlayer
class Player
{
public:
Table* p_Table() { return *(Table**)(this + 0x4); }
Actor* p_LocalOwner() { return *(Actor**)(this + 0x8); }
};
pTable
class Table
{
public:
char space[0x14];
Actor** Players;
};
Actor
class Actor
{
public:
char pad_0000[8]; //0x0000
D3DXVECTOR3 Position; //0x0008
char pad_0014[48]; //0x0014
float Health; //0x0044
char pad_0048[40]; //0x0048
class WeaponPtr *WeapPtr; //0x0070
char pad_0074[116]; //0x0074
int32_t Input_Fire; //0x00E8
char pad_00EC[144]; //0x00EC
float VirtualJump; //0x017C
char pad_0180[44]; //0x0180
float State; //0x01AC
char pad_01B0[20]; //0x01B0
float Breathy; //0x01C4
char pad_01C8[224]; //0x01C8
float Run_Speed; //0x02A8
float Walk_Forward; //0x02AC
float Walk_LeftRight; //0x02B0
float Walk_Back; //0x02B4
char pad_02B8[8]; //0x02B8
float Squat_Forward; //0x02C0
float Squat_LeftRight; //0x02C4
float Squat_Back; //0x02C8
char pad_02CC[8]; //0x02CC
float Crawl_Forward; //0x02D4
float Crawl_LeftRight; //0x02D8
float Crawl_Back; //0x02DC
char pad_02E0[4]; //0x02E0
float Ladder_Speed; //0x02E4
char pad_02E8[12]; //0x02E8
float StandUp_Speed; //0x02F4
float GetDown_Speed; //0x02F8
float Squat_Speed; //0x02FC
char pad_0300[4]; //0x0300
float Jump_Height; //0x0304
char pad_0308[40]; //0x0308
float View_Matrix; //0x0330
char pad_0334[1264]; //0x0334
int8_t RoomThread_Count; //0x0824
char pad_0825[3]; //0x0825
wchar_t Name[16]; //0x0828
char pad_0848[129]; //0x0848
int8_t Team; //0x08C9
};
WeaponPtr
class WeaponPtr
{
public:
char pad_0000[16]; //0x0000
class WeaponStructs *WeapStruct; //0x0010
};
WeaponStructs
class WeaponStructs
{
public:
char pad_0000[4]; //0x0000
int8_t WeaponID; //0x0004
char pad_0005[3]; //0x0005
int32_t Skin; //0x0008
char pad_000C[12]; //0x000C
int8_t Ammo; //0x0018
char pad_0019[111]; //0x0019
int8_t Fire_Rate; //0x0088
char pad_0089[23]; //0x0089
float Reloading_Speed; //0x00A0
float Reload_Speed; //0x00A4
char pad_00A8[28]; //0x00A8
int8_t BulletPerShoot; //0x00C4
char pad_00C5[1]; //0x00C5
int8_t FireType; //0x00C6
char pad_00C7[65]; //0x00C7
float Spread; //0x0108
float Moving_Spread; //0x010C
char pad_0110[51]; //0x0110
int8_t RecoilBack_Y1; //0x0143
char pad_0144[3]; //0x0144
int8_t RecoilBack_Y2; //0x0147
char pad_0148[27]; //0x0148
int8_t RecoilBack_X1; //0x0163
char pad_0164[3]; //0x0164
int8_t RecoilBack_X2; //0x0167
float Recoil; //0x0168
char pad_016C[8]; //0x016C
float Shake; //0x0174
char pad_0178[224]; //0x0178
int8_t SightType; //0x0258
char pad_0259[2]; //0x0259
int8_t SightSkin; //0x025B
char pad_025C[108]; //0x025C
int8_t BulletType; //0x02C8
char pad_02C9[35]; //0x02C9
int8_t Sec_WeaponID; //0x02EC
char pad_02ED[3]; //0x02ED
int32_t Sec_Skin; //0x02F0
char pad_02F4[12]; //0x02F4
int8_t Sec_Ammo; //0x0300
char pad_0301[111]; //0x0301
float Sec_Reloading_Speed; //0x0370
char pad_0374[24]; //0x0374
float Sec_Reload_Speed; //0x038C
char pad_0390[28]; //0x0390
int8_t Sec_BulletPerShoot; //0x03AC
char pad_03AD[1]; //0x03AD
int8_t Sec_FireType; //0x03AE
char pad_03AF[65]; //0x03AF
float Sec_Spread; //0x03F0
float Sec_MovingSpread; //0x03F4
char pad_03F8[11]; //0x03F8
int8_t Sec_RecoilBack_Y1; //0x0403
char pad_0404[3]; //0x0404
int8_t Sec_RecoilBack_Y2; //0x0407
char pad_0408[27]; //0x0408
int8_t Sec_RecoilBack_X1; //0x0423
char pad_0424[3]; //0x0424
int8_t Sec_RecoilBack_X2; //0x0427
float Sec_Recoil; //0x0428
};
Render : GetViewPort , Game Window Width and Height
class Render
{
public:
char pad_0x0000[0x20];
IDirect3DDevice9* pDevice;
int Width;
int Height;
};
WorldToScreen 位元組數
typedef struct
{
float flMatrix[4][4];
}WorldToScreenMatrix_t;
WorldToScreen
class cMatrix
{
public:
WorldToScreenMatrix_t Matrix; //0x0000
char _0x0040[1024];
};
以上資訊提供分享,有啥問題,歡迎留言。
|
-
總評分: 鑰匙 + 1
查看全部評分
|