【《Valorant》反作弊程序随开机启动 但不会扫描文件】拳头的FPS新作《Valorant》已经进行封测了一段时间了,Reddit上有位玩家发现有一个反作弊程序“vgk.sys”会随着电脑开机一起启动,想要关掉它就需要把文件名改掉,此外他还提到了另外两个反作弊系统BattlEye和EasyAntiCheat都是在游戏打开时加载的,这与“vgk.sys”工作方式不同,他认为这是拳头有意如此设计。
对此,拳头的开发者进行了回应表示:“《Valorant》包含一个名为“vgk.sys”的驱动文件(类似于其他反作弊系统),这也是为什么安装后为什么要重启电脑的原因,除非在系统启动时加载了这个程序,否则《Valorant》会认为这台电脑是不可信的(这部分在反作弊系统中不太常见)。
这对于阻碍作弊者很有用,因为绕过反作弊系统的一种常见手段就是在反作弊系统启动之前就加载作弊,或修改系统文件把作弊文件包含在内,或篡改反作弊系统使作弊文件一同加载,在开机就启动反作弊系统会让这一手段很难操作。”
此外他也让玩家们不要太过担心:“《Valorant》驱动程序不会收集或发送任何有关玩家的信息,驱动程序可以在任何时候卸载,还有多个外部安全研究团队对其进行缺陷检查,还对驱动采用最小权限原则,只有在游戏运行时,非驱动部分才会执行反作弊扫描。
我们认为这是对抗作弊者的一个重要工具,我们是为了让玩家能有良好的《Valorant》体验,如果我们的安全工具弊大于利,我们会移除它(并尝试其他方法),而目前我们认为驱动程序随电脑开机启动是正确的选择。”

#互联网安全资讯[超话]#木马攻击主要通过木马病毒控制电脑。木马通常有两个可执行程序:一个是控制端(客户端,在攻击者那),另一个是被控制端(服务端),黑客利用控制端进入用户主机,控制木马服务端。 木马不会自我繁殖,也并不刻意去感染其他文件,它通过将自身伪装吸引用户下载执行,向攻击者提供打开用户主机的门户,使攻击者可以任意毁坏、窃取被种者的文件,甚至远程操控被种主机。木马不会自动运行,它暗含在用户感兴趣的文档中,用户下载时附带木马。当用户运行文档程序时,木马才会运行。运行后,立刻自动登录在系统引导区,之后每次在Windows加载时自动运行,或立刻自动变更文件名,甚至隐形,或马上自动复制到其他文件夹中,运行用户本身都无法运行的动作。

*点击阅读原文查看英文版本

暴露给接口和智能合约代码的编码格式如下

运行时长度编码格式

(Runtime Length Encoding Format)

在区块链上,x86 所有的合约数据都使用运行时长度编码(Runtime Length Encoding,RLE)来表示 0 字节。而非零数据不被编码。当在字节流中遇到 0 时,它被编码成一个长度。该长度表示跟随它的零字节数。RLE 的长度为 0 是明确禁止的,其结果是生成无法包含在区块或内存池里的无效交易。

RLE 有效载荷的前缀是一个 32 bit 整数。其中 24 bit 是解码大小字段。如果解码大小与解码的有效载荷不完全匹配,则交易无效。其余 8 bit 保留为版本号,以便实现其他压缩格式。

注意,有效负载的大小可以在不分配额外内存的情况下进行验证。

相关代码注释:

//格式:解码的有效载荷长度(uint32_t)| 有效载荷
//压缩只压缩 0 字节数据
//当在字节流中遇到 0x00 时,它用运行时长度编码
//编码示例:
// 0x00 00 00 00 - > 0x00 04
// 0x00 - > 0x00 01
// 0x00 00 - > 0x00 02
// 0x00(重复500次) - > 0x00 0xFF 0x00 0xF5
//作为编码过程的一部分,有效载荷的前 32 bit 是前缀

RLE 编码将使用在其他任何格式之上。

编码和解码的代码已包含在 x86Lib 中,不过在其他编程语言中实现都应该是很简单的。

由于目前长度字段没有提供任何好处,以后可能会移除掉。我们的初衷是使用内存分配配置文件而不是要多次手动来分配内存。但不管怎样,现在解码后的数据存储在 Qtum 的备份数据库中,可以实现一次性解码。

智能合约字节码格式

(Smart contract bytecode format)

在编码和存储合约的方式上,x86 VM 和 EVM 不一样。EVM 中是直接给出了操作码数组,然后执行这些操作码。它们决定了这些操作码和数据的哪一部分可以作为智能合约字节码实际存储在永久存储器中。

但在Qtum 的 x86 VM 中更为简单,也更容易理解。这是一种自定义二进制格式,分为选项(options,即智能合约配置信息等),初始化数据(initialized data)和代码(code)三个部分。整个二进制文件直接存储在永久存储器中。这可以避免在 EVM 合约里写合约保护程序的情况。尽管这在 EVM 中不太复杂,但是在 x86 中开发还这样写,就有点奇怪了。因为你可能要写两个完全独立的程序来防止地址内存错误等等。

