1.Linux下的源码Meltdown攻击实践(含代码)
2.谁知道永恒之塔的移动出技能怎么改文件的?
3.地下城与勇士 自动打怪(python版)
Linux下的Meltdown攻击实践(含代码)
北京时间年月日,Google Project Zero公开了Meltdown(熔毁)漏洞,源码指出该漏洞能够影响几乎所有的源码Intel CPU和部分的ARM CPU,于是源码相关的侧信道攻击方式由此开始走进大众的视野。
Meltdown攻击是源码一种直接针对底层硬件机制(CPU的乱序执行机制、Cache机制和异常处理机制)的源码源码培训开班时间侧信道攻击,它的源码基本原理如下所示:
这里对上图及上述条件作简单解释:从顶层程序的角度来看,指令A、源码B和C应该是源码顺序执行的,且由于指令A访问了非法地址的源码数据会触发异常,故指令B和C的源码操作不会被执行;然而,从底层硬件的源码角度来看,指令A、源码B和C满足乱序执行的源码条件,于是源码在下一指令所需要的数据准备完成后就可以立即开始下一指令的执行。在图中指令A的“阶段A_1”结束后,指令B由于所需要的数据已经准备完成故可立即开始执行;在图中指令B的“阶段B_1”结束后,指令C由于所需要的数据已经准备完成故可立即开始执行。若“阶段A_2”的执行时间大于“阶段B_1”的执行时间和“阶段C_1”的执行时间之和,则非法数据能够经过运算产生合法地址,筹码涨停低开源码且该合法地址的数据能够被放入L3_Cache中;若在指令A的“阶段A_2”结束后,检查出非法访问所引起的回滚冲刷不影响L3_Cache,则与非法数据相关的合法数据依然存在于L3_Cache中。最后,通过遍历访问合法地址的数据,并对访问时间进行计时,能够找到某个访问时间明显较短的合法数据,该数据的合法地址即为指令B中由非法数据经过运算后所得到的值,从而可以反推出原非法数据,于是间接地得到了非法地址中的数据。
随后将详细说明完整的Meltdown攻击是如何具体实施的,文中攻击实践的操作系统平台为虚拟机中的Ubuntu。此前,在虚拟机中的Ubuntu和某服务器中的某操作系统上也能够成功实施该Meltdown攻击,只是某些具体的实施步骤和本文有细微差别。
简单写一个字符设备驱动程序,该驱动程序运行在操作系统内核态,私有存储空间内有一段秘密信息。这里只实现了它的工程图指标源码IOCTL函数、OPEN函数和READ函数,其中主要关注如下所示的READ函数(带注释的完整源代码已上传至Github):
该READ函数能够将内核空间中的秘密信息的存储地址反馈给用户空间中的一般用户程序,于是一般用户程序可通过直接调用该函数得到秘密信息的存储地址。然而,对于一般用户程序来说,通过该READ函数读取到的地址是一个不可访问的非法地址,其中的数据对一般用户程序不可见,也就是说一般用户程序无法通过正常的访问流程来获取该秘密信息。但是,随后的Meltdown攻击的对象即为该驱动程序,这一侧信道攻击方式可绕过操作系统的隔离间接地窃取到该秘密信息。
首先,编译该驱动程序的源代码,生成可加载的内核模块:
在加载编译生成的内核模块之前,先看一下操作系统中已经加载的内核模块,以作对比:
接下来,加载编译生成的内核模块;然后,再次查看操作系统中已经加载的内核模块:
对比以上两图,可以看出"Module"一列的三端龙途源码第一行新增了内核模块"memdev",说明OS内核模块加载成功。
最后,在内核模块加载完成的基础上,还需要在/dev目录下创建对应的设备节点文件,从而一般用户程序可以通过该文件访问内核模块:
尝试调用该内核模块(带注释的完整源代码已整合进Meltdown攻击代码中并上传至Github):
至此,作为攻击对象的目标驱动程序已经被加载成为内核模块,且能够被一般用户程序正常调用。
首先,通过操作系统自带的文件查看是否存在Meltdown漏洞:
其次,通过Github上的spectre-meltdown-checker程序来查看是否存在Meltdown漏洞:
接下来,通过添加内核参数"nopti"以关闭操作系统的Meltdown补丁:
重启操作系统后再次查看是否存在Meltdown漏洞:
最后,通过运行Github上的meltdown-exploit程序来查看操作系统是否真的能够被Meltdown攻击窃取一些秘密信息:
至此,操作系统的Meltdown补丁已经被关闭,此时可通过Meltdown攻击窃取其中的部分秘密信息。
首先,分析Meltdown攻击的源代码(带注释的完整源代码已上传至Github):
1. 主函数内主要包括五个运行步骤,具体说明分别如下:
2. 主函数内最关键的函数为attack函数,其中主要包括四个步骤,具体说明分别如下:
3. attack函数内的桌面管理器源码核心部分是attack_core函数,该部分也即是整个Meltdown攻击的硬件机制缺陷利用点所在:
其中值得注意的是上述汇编代码的第八行、第九行和第十一行。第八行:对目标地址进行非法访问,将其中的字节数据放入寄存器al(寄存器rax的低8位);第九行:将寄存器rax左移位,相当于乘上(该乘数至少为一个Cache_Line的大小,否则攻击中使用的相邻存储地址会相互影响);第十一行:将非法访问的数据作为新地址的一部分,再访问新地址(rbx+rax*0x1)中的数据以将其载入Cache。在第八行的指令执行完后,以顺序执行的角度来看,由于第八行的指令进行了非法访问,故CPU会产生异常阻止接下来的指令执行;然而,由于乱序执行机制的存在,第九行和第十一行的指令会在第八行的指令的异常处理完成之前就开始执行,且CPU异常处理的回滚机制并不会改变L3_Cache中的内容,于是第九行的指令将秘密信息混入合法地址中,第十一行的指令将合法地址的信息混入L3_Cache中。在异常处理函数中简单地完成对相应异常的处理后,即可通过L3_Cache利用典型的"Flush+Reload"Cache攻击来反推出原秘密信息。
最后,编译并执行Meltdown文件,得出的Meltdown攻击结果如下所示:
至此,Meltdown攻击的具体实践成功完成。
以上三条防护措施只是所有可能的防护措施的一部分,也存在其它有效的针对Meltdown攻击的防护措施。
第1、2条防护措施需要对底层的硬件做出改动,对成本和性能的影响较大,在实际工程中难以接受其带来的负面作用;第3条防护措施是操作系统层面的漏洞修补,对成本和性能的影响相对较小,目前以各操作系统补丁的形式被实施(KAISER/KPTI)。
meltdownattack.com/
Meltdown: Reading Kernel Memory from User Space
github.com/paboldin/mel...
2. Linux驱动相关:
paper.seebug.org//
/article--1...
4. x汇编相关:
ibiblio.org/gferg/ldp/G...
blog.csdn.net/littlehed...
blog.chinaunix.net/uid-...
en.wikibooks.org/wiki/X...
5. 本文源代码相关:
github.com/hahaha...
谁知道永恒之塔的移动出技能怎么改文件的?
代码给你了,自己看哈。
把解除冲击变成主动技能,移动地狱火,无目标暗袭
有人担心是木马,现在公开源代码,帮忙顶一下
让剑星攻击上,让守护血条上,让魔道瞬移米,,所有职业加快技能释放速度,让你有个小均衡!
下午将放出,移动地狱火,及剑星移动粉碎,杀气;杀星主动反击,及主动旋风斩,主动短剑及标枪,移动猛兽三连,无目标暗袭
下午或晚上也将放出!其实下载的文件都是大同小异,就是修改了魔道,或剑,或杀的技能释放条件,距离,打断===,你自己对比下,文件可以用记事本打开,可以自己修改或插入!现在公开源文件
移动地狱火
<id></id>
<desc>STR_SKILL_WI_HellFire_G3</desc>
<desc_long>STR_SKILL_WI_HellFire_DESC</desc_long>
<desc_abnormal>STR_SKILL_WI_HellFire_Abnormal</desc_abnormal>
<name>WI_HellFire_G3</name>
<type>Magical<pe>
<sub_type>Attack</sub_type>
<skill_category>SKILLCTG_NONE</skill_category>
<ultra_skill>0</ultra_skill>
<ultra_transfer>0</ultra_transfer>
<chain_category_level>3<ain_category_level>
<chain_category_priority>WI_HellFire<ain_category_priority>
<pvp_remain_time_ratio></pvp_remain_time_ratio>
<pvp_damage_ratio></pvp_damage_ratio> pvp伤害惩罚比例。。
<skillicon_name>CBT_WI_HellFire_G3</skillicon_name>
<delay_id></delay_id>
<activation_attribute>Active</activation_attribute>
<cost_parameter>MP</cost_parameter>
<cost_end_lv></cost_end_lv>
<cost_end></cost_end> MP消耗
<target_slot>None</target_slot>
<target_stop>0</target_stop>
<hostile_type>Direct</hostile_type>
<delay_type>0</delay_type>
<delay_time></delay_time> 延迟时间。。。
<target_maxcount>1</target_maxcount> 最大目标数量
<first_target>Target</first_target>
<first_target_valid_distance></first_target_valid_distance> 目标距离。。
<revision_distance></revision_distance>
<target_range>OnlyOne</target_range>
<target_species_restriction>All</target_species_restriction>
<target_relation_restriction>Enemy</target_relation_restriction>
<cancel_rate></cancel_rate> 被打断率
<obstacle>4</obstacle>
<add_wpn_range>0</add_wpn_range>
<casting_delay></casting_delay> 吟唱时间
<auto_attack>maintain</auto_attack>
<peace_skill>0</peace_skill>
<motion_name>Pointfire3</motion_name>
<target_marker_radius>0</target_marker_radius>
<cast_fx>FC_wi_hellfire.G1.cast</cast_fx>
<cast_fx_bone>GB_FINGER</cast_fx_bone>
<cast_voice>b_attack_sfire_a</cast_voice>
<show_weapon>0</show_weapon>
<fire_fx>FC_wi_hellfire.G1.Fire</fire_fx>
<fire_fx_bone>GB_FINGER</fire_fx_bone>
<pre_fx>skill_wi_hellfire.hellfire.pre</pre_fx>
<pre_fx_delay>1.</pre_fx_delay>
<pre_fx_bone>ground</pre_fx_bone>
<hit_fx>FC_wi_hellfire.G1.hit</hit_fx>
<hit_fx_bone>FX_HIT_fix</hit_fx_bone>
<hit_fx_attacker_oriented>0</hit_fx_attacker_oriented>
<status_fx>sts_stun.stun.status</status_fx>
<status_fx_bone>Bboxtop</status_fx_bone>
<status_fx_slot>3</status_fx_slot>
<effect1_type>SpellATK_Instant</effect1_type>
<effect1_noresist>0</effect1_noresist>
<effect1_target_type>Target_Only</effect1_target_type>
<effect1_reserved1></effect1_reserved1>
<effect1_reserved2></effect1_reserved2>
<effect1_reserved6>0</effect1_reserved6>
<effect1_reserved>Fire</effect1_reserved>
<effect1_reserved></effect1_reserved>
<effect1_reserved></effect1_reserved>
<effect1_reserved>1</effect1_reserved>
<effect1_critical_prob_mod2></effect1_critical_prob_mod2>
<effect1_hop_type>SkillLV</effect1_hop_type>
<effect1_hop_a></effect1_hop_a>
<effect1_hop_b></effect1_hop_b>
地下城与勇士 自动打怪(python版)
欢迎探索地下城与勇士的新纪元,我们将用Python编织一场智能与策略的对决!Python地下城勇士自动打怪秘籍,不单为了盈利,而是为了技术的探索与分享。让我们深入解析这一过程:技术概述:Python的OpenCV图像识别与pyautogui模拟操作,如同魔法般控制角色,实现零干扰的游戏体验。
每个环节都精心设计,以期最优化地完成任务:核心策略:通过图像识别精准定位角色(find_character())和敌对生物(find_monster()),利用pyautogui的智能判断,模拟角色的移动(move())与精确攻击(attack())。
所需工具箱包括Python的PyAutoGUI、Pillow以及pynput等库,它们如同勇士的宝剑与盾牌,助你一臂之力:基础配备:安装Pillow进行图像处理,pyautogui负责模拟用户操作,pynput则提供键盘控制功能。
下面,我们将逐步揭示这趟自动打怪之旅的详细步骤:装备准备:首先,确保已安装Pillow, pyautogui, 和 pynput库;
视觉侦察:捕获角色和怪物的实时画面,定位关键信息并保存截图;
战斗编程:编写脚本,利用截图识别角色与怪物位置,启动自动化攻击流程。
对于更深入的学习,我们推荐关注我们的“python技术训练营”公众号,那里有详尽的教程、实战项目,从入门到精通,一应俱全。无论你是游戏爱好者,还是技术探索者,这里都有你想要的内容,包括但不限于面试技巧、基础教程、模块精通、量化交易,甚至游戏源码解析。 一起踏上这个智能打怪的旅程,让技术与游戏的交融点燃你的激情!在遇到任何问题时,这里的大门永远为你敞开,欢迎随时提问,共同提升。