易南河 發表於 2020-3-8 21:43:57

[亞洲,歐洲通用] Ironsight Struct

本帖最後由 易南河 於 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 :
03 05 ?? ?? ?? ?? 50
接著就是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;
        Actor** Players;
};

Actor
class Actor
{
public:
        char pad_0000; //0x0000
        D3DXVECTOR3 Position; //0x0008
        char pad_0014; //0x0014
        float Health; //0x0044
        char pad_0048; //0x0048
        class WeaponPtr *WeapPtr; //0x0070
        char pad_0074; //0x0074
        int32_t Input_Fire; //0x00E8
        char pad_00EC; //0x00EC
        float VirtualJump; //0x017C
        char pad_0180; //0x0180
        float State; //0x01AC
        char pad_01B0; //0x01B0
        float Breathy; //0x01C4
        char pad_01C8; //0x01C8
        float Run_Speed; //0x02A8
        float Walk_Forward; //0x02AC
        float Walk_LeftRight; //0x02B0
        float Walk_Back; //0x02B4
        char pad_02B8; //0x02B8
        float Squat_Forward; //0x02C0
        float Squat_LeftRight; //0x02C4
        float Squat_Back; //0x02C8
        char pad_02CC; //0x02CC
        float Crawl_Forward; //0x02D4
        float Crawl_LeftRight; //0x02D8
        float Crawl_Back; //0x02DC
        char pad_02E0; //0x02E0
        float Ladder_Speed; //0x02E4
        char pad_02E8; //0x02E8
        float StandUp_Speed; //0x02F4
        float GetDown_Speed; //0x02F8
        float Squat_Speed; //0x02FC
        char pad_0300; //0x0300
        float Jump_Height; //0x0304
        char pad_0308; //0x0308
        float View_Matrix; //0x0330
        char pad_0334; //0x0334
        int8_t RoomThread_Count; //0x0824
        char pad_0825; //0x0825
        wchar_t Name; //0x0828
        char pad_0848; //0x0848
        int8_t Team; //0x08C9
};

WeaponPtr
class WeaponPtr
{
public:
        char pad_0000; //0x0000
        class WeaponStructs *WeapStruct; //0x0010
};

WeaponStructs
class WeaponStructs
{
public:
        char pad_0000; //0x0000
        int8_t WeaponID; //0x0004
        char pad_0005; //0x0005
        int32_t Skin; //0x0008
        char pad_000C; //0x000C
        int8_t Ammo; //0x0018
        char pad_0019; //0x0019
        int8_t Fire_Rate; //0x0088
        char pad_0089; //0x0089
        float Reloading_Speed; //0x00A0
        float Reload_Speed; //0x00A4
        char pad_00A8; //0x00A8
        int8_t BulletPerShoot; //0x00C4
        char pad_00C5; //0x00C5
        int8_t FireType; //0x00C6
        char pad_00C7; //0x00C7
        float Spread; //0x0108
        float Moving_Spread; //0x010C
        char pad_0110; //0x0110
        int8_t RecoilBack_Y1; //0x0143
        char pad_0144; //0x0144
        int8_t RecoilBack_Y2; //0x0147
        char pad_0148; //0x0148
        int8_t RecoilBack_X1; //0x0163
        char pad_0164; //0x0164
        int8_t RecoilBack_X2; //0x0167
        float Recoil; //0x0168
        char pad_016C; //0x016C
        float Shake; //0x0174
        char pad_0178; //0x0178
        int8_t SightType; //0x0258
        char pad_0259; //0x0259
        int8_t SightSkin; //0x025B
        char pad_025C; //0x025C
        int8_t BulletType; //0x02C8
        char pad_02C9; //0x02C9
        int8_t Sec_WeaponID; //0x02EC
        char pad_02ED; //0x02ED
        int32_t Sec_Skin; //0x02F0
        char pad_02F4; //0x02F4
        int8_t Sec_Ammo; //0x0300
        char pad_0301; //0x0301
        float Sec_Reloading_Speed; //0x0370
        char pad_0374; //0x0374
        float Sec_Reload_Speed; //0x038C
        char pad_0390; //0x0390
        int8_t Sec_BulletPerShoot; //0x03AC
        char pad_03AD; //0x03AD
        int8_t Sec_FireType; //0x03AE
        char pad_03AF; //0x03AF
        float Sec_Spread; //0x03F0
        float Sec_MovingSpread; //0x03F4
        char pad_03F8; //0x03F8
        int8_t Sec_RecoilBack_Y1; //0x0403
        char pad_0404; //0x0404
        int8_t Sec_RecoilBack_Y2; //0x0407
        char pad_0408; //0x0408
        int8_t Sec_RecoilBack_X1; //0x0423
        char pad_0424; //0x0424
        int8_t Sec_RecoilBack_X2; //0x0427
        float Sec_Recoil; //0x0428
};

Render : GetViewPort , Game Window Width and Height
class Render
{
public:
        char pad_0x0000;
        IDirect3DDevice9* pDevice;
        int Width;
        int Height;
};

WorldToScreen 位元組數
typedef struct
{
        float flMatrix;
}WorldToScreenMatrix_t;

WorldToScreen
class cMatrix
{
public:
        WorldToScreenMatrix_t Matrix; //0x0000
        char _0x0040;
};

以上資訊提供分享,有啥問題,歡迎留言。

Stitch1111 發表於 2020-11-1 01:53:42

用甚麼注入Q_Q

chang_eric 發表於 2021-6-26 19:04:01

好複雜阿~~ 大大 我真的不懂~~這些碼要直接帶入嗎?

p9574612 發表於 2022-2-8 17:41:35

純粹幫推 沒玩過這遊戲
推推推
頁: [1]
查看完整版本: [亞洲,歐洲通用] Ironsight Struct