2019年3月8日星期五

Pubg Lite 偏移地址,结构体,可以透视, id+血量

外挂太多, 好久不玩了. 
总有老铁叫我发成品. 这个不是我原创, 是转载unknowncheats论坛上的源码与成品都有, 主流的有两个成品辅助, 据说一个是国人写的, 另一个是毛子写的.
上色透视   https://www.unknowncheats.me/forum/playerunknown-s-battlegrounds/319117-pubg-lite-chams.html
骨骼透视+自瞄   https://www.unknowncheats.me/forum/playerunknown-s-battlegrounds/318871-pubg-lite-cheat.html
(点原帖里面的Download下载, 解压得到dll, 使用remotedll等软件注入就好)
原帖里面有下载地址和使用方法, 本人看这类辅助还是想学习一下技术的, 并没有以此牟利或者其他什么想法. 如果冒犯了您的利益或者违反了规定, 请联系我删贴, 谢谢.
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

1. Pubg Lite,  不是Pubg

2. 转载自UnknowCheats.me : https://www.unknowncheats.me/forum/playerunknown-s-battlegrounds/318512-pubg-lite-structs-offsets.html



3. 论坛不允许发布完成的外挂软件? 正好我也看不太懂, 发在这里看看有没有大佬愿意看看.


4. 昨天玩了几把, 有加速, 应该也有透视. 这个游戏免费, 目前也没有举报机制, 好像也没有反外挂的检测...希望大家不要恶意击杀, 自己菜的话开个透视也就行了.


基址:
[C++] 纯文本查看 复制代码
?
01
02
03
04
05
06
07
08
09
10
//LineOfSight Unicode
#define OFFS_VISIBLE 0x128BEE0
//48 8B 1D ?? ?? ?? ?? 48 85 DB 74 3B 41
#define OFFS_UWORLD 0x409AE80
//48 89 5C 24 ? 48 89 74 24 ? 57 48 81 EC ? ? ? ? 41 0F B6 F9
#define OFFS_W2S 0x15BAAB0
//
#define OFFS_GNAMES 0x3F8B490
//E8 ? ? ? ? F3 0F 10 48 ? F3 0F 10 40
#define OFFS_GETBONEMATRIX 0x14F3660


[C++] 纯文本查看 复制代码
?
1
2
3
4
5
6
7
8
9
bool WScreen(APlayerController* m_Player, FVector WorldPosition, FVector2 *ScreenPosition)
{
        static DWORD_PTR funcAddress = 0;
        if (!funcAddress)funcAddress = (DWORD_PTR)(DWORD64)Module(L"PUBGLite-Win64-Shipping.exe") + OFFS_W2S;
        if (funcAddress != 0)
        {
                return reinterpret_cast<char(__fastcall*)(APlayerController*, FVector, FVector2 *, char)>(funcAddress)(m_Player, WorldPosition, ScreenPosition, 0);
        }
}


使用:
[C++] 纯文本查看 复制代码
?
1
2
3
4
5
6
7
8
9
FVector root;
FVector2 rootOut;
GetBoneLocation(Actor->p_mesh(), &root, 0);
  
bool rootScreen = WScreen(LocalPlayer->p_playerController(), root, &rootOut);
if (rootScreen)
{
  DrawText("blablabla", rootOut.X, rootOut.Y);
}


可见:
[C++] 纯文本查看 复制代码
?
1
2
3
4
5
6
bool LineOfSightTo(APlayerController * thiz, APawn *Other, FVector *ViewPoint)
{
        static DWORD_PTR funcAddress = 0;
        if (!funcAddress)funcAddress = (DWORD_PTR)(DWORD64)Module(L"PUBGLite-Win64-Shipping.exe") + OFFS_VISIBLE;
        if (funcAddress) { return reinterpret_cast<int(__fastcall*)(APlayerController * thiz, APawn *Other, FVector *ViewPoint)>(funcAddress)(thiz, Other, ViewPoint); }
}


使用:
[C++] 纯文本查看 复制代码
?
1
2
3
bool IsVisible = LineOfSightTo(LocalPlayer->p_playerController(), m_PL, &Zero);
if (IsVisible == 1) { color = color_esp_human; }
if (IsVisible == 0) { color = color_esp_NoVishuman; }