x86Lib 测试平台提供了将 ELF 程序转换为这种自定义二进制格式的工具。由于 ELF 包含大量潜在的复杂性,我们不打算直接使用 ELF。不过大多数 ELF 程序解析起来也是相当简单的。所以我们没有实现类似“你不能在ELF中使用这些功能”来处理特殊情况,而是使用更简单的自定义格式,并提供转换工具。基于此,我们还可以提供对扁平二进制格式,PE和其他二进制格式的支持。

自定义格式是一个扁平字节数组 + 一个前缀,前缀 map 保存了每个部分的长度:

//可用的数据字段只是一个扁平的数据字段,因此我们需要自定义格式来存储
//代码,数据和选项
//因此,它把 4 个 uint32 整数作为前缀。
//第一个是选项的大小,第二个是代码的大小,第三个是数据的大小
//第四个未使用(暂时),但保留用于填充和对齐
struct ContractMapInfo {

//这个结构是达成共识的关键 CONSENSUS-CRITICAL

//不要添加或删除字段,也不要重新排序!

uint32_t optionsSize;

uint32_t codeSize;

uint32_t dataSize;

uint32_t reserved;
} __attribute__((__packed__));

在这个前缀 map 后,就只剩下一个扁平的字节数组了。

具体过程:

LOCATION = 0,这是 ContractMapInfo 之后的第一个字节

将选项数据复制到从 LOCATION 到 LOCATION + optionsSize 的缓冲区中。通过 optionsSize 移动 LOCATION 指针

将代码数据复制到从 LOCATION 到 LOCATION + codeSize 的缓冲区中。 通过 codeSize 移动 LOCATION 指针

以此类推......

对每部分的说明:

选项。由于当前未使用选项,optionsSize 必须为 0.之后它可能会包含依赖关系图,可信任的合约选项以及其他专用配置数据。除非选项明确指明,否则数据不会直接暴露给合约代码

代码是只读可执行代码。它目前最大为 1Mb,将被加载到合约的内存空间 0x1000 处。合约修改这部分内存的内容是不允许的。执行这部分以外的代码可能要额外的 gas,因为这可能使 JIT 和其他优化更加困难。现在这部分固定大小为1Mb,codeSize 之外的任何数据都设置为0。

数据分初始化数据和读写数据。它也有1Mb的限制,将被加载到合约的内存空间 0x100000 处。在一些文档中,这部分存储也称为“临时存储器”。现在这部分空间固定大小为1Mb,dataSize 以外的任何数据都设置为0. 同时, ELF 文件的“.BSS”部分(未初始化的内存)放在内存区域的结尾部分,但由于没有与之关联的数据,所以没有必要向 VM 提供有关 .BSS 的任何信息。ELF文件转换器会检查数据大小+ bss 大小是否不超过1Mb。

智能合约交易调用格式

(Smart contract transaction-call format)

合约有一个调用堆栈,可以用来发送参数调用合约以及调用合约返回数据。但是,就验证目的而言,一个交易中有大量数据实体是非常重要的。因此,智能合约交易调用格式中实际上只有1个数据字段(与目前 EVM 相同)。不过,提供ABI是为了简化智能合约的解析任务。当然也可以忽略这个ABI,只使用一个要传递的字节数组来代替。

具体过程:

LOCATION = 0,数据的第一个字节

从 LOCATION 读取 32 位整数,记作 SIZE

LOCATION 增加 2(整数)

分配大小为 SIZE 的缓冲区,然后将内存从 LOCATION 复制到 LOCATION + SIZE

LOCATION 按 SIZE 递增

重复,直到没有数据

系统调用接口

Qtum 的系统调用方式和 Linux 非常相似。它根本不使用堆栈,只使用寄存器。如果需要传比寄存器更多的参数,那么一个寄存器需要在某种结构中指向这些存有参数的内存区域。目前中断码 0x40 用于 Qtum 所有的系统调用。

调用寄存器:

EAX - 系统调用码:

EBX, ECX, EDX, ESI, EDI, EBP - 参数 1-6

ESP, EFLAGS - 未使用

系统调用返回寄存器:

EAX - 返回值(0表示成功,不包括返回长度的操作)

EBX,ECX,EDX,ESI,EBP,ESP,EFLAGS - 未修改

libqtum 封装了一个函数简化 C ABI 接口:

.global __qtum_syscall
// long syscall(long number, long p1, long p2, long p3, long p4, long p5, long p6)
__qtum_syscall:
push %ebp
mov %esp,%ebp
push %edi
push %esi
push %ebx
mov 8+0*4(%ebp),%eax
mov 8+1*4(%ebp),%ebx
mov 8+2*4(%ebp),%ecx
mov 8+3*4(%ebp),%edx
mov 8+4*4(%ebp),%esi
mov 8+5*4(%ebp),%edi
mov 8+6*4(%ebp),%ebp
int $0x40
pop %ebx
pop %esi
pop %edi
pop %ebp
ret

