首页
社区
课程
招聘
教你如何分析和破解XBOX游戏
2004-7-22 15:35 10585

教你如何分析和破解XBOX游戏

2004-7-22 15:35
10585
教你如何分析和修改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 [email]dalao@top86.com[/email]
本人主页: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. 近日,连续在个国外的网站搜索并试验,终于将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 国外网站提供的金手指多半是针对美版的,所以,下回购买游戏时请尽量选购美版的吧

EVox Trainer研究报告(2).

hi, 我是SpriteZ. 近日,连续在个国外的网站搜索并试验,终于将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就数于这种方式.
  
  这两种方式各有优点,第一种,实现简单,可制作成独立的模块.初级水平的人也可自己制作金手指,只要找到
  要修改的内存单元,指定好数据,金手指模块会自动锁定数值.而第二种,则实现复杂,制作金手指的人必须要
  能够阅读游戏程序(汇编程序 -_-# )的相应部位,确定如何修改,才能生成相应的金手指程序(*.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+A2j  =========〉会到这向上看找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+F38j
.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无限!需要的朋友我可以到我的网站上下载!
支持的朋友回个贴子!谢谢!
相关工具的下载地址!可以到www.baidu.com上搜索!
大老
写于
04:20 凌晨 2004-07-20
如果转载此文请保留完整!
==========================================================================================================================

[培训]内核驱动高级班,冲击BAT一流互联网大厂工 作,每周日13:00-18:00直播授课

收藏
点赞7
打赏
分享
最新回复 (13)
雪    币: 239
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
dINO 2004-7-22 15:45
2
0
Support !
;)
雪    币: 202
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
andrewzz 2004-7-23 12:24
3
0
鼎啊
雪    币: 107
活跃值: (641)
能力值: ( LV9,RANK:180 )
在线值:
发帖
回帖
粉丝
runjin 4 2004-7-23 14:57
4
0
高!
雪    币: 1866
活跃值: (95)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
dalao 1 2004-7-24 01:10
5
0
hehe 看的人多支持的人少呀!估计圈里的朋友玩游戏的少呀!
雪    币: 110
活跃值: (1245)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
cd37ycs 2004-7-26 16:40
6
0
大佬厉害
雪    币: 425
活跃值: (412)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
鸡蛋壳 2004-7-26 16:47
7
0
其实破解XBOX芯片的是中国人,现在在麻省大学念博士。
雪    币: 1866
活跃值: (95)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
dalao 1 2004-7-31 00:35
8
0
pediy
这个可是另类文章你也不加个精!
雪    币: 319
活跃值: (866)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
aqtata 2 2004-7-31 10:59
9
0
最初由 鸡蛋壳 发布
其实破解XBOX芯片的是中国人,现在在麻省大学念博士。


不会是在说你自己吧,呵呵
雪    币: 513
活跃值: (2228)
能力值: ( LV9,RANK:2130 )
在线值:
发帖
回帖
粉丝
loveboom 53 2004-7-31 17:08
10
0
最初由 dalao 发布
pediy
这个可是另类文章你也不加个精!

看雪老大,可能有事忙嘛,好文章应该会加精的,;)
雪    币: 231
活跃值: (115)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
风云剑 2004-7-31 17:43
11
0
:D 怪不到微软的XBOX亏本啦。
雪    币: 231
活跃值: (409)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
cobra1111 2004-7-31 19:15
12
0
好就一个子

以后我只说一次
雪    币: 47
活跃值: (34)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
shada 2004-7-31 19:18
13
0
支持
希望大佬能多出些现在的流行狗的
破解教程。
雪    币: 219
活跃值: (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
1anyh 2005-5-18 19:07
14
0
大佬历害..
游客
登录 | 注册 方可回帖
返回