我爱秘籍论坛

 找回密码
 加入论坛

QQ登录

只需一步,快速开始

扫一扫,访问微社区

CE:最优秀的游戏修改工具入门:修改器制作傻瓜教程说说:你最想要找的修改器以前游戏玩我们,现在我们玩游戏
进阶:游戏修改视频教程导航必备:超2400款游戏秘籍下载:超5000款游戏修改器必读:论坛金币获得方法
查看: 366319|回复: 50

[原创] Luxor修改教程

[复制链接]
发表于 2013-1-6 01:21:31 | 显示全部楼层 |阅读模式
本帖最后由 376408384 于 2013-1-6 01:42 编辑

很久木有发帖子咯

QQ截图20130105225730.jpg
今天元旦后第一天上班 拿了Luxor开刀玩了一下
工具: CT&OD


打开CT找到需要的数据
先该发射的球..通过不停的点击右键定为到改变的数据
地址是535E009

               Hex
yellow         1  
green          3
purple         0
red              2
Color         0A
Fire            08
Thunder    09
可以写入这些数值
得到不同的球(自己在往上追索就可以得到基址004289D8)

这里就不多说了...找指针论坛很多教程

[fly]锁定09数值  疯狂放电..哈哈哈
[/fly]
QQ截图20130105225730.jpg


接着找到分数数据 地址在0535DFB4
QQ截图20130105225730.jpg

在OD的数据窗口来到0535DFB4下内存写入断点(Breakpoint->Memory on write)
QQ截图20130105225730.jpg
中断在00408993

  1. 00408982    89B9 80010000   MOV DWORD PTR DS:[ECX+180],EDI
  2. 00408988    8981 84010000   MOV DWORD PTR DS:[ECX+184],EAX
  3. 0040898E    8B59 14         MOV EBX,DWORD PTR DS:[ECX+14]
  4. 00408991    03DA            ADD EBX,EDX                                         //分数增加
  5. 00408993    8959 14         MOV DWORD PTR DS:[ECX+14],EBX   //[ECX+14]保存分数
  6. 00408996    8B59 18         MOV EBX,DWORD PTR DS:[ECX+18]
  7. 00408999    13DE            ADC EBX,ESI
  8. 0040899B    8BD3            MOV EDX,EBX
  9. 0040899D    8959 18         MOV DWORD PTR DS:[ECX+18],EBX
复制代码
往上拉找到函数头 地址00408920

  1. 00408920    8B5424 04       MOV EDX,DWORD PTR SS:[ESP+4]
复制代码
由于分数增加来源很多,可以通过消去不同颜色的球,获取道具 获取硬币等
所以该由不同的Call指向这里.
QQ截图20130105225730.jpg

在00408920    F2下断点 清除刚才的内存断点

  1. 00408709    53              PUSH EBX
  2. 0040870A    8BCF            MOV ECX,EDI
  3. 0040870C    E8 0F020000     CALL 00408920                            //回溯到第一个Call(这是消去同色求)
复制代码
往上拉找到函数头 地址004086C0  F2下断点

  1. 00402FFE    50              PUSH EAX
  2. 00402FFF    E8 BC560000     CALL 004086C0                         //回溯到第二个call
复制代码
继续
往上拉找到函数头 地址00402DA0  F2下断点



  1. 00402DA0  /$  83EC 18       SUB ESP,18
  2. 00402DA3  |.  53            PUSH EBX
  3. 00402DA4  |.  55            PUSH EBP
  4. 00402DA5  |.  56            PUSH ESI
  5. 00402DA6  |.  57            PUSH EDI
复制代码

中断后F7&F8跟踪分析一下这个过程
这个过程又分了几个小过程


