|
教你如何分析和破解XBOX游戏 如果转载此文请保留完整! 游戏名称:Dino Crisis 3 (恐龙危机3日版) 所用工具:IDA Pro 4.5 full反编译工具新的版本支持了xbox的xbe文件格式的支持 uedit v10.x 16进制修改工具 EvoXDTSR_02[1].06.04 xbox上类似fpe的修改工具 分析破解难度:普通 分析破解人:大老 所属组织:=BCG= =[DCG]= 本人作品:《文件加密狗检测工具 2.1》 《大老的打狗教程第一篇如何解掉hasp的狗》 《大老的打狗教程第二篇如何解掉深思3的狗》 《大老的打狗教程第三篇(最终篇)如何解掉rockey4的狗》 《Armadill 3.XX 修复导入表加密部分及对应解决方法》 《教你如何破解Gba rom程序》 本人邮箱:dalao@qdcnc.com dalao@top86.com 本人主页:http://dalao2002.yeah.net 本人论坛:http://61.177.65.168/dalaobbs//index.php?act=idx Oicq:79234668 此文献给所有爱好解密的朋友们! 网上没有这方面相关的文章我来开个头,我只是大体说一下分析修改的思路!其实和破解加密狗差不多的希望高手不要见笑呀! 希望对大家有所帮助! (1)先讲讲EVox Trainer和EvoXDTSR_02[1].06.04的使用,给大家讲点基础知识. 引用相关文章,作者是SpriteZ! EVox Trainer研究报告. hi, 我是SpriteZ. 近日,连续在个国外的%77%77%77%2E%64%64%6A%6D%2E%63%6F%6D搜索并试验,终于将EVox下的Trainer搞定,特与各同好分享. 如有不足之处,欢迎批评指正(spritez_z@hotmail.com). 1. 什么是Trainer? Trainer其实就是国内俗称的"金手指",PS/PS2,DC,GBA等,都有相应的硬件,新全讯网,但XBOX上一直没有,现在好了, 新版的EvolutionX已经含有这个功能了,在EvolutionX 1.8.3921及更高的版本都含有这个功能了.由于 我手头没有整个系列的EvolutionX,因此,我无法确定,这个功能是从那个版本开始有的,总之,如果你想 使用这个功能,请尽量使用最新版本的EvolutionX!!! 目前, 我使用的是EvolutionX 1.8.3959,所有测试都在此版版本上通过. 2.如何启动Trainer功能? 2.1 很简单,请编辑你的EVOX.INI文件,在你的菜单中,加入如下一行: Item "Trainers",ID_trainer 保存EVOX.INI文件,并上传到XBOX中C盘,根目录下. 在C盘根目录下创建Trainers目录,将金手指文件,拷贝到此目录中.EVox的金手指文件是.etm结尾的文件 你可从http://trainers.evolutionx.info/下载. 2.2 将EvolutionX中的IGR(In Game Reset)选项设置为Yes,将TSR选项设置为Normal(或Debug). 都做好了吗?那么现在重新启动你的机器(记住,一定要重启你的XBOX). 2.3 XBOX重启后,你的菜单中多了一项Trainers,如果,你的XBOX中c:\Trainers下已经有了金手指文件的话 你可以进入Trainers菜单项,并看到金手指列表. 选中你要启动的金手指,此时,会进入一个新的页面,其中最开始的是Enable项,一般后面还有其他的选项. 如果,你知道这些选项是什么意思,可根据需要选择(Yes).如果,你的英文不是很好,那么,我建议你将所有 的选项都选择Yes. 最后,请记住一定要选择Exit&Save(保存并退出)来结束你的设置. 2.4 恭喜你,现在你可以运行你启动金手指的游戏了(光盘,硬盘都可以).你必定有惊奇的发现. 3.注意事项: 3.1 你可以同时开启多个金手指,如SoulCalibur 2,Dino Crisis 3,Dead to Rights等,EvolutionX会根据 你运行的游戏,来选择启动那个金手指的. 3.2 在你下载金手指文件时,请弄清楚你的游戏的版本(日版,美版,发售日期等),上面说过,EvolutionX会 自动根据你的运行的游戏,选择启动金手指的,如果版本不对,是不会有任何效果的.所以,请弄清版本. 我刚开始,就犯过这样的错误. 3.3 国外%77%77%77%2E%64%64%6A%6D%2E%63%6F%6D提供的金手指多半是针对美版的,所以,下回购买游戏时请尽量选购美版的吧 EVox Trainer研究报告(2). hi, 我是SpriteZ. 近日,连续在个国外的%77%77%77%2E%64%64%6A%6D%2E%63%6F%6D搜索并试验,终于将EVox下的Trainer搞定,特与各同好分享. 如有不足之处,欢迎批评指正(spritez_z@hotmail.com). 1. 一堆不得不说的废话: 本篇是上一篇的续,主要叙述关于Evox Trainer的工作原理,并不涉及安装设置问题.因此,如果想知道如 何安装设置并激活Trainer的朋友,请看上一篇就可以了.这篇可供希望更深入了解Trainer,并有一定的 基础知识的朋友阅读.不过请注意,以下谈及的东西,只是我个人的一些心得,并没有直接的文章或权威机 构的信息作印证,难免有错漏之处,敬请阅读者自行纠正,并指正,谢谢. 目前, 我使用的是EvolutionX 1.8.3959,所有测试都在此版版本上通过. 2.EVox Trainer是如何工作的? 目前,我们所见的金手指几乎都要依赖硬件的支持.其原因是,我们必须在一个正常的程序(游戏)运行过程 中,在适当的时机中断它,百家乐,并获得控制权(运行我们自己编写的程序).至于中断的方法,就是大多数金手指 卡所依赖的硬件,有的金手指卡会有自己的处理器(MCU),其上有自己的程序,可产生外部中断.而我们的PC 机和XBOX则没有相应的金手指硬件,它们是如何使用金手指功能呢?答案是靠系统和BIOS的接口或后门.PC 机上的FPE等大家都熟悉,Windows操作系统本身提供接口,但仍需一定的技巧获得高级控制权.XBOX则就要 依靠我们的EvolutionX和支持IGR的BIOS了(细节可见下节). 从工作方式上看,打多数的金手指是采用定时中断,修改制定的内存数据(Data段),如游戏中主角的生命值, 弹药数量使其固定为某个指定的数值.另一种是,只在程序运行前运行一次,修改游戏的程序(Text段),将修 改某内存单元(如游戏中主角的生命值,弹药数量)的指令清除或屏蔽掉.EVox Trainer就数于这种方式. 这两种方式各有优点,第一种,实现简单,可制作成独立的模块.初级水平的人也可自己制作金手指,只要找到 要修改的内存单元,指定好数据,金手指模块会自动锁定数值.而第二种,则实现复杂,制作金手指的人必须要 能够阅读游戏程序(汇编程序 # )的相应部位,确定如何修改,全讯网2,才能生成相应的金手指程序(*.etm)文件.但 优点是,不只可用于金手指,还可对程序进行patch(打补丁).因此,适应范围更广. 3.EVox Trainer是如何启动的? 那么,EVox Trainer是如何启动的呢?还记得我在上一篇中曾提到,在EvolutionX设置中要将IGR和TSR打开吗? 如果你够聪明,你就能够想到,IGR可产生中断,而TSR则允许加载我们的金手指程序(*.etm). IGR(In Game Reset)将启动EvolutionX对手柄IRQ中断的监视.可知道我们是否运行了default.xbe程序. default.xbe是所有XBOX游戏的默认执行程序,其中含有标识游戏的两个重要的信息,"Title ID" 和"TimeDate Stamp".当EvolutionX发现启动了一个default.xbe时,就检查其中的这两个信息,如果和 C:\Trainer中Enable的Trainer信息吻合是,就先执行Trainer程序(*.etm).此时,Trainer程序将修改已经加载 到内存的default.xbe程序.之后,EvolutionX会运行内存中的default.xbe程序,我们的游戏开始了. 明白了吗?所以,Trainer程序是要挑default.xbe文件的,如果,游戏的版本或日期与Trainer不符,Trainer 是不会运行的.因此,你可以同时Enable多个Trainer,EvolutionX会自动启动相应的文件的. 但,另一方面,如果,你发现,你下载的Trainer Enable后没有起作用,那么,只能说明游戏的版本或日期和 Trainer只定的不一样. 关于TSR我就不想多说了,概念和当年DOS中的TSR相同,有兴趣的人,可查阅相关资料. 4 最后的废话: 我不知道会有几个人有兴趣阅读这篇文章,可能难懂一些.但毕竟我整块的时间不是很多,所以,我还是 趁现在一鼓作气,写了这篇.不知道高级篇(制作Trainer)还有没有机会写出来.也许,更多的是和个别感兴趣 的朋友私下交流吧. 我不是一个真正的玩家,借口是没有充裕的时间慢慢打关练级,所以搞一些金手指的旁门左道,希望大家不要 学我. 摘自: http://www.xbox-sky.org 《一定要看》 作者还有一篇文章重要,这个讲了如何用EvoXDTSR_02[1].06.04这个工具来找游戏里咱们感兴趣的数据地址 EVox Trainer研究报告(高级篇上)带图 下载地址: <1> http://61.177.65.168/dalao/crack/EVoxTrainer.rar <2> http://www.xbox-sky.org/attachment.php?s=&...=&postid=142190 (2)xbox的游戏主执行文件名都是default.xbe ,现在进入正题如何分析修改这个xbe文件,我讲2个部分 分别是Tempests 弹药 <1>武器弹药部分 先用EvoXDTSR_02[1].06.04这个工具来查找武器弹药的地址,不会的请看SpriteZ写的文章 经过3次左右的查找后就会找到353114这个地址poke这个地址后果然是Tempests数量的地址, 然后用鼠标双击Breakpoints窗口里的#0会弹出一个Create a new breakpoint:的窗口在offset:里添上353114这个地址size选byte 如果是比较大的数超过6位就选dword或word,break on:选write 点ok后这个断点就设置完成了!现在在回到游戏里发射Tempests EvoXDTSR_02[1].06.04会弹出一个新的中断窗口!注意看第2项的19B0C地址纪录后用IDA PRO 4.5反编译default.xbe程序 完成后,按G输入19B0C回车即可来到下面部分: mov edx, [esp+28h+arg_0] .text:00019AF1 mov ecx, dword_353114[edx*4]从内存里取数据 .text:00019AF8 xor eax, eax .text:00019AFA add edi, offset unk_203440 .text:00019B00 cmp ecx, eax 判断弹药是不是用完 .text:00019B02 jle short loc_19B0C=用完就跳 .text:00019B04 dec ecx=注意这里是ecx-1 没有用完弹药数量减一 .text:00019B05 mov dword_353114[edx*4], ecx 弹药数据写回原来的地址 .text:00019B0C .text:00019B0C loc_19B0C: ; CODE XREF: sub_19A60+A2\u0018j 会到这向上看找DEC指令 .text:00019B0C mov ecx, [ebp+1DB4h] .text:00019B12 mov edx, [ecx+5E4h] .text:00019B18 xorps xmm0, xmm0 .text:00019B1B inc edx .text:00019B1C mov [ecx+5E4h], edx .text:00019B22 有两种改法!(1)把00019B04可以改成inc ecx机器码是41就是加1 (2)也可以把00019B04改成nop机器码是90就是啥也不做! <2>改弹药无限 方法和第<1>部分差不多我简单说一下 找到00352f04这个弹药存放地址设断点中断后会显示0005CCED这个地址再ida pro 中按G输入后来到下面 .ext:0005CCCA mov edx, [esi+1DB4h] ; default .text:0005CCD0 mov eax, [edx+418h] .text:0005CCD6 push eax .text:0005CCD7 push esi .text:0005CCD8 call sub_4F320=取弹药存放地址 .text:0005CCDD add esp, 8 .text:0005CCE0 test eax, eax 找到没有 .text:0005CCE2 jz short loc_5CD04 ====〉没有找到就跳 .text:0005CCE4 mov ecx, [eax] ====〉找到了!取出弹药数量到ecx .text:0005CCE6 test ecx, ecx 是不是用完了 .text:0005CCE8 jle short loc_5CCED 用完了跳 .text:0005CCEA dec ecx 没有用完弹药数量减一 .text:0005CCEB mov [eax], ecx 把弹药数量写回到地址里 .text:0005CCED .text:0005CCED loc_5CCED: ; CODE XREF: sub_5BDB0+F38\u0018j .text:0005CCED cmp dword ptr [eax], 0 会到这向上看找DEC指令 .text:0005CCF0 jnz short loc_5CD04 .text:0005CCF2 mov eax, [esi+1DB4h] .text:0005CCF8 mov ecx, [eax+330h] .text:0005CCFE mov [eax+334h], ecx 同样有两种改法!(1)把0005CCEA可以改成inc ecx机器码是41就是加1!改了以后那以后打枪的时候弹药不是减1了而是加1! (2)也可以把0005CCEA改成nop机器码是90就是啥也不做! 教程写完了,利记投注网!希望对看过的朋友和想修改xbox软件而找不到方法的朋友有所帮助! 本来想写个Trainer程序(*.etm)来动态修改default.xbe文件结果写了一个用MXT_EasyEvoXTrainerMaker 1.0生成的etm不好用! 后来直接分析修改的文件弹药金钱Tempests无限!需要的朋友我可以到我的%77%77%77%2E%64%64%6A%6D%2E%63%6F%6D上下载! 支持的朋友回个贴子!谢谢! 相关工具的下载地址!可以到www.baidu.com上搜索! 大老 写于 04:20 凌晨 2004-07-20 如果转载此文请保留完整! (责任编辑:admin) |