人物坐标:
[C++] 纯文本查看 复制代码
?
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
typedef FMatrix *(__thiscall* _GetBoneMatrix)(USkeletalMeshComponent *pThis, FMatrix *result, int BoneIdx);
_GetBoneMatrix pGetBoneMatrix;
FMatrix * GetBoneMatrix(USkeletalMeshComponent *pObj, FMatrix *result, int BoneIdx)
{
        static DWORD_PTR funcAddress = 0;
        if (!funcAddress)funcAddress = (DWORD_PTR)(DWORD64)Module(L"PUBGLite-Win64-Shipping.exe") + OFFS_GETBONEMATRIX;
        if (funcAddress != 0)
        {
                _GetBoneMatrix pGetBoneMatrix = (_GetBoneMatrix)(funcAddress);
                return pGetBoneMatrix(pObj, result, BoneIdx);
        }
}
  
void GetBoneLocation(USkeletalMeshComponent* pMesh, FVector* vBone, int boneidx)
{
        if (IsBadReadPtr(pMesh, 8))return;
  
        FMatrix vMatrix;
        FMatrix *vTempvMatrix = GetBoneMatrix(pMesh, &vMatrix, boneidx);
        *vBone = vMatrix.WPlane;//Trans
}



使用:
[C++] 纯文本查看 复制代码
?
1
GetBoneLocation(ObjMesh, FVector, BoneId);


结构体:
[C++] 纯文本查看 复制代码
?
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
class cUWorld
{
public:
        ULevel*                                p_persistentLevel() { return *(ULevel**)(this + 0x30); }
        UGameInstance*                p_owningGameInstance() { return *(UGameInstance**)(this + 0x150); }
  
};
  
class ULevel
{
public:
        char pad_0x0000[0xA0];
        TArray<APawn*>actors;
};
  
class UGameInstance
{
public:
        char pad_0x0000[0x38];
        TArray<ULocalPlayer*>localPlayers;
};
  
class ULocalPlayer
{
public:
        APlayerController*                p_playerController() { return *(APlayerController**)(this + 0x30); }
        ViewportClient*                        p_ViewportClient() { return *(ViewportClient**)(this + 0x58); }
        FVector*                                v_Position() { return (FVector*)(this + 0x70); }
};
  
class APlayerController
{
public:
        float                                        f_Pitch() { return *(float*)(this + 0x3B4); }
        float                                        f_Yaw() { return *(float*)(this + 0x3B8); }
        APawn*                                        p_LocalPawn() { return *(APawn**)(this + 0x3F0); }
        Camera*                                        p_Camera() { return *(Camera**)(this + 0x410); }
};
  
class ViewportClient
{
public:
        World*                                        p_World() { return *(World**)(this + 0x80); }
};
  
class APawn
{
public:
        __int32                                        ID() { return *(__int32*)(this + 0x18); }
        APawn*                                        p_pawn() { return *(APawn**)(this + 0x148); }
        USceneComponent*                p_rootComp() { return *(USceneComponent**)(this + 0x160); }
        APlayerState*                        p_PlayerState() { return *(APlayerState**)(this + 0x388); }
        USkeletalMeshComponent*        p_Mesh() { return *(USkeletalMeshComponent**)(this + 0x3C8); }
        FString*                s_PlayerName() { return (FString*)(this + 0x788); }
        __int32                                        i_TeamID() { return *(__int32*)(this + 0x79C); }
        __int32                                        i_TeamNum() { return *(__int32*)(this + 0xAD8); }
        float                                        f_Health() { return *(float*)(this + 0x1474); }
        float                                        f_HealthMax() { return *(float*)(this + 0x147C); }
};


一段使用代码的demo
 

演示视频:https://www.youtube.com/watch?v=p_2VLAnN_bM
演示视频的百度网盘: 链接: https://pan.baidu.com/s/1S41h0dP5rqx4yCGDTGDVVQ 提取码: r4yf 
B站: https://www.bilibili.com/video/av41897642

没有评论:

发表评论