来到这里看看

  1. 00402E4F  |.  85F6          TEST ESI,ESI
  2. 00402E51  |.  74 38         JE SHORT 00402E8B                     
  3. 00402E53  |>  56            /PUSH ESI
  4. 00402E54  |.  50            |PUSH EAX
  5. 00402E55  |.  8BCD          |MOV ECX,EBP
  6. 00402E57  |.  E8 E4010000   |CALL 00403040      //这里有一个Call 判断是否颜色连续的 连续Al返回1否则返回0                       
  7. 00402E5C  |.  84C0          |TEST AL,AL              //Test 指令  这里相当于and al,al  改变Z标志位
  8. 00402E5E  |.  74 27         |JE SHORT 00402E87         // 等于0就跳啦。。。关键跳啦         
  9. 00402E60  |.  837E 08 01    |CMP DWORD PTR DS:[ESI+8],1
  10. 00402E64  |.  0F84 C8010000 |JE 00403032                           
  11. 00402E6A  |.  8B5424 10     |MOV EDX,DWORD PTR SS:[ESP+10]
  12. 00402E6E  |.  8BDE          |MOV EBX,ESI
  13. 00402E70  |.  8BC6          |MOV EAX,ESI
  14. 00402E72  |.  8BB6 AF000000 |MOV ESI,DWORD PTR DS:[ESI+AF]
  15. 00402E78  |.  42            |INC EDX
  16. 00402E79  |.  895C24 14     |MOV DWORD PTR SS:[ESP+14],EBX
  17. 00402E7D  |.  85F6          |TEST ESI,ESI
  18. 00402E7F  |.  895424 10     |MOV DWORD PTR SS:[ESP+10],EDX
  19. 00402E83  |.^ 75 CE         \JNZ SHORT 00402E53                  
  20. 00402E85  |.  EB 04         JMP SHORT 00402E8B                     
  21. 00402E87  |>  8B5C24 14     MOV EBX,DWORD PTR SS:[ESP+14]
复制代码
CALL 00403040  F7进去就会看到以下代码
  1. 00403040 /$ 8B4424 04 MOV EAX,DWORD PTR SS:[ESP+4]
  2. 00403044 |. 8B4C24 08 MOV ECX,DWORD PTR SS:[ESP+8]
  3. 00403048 |. 8B40 04 MOV EAX,DWORD PTR DS:[EAX+4]
  4. 0040304B |. 8B49 04 MOV ECX,DWORD PTR DS:[ECX+4]
  5. 0040304E |. 3BC1 CMP EAX,ECX
  6. 00403050 |. 75 05 JNZ SHORT 00403057 ; Luxor.00403057
  7. 00403052 |. B0 01 MOV AL,1
  8. 00403054 |. C2 0800 RETN 8
  9. 00403057 |> 83F8 07 CMP EAX,7
  10. 0040305A |. 74 14 JE SHORT 00403070 ; Luxor.00403070
  11. 0040305C |. 83F9 07 CMP ECX,7
  12. 0040305F |. 74 0F JE SHORT 00403070 ; Luxor.00403070
  13. 00403061 |. 83F8 0A CMP EAX,0A
  14. 00403064 |. 74 05 JE SHORT 0040306B ; Luxor.0040306B
  15. 00403066 |. 83F9 0A CMP ECX,0A
  16. 00403069 |. 75 05 JNZ SHORT 00403070 ; Luxor.00403070
  17. 0040306B |> B0 01 MOV AL,1
  18. 0040306D |. C2 0800 RETN 8
  19. 00403070 |> 32C0 XOR AL,AL
  20. 00403072 \. C2 0800 RETN 8

复制代码
00402E5E  nop掉je指令 应该就实现连环消去了
QQ截图20130106010252.jpg
呵呵 直接把后面不管颜色是否连续都直接消去了

好继续 由于消去需要至少连续3个才可以消去
我们来修改一下 1个就可以消去

其实往下跟踪就发现这样代码

  1. 00402EF2 |> \837C24 10 03 |CMP DWORD PTR SS:[ESP+10],3    //[esp+10]存放连续同颜色的个数与3比较
  2. 00402EF7  |. /7C 46         |JL SHORT 00402F3F                 //Jl指令 小于3就跳出流程
  3. 2EF9  |. |8A4424 2C     |MOV AL,BYTE PTR SS:[ESP+2C]
  4. 00402EFD  |. |84C0          |TEST AL,AL
复制代码
所以把3改为0
或者nop掉jl指令
就可以达到目的