不过,因为 libqtum 为每个系统调用都封装了易用的函数,大多数人永远不用对系统调用执行任何操作。

https://t.cn/Ewtn6ic


发布     👍 0 举报 写留言 🖊   
✋热门推荐
  • 我相信有这样可爱的居民有那么多勇敢的奉献者,大庆一定可以迅速挺过去的,毕竟我们是铁人的城市,大庆精神,铁人精神,每一个大庆人都耳熟能详的内容,原以为只是书面口号
  • 虽然王家卫没剧本、捉摸不透的拍摄方式让许多名演员备受折磨,但王菲似乎挺享受跟王家卫的合作,她曾表示“王家卫找我拍戏,我一般不会拒绝”。影片本身的信息量不大,
  • 因为外出,今天是本周的第一次跑。人体舒适度指数3级,早晨和傍晚微凉,午后感到舒适。
  • 不想那么多也许更轻松互关与否不是去留的唯一形式以下六点简单说明,想双的老师动动手指,或者我可能会慢慢考虑[心]希望我们都能在更好的时候遇上更好的彼此[心](常和
  • 黑粉甚至在推上专门为了黑玧其建立了小号,一个刚建立的号,粉丝几十,却能被联动搬运到各个论坛,想必大家都清楚这背后并不简单,但谣言的大范围扩散也已经造成了十分恶劣
  • 在此阶段,我们曾对自我迷恋的某人疯狂的追求过,以往为自我的梦想呐喊过,也对世间的教条挣扎过……一切令人费解,不可思议的事在此阶段做起来都如随风飞舞的落叶,顺其自
  • 吃瓜不信瓜[吃瓜][吃瓜][吃瓜]孔雪儿、任豪 主演的网剧《明媒善娶》拿到网剧发行许可证了。吃瓜不信瓜[吃瓜][吃瓜][吃瓜]孔雪儿、任豪 主演的网剧《明媒善娶
  • 多年的军旅生涯让老两口一直秉承勤俭节约、节能环保的生活理念,他们立足于此,树立家风家训,并不断影响着身边的人。②凡事留余,处处为真——平凡生活的真谛“留余”是怀
  • 月亮出来,洒下素白的外衣,带着千树万树的枝桠在画扇流萤里轻舞,瞥见了安静的万家灯火,渗透着诸事静好的灵犀。看星座不能只看太阳星座,也就是你们经常说的自己是什么星
  • 中央的墓冢很高,如今被為了起來,裏面長滿了草,聽說是象徵著「野火燒不盡,春風吹又生」。一時間,感覺如果還有什麼比一坐陵園、一坐紀念碑更嚴肅的緬懷,那就是銘記他們
  • 开始还舌灿莲花、不断吹嘘该房子多好多好的管家有点难堪,只讪讪说了一句:“别担心,入住前会有保洁打扫的。找房初始,不懂行情的我斗胆看了二三环附近的一居,高昂的价格
  • 根据此次认证公布的证件照显示,该款vivo新机的正面将会采用目前主流的开孔屏,开孔位置位于屏幕顶部的中间,并且屏占比方面也势必有着不错的表现。#vivo[超话]
  • 小时候一直认为,只有人品好的人才能成功,长大了发现,自己太单纯了,世界太大,我只是从小在中国农村的一个小角落里长大,从小接触的世界都太纯洁,心里面只有农田,森林
  • 受到老四和贵英的激励,过日子还要心怀希望,提起心气儿来,路还长,期待遇见我的老四,在自己的家里,自己的炕上,吃着馍馍,种着麦穗花。《隐入尘烟》 贵英说,我怎么也
  • #刘大锁[超话]#花花世界迷人眼 没点实力别赛脸欢迎来到喜剧king的超话(bushi)我——是你滴锁王为了迎接锁王线下 本人又去不了现场 特此订购应援物若干替
  • 刚刚又清楚感受到了摇啊摇现在真的分不清是心悸还是地震,神经一直紧绷着,昨天直接失眠到早上7点过做完核酸才敢睡觉,丝毫不夸张,昨天还写了类似“遗书”的日记,总感
  • 9、成长就想一颗种子成长为花朵一样,起初相当长一段时间的成长都是在我们无法观察到的地下进行的,不要不满现在,成就往往就在一瞬间。(原因和结果的非线性关系,事后
  • 【哈尔滨市香坊区部分区域调整风险等级】 根据国务院联防联控机制有关要求,经专家综合研判,哈市指挥部决定,自2022年9月4日10时起,将哈尔滨市香坊区果园星城小
  • 核心还有很多,动态交互、3D环物、3D建模、小酷AI助手、全景万店通、酷客导航等,小酷就不一一介绍了,关于酷雷曼简介,你了解多少呢成长历史2015~2016年1
  • 名称:大连岭古道区域:淳安起讫地点:浪川乡狮古山村——安徽石门乡路面材质:青石板总长度:20公里简介:位于淳安,有“60里连岭”的说法,全程一米半宽的石板路,故