童年经典游戏魔塔分析与破解教程(ce+frida)

查看 163|回复 11
作者:你上当了   
准备工具
1、cheat-engine
2、frida
打开游戏,CE连接进程


image.png (1.76 MB, 下载次数: 1)
下载附件
2022-12-18 21:12 上传

搜索血量400


image.png (1.81 MB, 下载次数: 1)
下载附件
2022-12-18 21:14 上传

打怪减血,然后搜索376,只剩一个。明显只能是它了


image.png (1.6 MB, 下载次数: 0)
下载附件
2022-12-18 21:15 上传

然后看下它附近的内存地址,人物是个结构体,附近的地址肯定有会相关的数值。(当然一个个搜索也是可以的)


image.png (365.61 KB, 下载次数: 1)
下载附件
2022-12-18 21:21 上传

现在问题来了,怎么对这内存进行寻址?硬看so代码肯定是可以找到,不过CE支持内存读写监听,很容易找到读写的指令


image.png (130.91 KB, 下载次数: 1)
下载附件
2022-12-18 21:27 上传



image.png (446.23 KB, 下载次数: 0)
下载附件
2022-12-18 21:30 上传



image.png (146.87 KB, 下载次数: 1)
下载附件
2022-12-18 21:40 上传



image.png (135.71 KB, 下载次数: 1)
下载附件
2022-12-18 21:41 上传

分析完毕 ,下面使用frida 进行mod
[Asm] 纯文本查看 复制代码
        
                var mt24mgr = Module.findExportByName(moduleName, '_ZN4mt247GameMgrC2Ev')
                var mt50mgr = Module.findExportByName(moduleName, '_ZN4mt507GameMgrC2Ev')
                var refreshAddr = Module.findExportByName(moduleName, '_ZN4mt507UILayer17refreshHeroStatusEv')
        
                var schedulerAddr = Module.findExportByName(moduleName, '_ZN7cocos2d9SchedulerC2Ev')
                var refreshFunc= new NativeFunction(refreshAddr, "int", ["pointer"])
                console.log(mt24mgr)
                console.log(mt50mgr)
                console.log(refreshAddr)
                var schedulerInstance = null
                var playerBaseMT24 = null
                Interceptor.attach(mt24mgr, {
                        onEnter: function (args) {
                          console.log('mt24mgr')
                          console.log(ptr(args[0]))
                          playerBaseMT24 = ptr(args[0])
                        }
                })
                var playerBaseMT50 = null
                Interceptor.attach(mt50mgr, {
                        onEnter: function (args) {
                  
                          console.log('mt50mgr')
                          playerBaseMT50 = ptr(args[0])
                          console.log(playerBaseMT50)
                        }
                })
                {
                        setInterval(function(){
                          
                                if(playerBaseMT50!=null && Memory.readInt( playerBaseMT50.add(0xc))


image.png (1.51 MB, 下载次数: 0)
下载附件
2022-12-18 21:45 上传

样本:
https://lachs.lanzoue.com/i4USG0iz9yif
代码
https://github.com/qajknsdjaks/frida-game-cheat

下载次数, 下载附件

你上当了
OP
  


luckysky 发表于 2022-12-19 05:53
lz这个要win11才可以直接跑安卓apk吧?

Android平台,我那个是qtscrcpy手机投屏。样本 https://lachs.lanzoue.com/i4USG0iz9yif
你上当了
OP
  


5omggx 发表于 2022-12-19 07:43
楼主修改的这版魔塔是windows平台的吧?

Android平台,我那个是qtscrcpy手机投屏。样本 https://lachs.lanzoue.com/i4USG0iz9yif
hjtkxg   

我来试一试
18146266966   

厉害呢,厉害呢。
AT4R   

谢谢楼主分享!
xiaoyingang   

厉害了,这个玩了很久才通关
XiaoYxx   

我也去试一下
hxdmax   

好怀念的游戏啊,魔塔
huj11111   

楼主好有研究精神啊!好评  哈哈哈
您需要登录后才可以回帖 登录 | 立即注册

返回顶部