首页
社区
课程
招聘
11
[原创]逆向分析某VT加持的三角洲行动外挂
发表于: 2025-3-26 08:03 4298

[原创]逆向分析某VT加持的三角洲行动外挂

2025-3-26 08:03
4298

前言

最近无意间打开之前的虚拟机,发现有个外挂。才想起来之前因为太忙给忘记了。
图片描述
图片描述
首先感谢Rog的大力支持
ROG!!!!!!一瞬间想到了[原创]逆向分析某VT加持的无畏契约纯内核挂
不会是之前ROG逆过之后又来三角洲起个名字ROG名字吧。哈哈哈。那么就直接用ROG打败ROG。call ROG
现在都直接让用户自己加载驱动了吗?太卷了,随便在C盘整个卡密,直接加载驱动,老规矩,先dump。go go
图片描述
图片描述
mapper,删除自身。记录那些都不用看,基本就是清理三件套
既然验证在内核上面,会访问“C:\1.txt”。直接inline hook NtReadFile
图片描述
图片描述

Mapper

随便搜了下字符串即可看到。xrefs一下
图片描述
图片描述
图片描述

虚拟化

图片描述
图片描述
这不是hv吗。clone一份hv编译合并下pdb。除key以外完全一模一样,logger都不带删的
图片描述

InitProcAddress

图片描述

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
NtProtectVirtualMemory
NtAllocateVirtualMemory
NtQueryInformationProcess
NtQuerySystemInformation
IopLoadDriverImage
NtMapViewOfSection
NtOpenSection
NtClose
NtDebugActiveProcess
NtDeviceIoControlFile
NtQueryValueKey
MmCopyMemory
MmMapIoSpace
NtCreateSection
MmGetPhysicalAddress
RtlWalkFrameChain
PsLookupProcessByProcessId
MmAllocateIndependentPages
MmFreeIndependentPages
MmCreateKernelStack
MmDeleteKernelStack
PspExitProcess
KiPreprocessFault
MouseClassServiceCallback
gafAsyncKeyState
gptCursorAsync

还有一些WSK相关的和其它的懒得贴了

EPT

无痕断点

图片描述

InstallEptHook

图片描述
分析前面的时候看到一些地址大概都在FFFF9D8100000000开始,IDA直接搜索
随便挑了一个0FFFF9D819186E000h 跳过去看一下。直接和去年腾讯游戏安全的一模一样
图片描述

1
2
3
4
5
6
7
8
oMouseClassServiceCallback
oPsLookupProcessByProcessId
oKiPreprocessFault
oPspExitProcess
oRtlWalkFrameChain
oMmCopyMemory
oNtCreateSection
oIopLoadDriverImage

初步怀疑就是抄的同一份
大致hook了KiPreprocessFault,MmCopyMemory,ZwMapViewOfSection,PspExitProcess
RtlWalkFrameChain怎么相比之前的还变少了。

hkKiPreprocessFault

一模一样
图片描述

hkPspExitProcess

游戏退出 移除EptHook
图片描述

hkRtlWalkFrameChain

同样判断当前mapper驱动和自己存放链表的数据范围
图片描述

hkMmCopyMemory

flags != MM_COPY_MEMORY_PHYSICAL 时并且在当前mapper驱动和自己存放链表的数据范围内return STATUS_SUCCESS
图片描述
图片描述

NtCreateSection

这部分被VM了 大概猜测就是游戏启动初始化hook 游戏的一些hook
图片描述

DwmRender

内核DWM+ImGui

无痕断点 dwm进程NtGdiDdDDIGetDeviceState保证自己在dwm上下文
内核DWM的具体分析参考 [原创]记一次仿写一个内核DWM绘制
图片描述

ImGui Init

初始化ImGui和DircetX相关的。FindDWMSwapChain
图片描述

图片描述

图片描述

图片描述
截断的部分
图片描述
其中的用户模式调用类似DoubleCallBack
图片描述
KiCallUserMode相比DoubleCallBack的基本一比一ntoskrnl的
图片描述

HackMenu

因为没有卡密登录不了,所以不知道有什么功能,所以逆了下菜单。
上来就是字符串加密,写个简单脚本解密下
图片描述
图片描述

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
xor_key = 0x9DFE2A8A2F8FCF2C
 
en_str = [
    0x756EB06300DC8165,
    0x873CF16A06740BB,
    0xB18B202C9BE8977,
    0xC071966F8E2729BB,
 
]
 
for i in range(len(en_str)):
    en_str[i] ^= xor_key
 
print("Decrypted values:")
for i, value in enumerate(en_str):
    print(f"en_str[{i}] = 0x{value:X}")
 
byte_data = b""
for value in en_str:
    byte_data += value.to_bytes(8, byteorder="little")
 
try:
    utf8_string = byte_data.decode("utf-8")
    print("Decrypted string (UTF-8):")
    print(utf8_string)
except UnicodeDecodeError:
    print("Failed to decode as UTF-8. Raw bytes:")
    print(byte_data)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
INS/隐藏菜单[F1战斗模式]
[透视设置]
显示骨架
显示血量
显示方框
显示射线
显示昵称
显示人机
[物品设置]
基本就是品质过滤
[瞄准设置]
子弹追踪
障碍判断
漏打
调试信息