就这么简单
还可以实现更变态的修改
游戏有个Fire Combo流程
bbbbb.jpg
  1. 0040699B |> /8A86 AD000000 /MOV AL,BYTE PTR DS:[ESI+AD]
  2. 004069A1 |. |84C0 |TEST AL,AL
  3. 004069A3 |. |0F89 85000000 |JNS Luxor.00406A2E
  4. 004069A9 |. |837E 08 02 |CMP DWORD PTR DS:[ESI+8],2
  5. 004069AD |. |74 7F |JE SHORT Luxor.00406A2E
  6. 004069AF |. |24 7F |AND AL,7F
  7. 004069B1 |. |8886 AD000000 |MOV BYTE PTR DS:[ESI+AD],AL
  8. 004069B7 |. |8B46 04 |MOV EAX,DWORD PTR DS:[ESI+4]
  9. 004069BA |. |83F8 07 |CMP EAX,7
  10. 004069BD |. |74 6F |JE SHORT Luxor.00406A2E
  11. 004069BF |. |56 |PUSH ESI
  12. 004069C0 |. |8BCF |MOV ECX,EDI
  13. 004069C2 |. |E8 B9C6FFFF |CALL Luxor.00403080
  14. 004069C7 |. |8B86 AF000000 |MOV EAX,DWORD PTR DS:[ESI+AF]
  15. 004069CD |. |85C0 |TEST EAX,EAX
  16. 004069CF |. |74 12 |JE SHORT Luxor.004069E3
  17. 004069D1 |. |8A88 AD000000 |MOV CL,BYTE PTR DS:[EAX+AD]
  18. 004069D7 |. |84C9 |TEST CL,CL
  19. 004069D9 |. |78 08 |JS SHORT Luxor.004069E3
  20. 004069DB |. |50 |PUSH EAX
  21. 004069DC |. |8BCF |MOV ECX,EDI
  22. 004069DE |. |E8 0DC7FFFF |CALL Luxor.004030F0
  23. 004069E3 |> |8B46 14 |MOV EAX,DWORD PTR DS:[ESI+14]
  24. 004069E6 |. |8B4E 10 |MOV ECX,DWORD PTR DS:[ESI+10]
  25. 004069E9 |. |8B56 0C |MOV EDX,DWORD PTR DS:[ESI+C]
  26. 004069EC |. |50 |PUSH EAX
  27. 004069ED |. |51 |PUSH ECX
  28. 004069EE |. |8B8F EC210000 |MOV ECX,DWORD PTR DS:[EDI+21EC]
  29. 004069F4 |. |52 |PUSH EDX
  30. 004069F5 |. |E8 E6A80000 |CALL Luxor.004112E0
  31. 004069FA |. |8B46 0C |MOV EAX,DWORD PTR DS:[ESI+C]
  32. 004069FD |. |D85484 14 |FCOM DWORD PTR SS:[ESP+EAX*4+14]
  33. 00406A01 |. |8D4C84 14 |LEA ECX,DWORD PTR SS:[ESP+EAX*4+14]
  34. 00406A05 |. |DFE0 |FSTSW AX
  35. 00406A07 |. |25 00410000 |AND EAX,4100
  36. 00406A0C |. |75 04 |JNZ SHORT Luxor.00406A12
  37. 00406A0E |. |D919 |FSTP DWORD PTR DS:[ECX]
  38. 00406A10 |. |EB 02 |JMP SHORT Luxor.00406A14
  39. 00406A12 |> |DDD8 |FSTP ST
  40. 00406A14 |> |D94424 0C |FLD DWORD PTR SS:[ESP+C]
  41. 00406A18 |. |D846 1C |FADD DWORD PTR DS:[ESI+1C]
  42. 00406A1B |. |FF4424 08 |INC DWORD PTR SS:[ESP+8]
  43. 00406A1F |. |D95C24 0C |FSTP DWORD PTR SS:[ESP+C]
  44. 00406A23 |. |D94424 10 |FLD DWORD PTR SS:[ESP+10]
  45. 00406A27 |. |D846 20 |FADD DWORD PTR DS:[ESI+20]
  46. 00406A2A |. |D95C24 10 |FSTP DWORD PTR SS:[ESP+10]
  47. 00406A2E |> |8BB6 AF000000 |MOV ESI,DWORD PTR DS:[ESI+AF]
  48. 00406A34 |. |85F6 |TEST ESI,ESI
  49. 00406A36 |.^\0F85 5FFFFFFF \JNZ Luxor.0040699B
  50. 00406A3C |> 8B87 18040000 MOV EAX,DWORD PTR DS:[EDI+418]

复制代码

就是这里可以实现一键全屏秒杀 也是通过Fire Combo分数的增加下段跟踪得到的
方法大同小异 留给大家自己慢慢分析一下

最后说说去除后台暂停

其实通过CT可以找到一个后台暂停的标志数据
地址是0535DFD0
bbbbb.jpg

暂停就是01

在od数据窗口下内存写入断点

跟踪就找到代码
  1. 0040974E . 84DB TEST BL,BL
  2. 00409750 . 8BCE MOV ECX,ESI
  3. 00409752 . 74 0D JE SHORT Luxor.00409761
  4. 00409754 . 53 PUSH EBX
  5. 00409755 . E8 26000000 CALL Luxor.00409780   //暂停Call
