0x01
然而从这里才刚刚开始上套,一步步落入开发商的坑。满怀欢喜的打开CE搜索通用特征码却没有任何结果。后来发现搜索base 4D5A都没有,看来只能IDA了。
GObjects:搜索字符串“/Script/Angelscript”交叉引用则会看到GObject的解密。
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 ){ ..... } } }
0x02
1.反作弊:EasyAntiCheat +(暂且称为不知名的美女1号)。
2.首先这个游戏对于每个不同的账号都会下发一个全新的版本所有客户端解密都不不同(更新前在我的PC,貌似在11/1晚上的更新后已经不在下发版本了)这很育碧。
3.游戏会对DrawText DrawLine DrawRect等等函数进行加密并且游戏运行时VirtualProtect函数所在的页 置PAGE_NOACCESS(更新前固定函数,更新后函数有所改变) 这很Byfron。不过只能算一个婴儿版本的byf。
4.如果开启游戏前打开IDA CE等工具游戏会提示完整*侵害游戏不会退出。游戏中打开则会直接退出(更新后开启IDA将无法启动游戏)。
5.对于WorldToScreen,如果像正常那样使用矩阵,也就是0x20]0x2xx]UE引擎通用矩阵,你将会得到0,此时也许你会想使用CameraManager->Location。但事实是你使用其它UE相同算法的使用相机坐标进行转换,你也会得到不正确的值。APlayerController->ProjectWorldLocationToScreen是最好的选择。
0x03

整体来说驱动没有什么亮点没什么好说的,完全就是CV的https://github.com/haidragon/DriverInjectDll
IoControlCode:0x0x222409
看雪ID:thisif
https://bbs.kanxue.com/user-home-878559.htm
原文始发于微信公众号(看雪学苑):The Finals SDK与某辅助的驱动注入
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论