The Finals SDK与某辅助的驱动注入

最近爆火的一款游戏The finals(最终决战)三测,刚干完苦力的我迫不及待打开我的小霸王准备游玩一番。锁子哥他们来了快跑!俗话说打不过就加入~

0x01


起初准备用看家本领CV大法一份玩一玩,结果看到隔壁群各种收数据,我慢慢发现事情没有这么简单,估计大手子dump sdk都留着发财了。众所周知,dump sdk找到GObjects以及GNames加上开源的sdkdump工具即可。

然而从这里才刚刚开始上套,一步步落入开发商的坑。满怀欢喜的打开CE搜索通用特征码却没有任何结果。后来发现搜索base 4D5A都没有,看来只能IDA了。

GObjects:搜索字符串“/Script/Angelscript”交叉引用则会看到GObject的解密。

The Finals SDK与某辅助的驱动注入

GNames:搜索字符串“ByteProperty”

The Finals SDK与某辅助的驱动注入

就是这么朴实无华。等等,好像还没完,我发现了不得了的东西。

The Finals SDK与某辅助的驱动注入

The Finals SDK与某辅助的驱动注入

反手就是一个CV大法,内部可直接CALL。

FNameToFString()

std::string GetFromFName(const uint32_t key){
unsigned __int64 v4; // r14
unsigned __int64 v5; // rdi
uint32_t chunkOffset = ((int)(key) >> 16);
WORD nameOffset = (WORD)key;
auto namePoolChunk = Process::Read<uintptr_t>(unk_7FF77B4B4980 + (chunkOffset * 6) + (8 * 21)) ^ 0xD0064AB34C24F50Fui64;
auto entryOffset = namePoolChunk + (uint32_t )(2 * nameOffset);
v4 = Process::Read<__int16>(entryOffset);
auto length = v5 = v4 >> 6;
if ( (v4 & 1) != 0 ){//wide
memcpy(v17, (a1 + 1), (v4 >> 5) & 0xFFFFFFFE);//这里是第一个call实际上是一个memcpy
if ( v4 >= 0x40u ){
.....
}

}else{
memcpy(v17, (a1 + 1), (v4 >> 5) & 0xFFFFFFFE);//这里是第一个call实际上是一个memcpy
if ( v4 >= 0x40u ){
.....
}
}

}
The Finals SDK与某辅助的驱动注入

SDK-Dump:https://github.com/if-kdm/Discovery-SDK-Dump

0x02


实际上呢远远没有这么简单。

1.反作弊:EasyAntiCheat +(暂且称为不知名的美女1号)。


2.首先这个游戏对于每个不同的账号都会下发一个全新的版本所有客户端解密都不不同(更新前在我的PC,貌似在11/1晚上的更新后已经不在下发版本了)这很育碧。


3.游戏会对DrawText DrawLine DrawRect等等函数进行加密并且游戏运行时VirtualProtect函数所在的页 置PAGE_NOACCESS(更新前固定函数,更新后函数有所改变) 这很Byfron。不过只能算一个婴儿版本的byf。


The Finals SDK与某辅助的驱动注入

当然可以手动更改页属性,你会看到加密的.text。

The Finals SDK与某辅助的驱动注入

4.如果开启游戏前打开IDA CE等工具游戏会提示完整*侵害游戏不会退出。游戏中打开则会直接退出(更新后开启IDA将无法启动游戏)。


5.对于WorldToScreen,如果像正常那样使用矩阵,也就是0x20]0x2xx]UE引擎通用矩阵,你将会得到0,此时也许你会想使用CameraManager->Location。但事实是你使用其它UE相同算法的使用相机坐标进行转换,你也会得到不正确的值。APlayerController->ProjectWorldLocationToScreen是最好的选择。


反手就是一个:

The Finals SDK与某辅助的驱动注入


0x03


不行,我也要成为一次锁子哥,于是乎打开了某宝。出于习惯,任何未知exe都会先检查一遍。运行exe会在C:生成一个.sys,签名挺不错的。

The Finals SDK与某辅助的驱动注入

The Finals SDK与某辅助的驱动注入The Finals SDK与某辅助的驱动注入

额这个sysdiag.sys很灵性,不是sysdiag_win10.sys吗?

整体来说驱动没有什么亮点没什么好说的,完全就是CV的
https://github.com/haidragon/DriverInjectDll

主打一个朴实无华alloc write,不过对于免费版EAC足够了。

IoControlCode:0x0x222409



The Finals SDK与某辅助的驱动注入


看雪ID:thisif

https://bbs.kanxue.com/user-home-878559.htm

*本文为看雪论坛优秀文章,由 thisif 原创,转载请注明来自看雪社区

The Finals SDK与某辅助的驱动注入

# 往期推荐

1、区块链智能合约逆向-合约创建-调用执行流程分析

2、在Windows平台使用VS2022的MSVC编译LLVM16

3、神挡杀神——揭开世界第一手游保护nProtect的神秘面纱

4、为什么在ASLR机制下DLL文件在不同进程中加载的基址相同

5、2022QWB final RDP

6、华为杯研究生国赛 adv_lua


The Finals SDK与某辅助的驱动注入


The Finals SDK与某辅助的驱动注入

球分享

The Finals SDK与某辅助的驱动注入

球点赞

The Finals SDK与某辅助的驱动注入

球在看

原文始发于微信公众号(看雪学苑):The Finals SDK与某辅助的驱动注入

版权声明:admin 发表于 2023年12月22日 下午6:00。
转载请注明:The Finals SDK与某辅助的驱动注入 | CTF导航

相关文章

暂无评论

您必须登录才能参与评论!
立即登录
暂无评论...