总有老铁叫我发成品. 这个不是我原创, 是转载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
没有评论:
发表评论