复制代码
就压入一个参数ebx  ebx为1就暂停了0就继续

或者修改上面的je跳  改为jmp

就可其去除后台暂停


教程结束。。不喜欢勿喷。
期待你的指教。。谢谢~!

修改器嘛~!不会写~!懒得写~!嘻嘻~!
重在交流分析~!
发表于 2013-8-6 23:59:22 | 显示全部楼层
距离。美!! 发表于 2013-7-18 17:58
对了!为什么CE下载的中文在别的电脑上面就英文了?

汉化CE需要存放在全英文路径才能显示中文
回复 支持 反对

使用道具 举报

发表于 2013-8-6 22:39:16 | 显示全部楼层
LZ OD不错啊,我OD不好啊...继续学习OD,CE也需要努力,我顶多改个分数,LZ真强大
[发帖际遇]: liveandevil 发帖积极努力, 获得管理员奖励 1 金币. 幸运榜 / 衰神榜
回复 支持 反对

使用道具 举报

发表于 2014-5-29 21:37:12 | 显示全部楼层
抱歉,您需要升级所在的用户组才能下载本附件,详细请 点击这里查看。
回复 支持 反对

使用道具 举报

发表于 2013-1-6 12:37:33 | 显示全部楼层
帖子很详细  作者你技术不错 值得鼓励
回复 支持 反对

使用道具 举报

发表于 2013-1-6 14:04:23 | 显示全部楼层
路过。。。
回复 支持 反对

使用道具 举报

发表于 2013-1-6 14:26:28 | 显示全部楼层
飘过。。。。
回复 支持 反对

使用道具 举报

发表于 2013-1-6 15:29:55 | 显示全部楼层
            支持
回复 支持 反对

使用道具 举报

发表于 2013-1-6 15:53:24 | 显示全部楼层
很想问一句
没汇编的基础,能懂OD不?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-1-6 16:46:02 | 显示全部楼层
改游戏 汇编基础   必须的 其实就是逆向分析  OD就是一个很强悍的逆向分析工具
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-1-6 16:46:30 | 显示全部楼层
じ☆ve↘秒灬殺 发表于 2013-1-6 15:53
很想问一句
没汇编的基础,能懂OD不?

改游戏 汇编基础 必须的 其实就是逆向分析伀D就是一个很强悍的逆向分析工具
回复 支持 反对

使用道具 举报

发表于 2013-1-6 17:13:11 | 显示全部楼层
很好的教程
回复 支持 反对

使用道具 举报

发表于 2013-1-6 17:29:23 | 显示全部楼层
路过。看看
回复 支持 反对

使用道具 举报

发表于 2013-1-6 17:48:23 | 显示全部楼层
376408384 发表于 2013-1-6 16:46
改游戏 汇编基础 必须的 其实就是逆向分析伀D就是一个很强悍的逆向分析工具

我英语没及格过,学汇编咋样?
回复 支持 反对

使用道具 举报

发表于 2013-1-7 15:41:07 | 显示全部楼层
直接用OD搞,膜拜...
回复 支持 反对

使用道具 举报

发表于 2013-1-30 16:00:22 | 显示全部楼层
原创必定!
回复 支持 反对

使用道具 举报

发表于 2013-2-3 00:22:48 | 显示全部楼层
挺好的一片文章,看完香香确实是那么一回事,同时也给了我一些思路。
回复 支持 反对

使用道具 举报

发表于 2013-2-10 13:15:48 | 显示全部楼层
楼主真的好厉害哦
回复 支持 反对

使用道具 举报

发表于 2013-2-19 20:46:35 | 显示全部楼层
有游戏下载点吗? (一样的版本)  想练习
回复 支持 反对

使用道具 举报

发表于 2013-2-23 17:50:03 | 显示全部楼层
本帖最后由 kenisbb 于 2013-2-23 18:14 编辑

工具: CT&OD

回复 支持 反对

使用道具 举报

发表于 2013-2-25 09:07:55 | 显示全部楼层
好贴顶,这不是挖坟吧.才一个月
回复 支持 反对

使用道具 举报

发表于 2013-2-25 22:09:11 | 显示全部楼层
帮楼主顶帖
回复 支持 反对

使用道具 举报

发表于 2013-2-28 18:53:52 | 显示全部楼层
看上去好豪华啊
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 加入论坛

本版积分规则

QQ|Archiver|手机版|小黑屋|我爱秘籍论坛  

GMT+8, 2019-6-18 20:30 , Processed in 0.211588 second(s), 43 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表