外挂的功能大概就这些

LoopGameData

Esp

Hook游戏,获取关键数据。由于我自己电脑没有游戏,所有没有分析具体是什么
图片描述
判断数据是否有效
图片描述
寻找到人物以及物品的StaticClass并且从数组中过滤出来
图片描述
图片描述
Skeletal
图片描述

AimBot

漏打部分直接调用游戏LineTraceSingle自瞄算法大手子写法
图片描述
图片描述

总结

一句话概括就是大杂烩,而且四不像。各种抄,VT照搬hv,内核DWM没有解决桌面分辨率改变失效问题(估计也没能力解决)。给我的感觉就是啥都会点儿。对比之前的就改了下hook点,字符串加密,初始化和机器码部分加了VMP,不再有任何R3的可执行文件。
最后说一句,收手吧阿祖们,外面全是ACE。


[注意]看雪招聘,专注安全领域的专业人才平台!

最后于 2025-3-26 08:08 被thisif编辑 ,原因:
上传的附件:
收藏
免费 11
支持
分享
赞赏记录
参与人
雪币
留言
时间
艾米哈柏
谢谢你的细致分析,受益匪浅!
22小时前
moshuiD
你的帖子非常有用,感谢分享!
3天前
mb_hfisjmdu
感谢你分享这么好的资源!
5天前
罗小墨
+1
为你点赞!
2025-3-27 11:44
koyun88
非常支持你的观点!
2025-3-27 10:39
木志本柯
+5
这个讨论对我很有帮助,谢谢!
2025-3-27 08:11
mb_hqcaofpt
这个讨论对我很有帮助,谢谢!
2025-3-26 16:52
Mengluu
+1
谢谢你的细致分析,受益匪浅!
2025-3-26 12:34
ldljlzw
你的分享对大家帮助很大,非常感谢!
2025-3-26 09:41
VtRoot
+1
期待更多优质内容的分享,论坛有你更精彩!
2025-3-26 09:01
七夜大大
+3
感谢你分享这么好的资源!
2025-3-26 08:22
最新回复 (18)
雪    币: 4020
活跃值: (4282)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
2
感谢分享。
2025-3-26 09:41
0
雪    币: 101
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
3
感谢分享,学习了
2025-3-26 10:25
0
雪    币: 24
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
4
收手吗,阿祖,里面也全是ace
2025-3-26 11:49
0
雪    币: 280
活跃值: (1467)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5

合并pdb是啥操作,求教

最后于 2025-3-26 11:58 被灰灰Hui编辑 ,原因:
2025-3-26 11:58
0
雪    币: 3026
活跃值: (3491)
能力值: ( LV8,RANK:147 )
在线值:
发帖
回帖
粉丝
6
mark
2025-3-26 14:55
0
雪    币: 104
活跃值: (5257)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
合并pdb是啥操作,求教大佬 ,如何合并
2025-3-26 15:19
0
雪    币: 464
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
8
灰灰Hui 合并pdb是啥操作,求教
同求
2025-3-26 15:21
0
雪    币: 1623
活跃值: (1210)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
9

 bindiff

最后于 2025-3-26 16:57 被thisif编辑 ,原因:
2025-3-26 15:44
0
雪    币: 4143
活跃值: (5390)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
灰灰Hui 合并pdb是啥操作,求教
我也想知道 啥叫合并PDB
2025-3-26 17:48
0
雪    币: 4143
活跃值: (5390)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
灰灰Hui 合并pdb是啥操作,求教
ACE不是预加载,他这个loader.sys是个过期签名啊,怎么加载的?
2025-3-26 17:49
0
雪    币: 36
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
12
不应该啊,他这个应该是截图截死的,除非vt干了检测
2025-3-27 07:52
0
雪    币: 5000
活跃值: (5007)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
这个外挂作者啥都会一点,就是不知道,兼容性怎么样,有的电脑都下载不了符号表吧,靠特征码定位的nt函数吗?
2025-3-27 08:11
0
雪    币: 36
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
14
毫无新意,没有东西copy
2025-3-27 08:13
0
雪    币: 1537
活跃值: (1936)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
syser ACE不是预加载,他这个loader.sys是个过期签名啊,怎么加载的?
并不是所有的过期签名都会被拦截,只是一些在黑名单里面的签名会被拦截
2025-3-27 08:50
0
雪    币: 1280
活跃值: (1944)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
大佬眼中的小菜 我眼中的大佬 内核实现外挂完全体功能太屌了吧
3天前
0
雪    币: 181
活跃值: (250)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
这种程度也能过ACE吗 (大佬求一份pdb)
3天前
0
雪    币: 101
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
18
学习了,感谢分享
2天前
0
雪    币: 1623
活跃值: (1210)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
19
AyaseMiya 这种程度也能过ACE吗 (大佬求一份pdb)
据说是还在用,不过换名字了。稳定性未知
1天前
0
游客
登录 | 注册 方可回帖
返回

账号登录
验证码登录

忘记密码?
没有账号?立即免费注册