口袋改版资源吧 关注:235,877贴子:1,509,379

【讨论帖】关于背包的道具限制研究

只看楼主收藏回复

注意,这不是教程楼!只是用来讨论关于背包道具种类限制的研究→_→。。。
这是我之前无意中在火红发现的一组数据,当时根本不懂这组数据的意义,当然这组数据也貌似真的没有意义==
1E4:2A 1E 0D 3A 2B 1E
但是在研究背包道具限制的时候,我发现了这组数据其实就是个别物品种类的道具限制
道具:42种
重要道具:30种
球:13种
技能机器:58种
树果:43种
最后一个1E推测为电脑储存数量,不过还未验证。
可惜事情没有改改数值就能增加上限这么简单,道具储存使用的内存是浮动的,
这张表的位置在0203988C,有5组指针,具体是指什么可以推测出来
[道具位置][种类数量][00 00][重要道具位置][种类数量][00 00]
[球位置][种类数量][00 00][技能机器位置][种类数量][00 00]
[树果位置][种类数量][00 00]
于是我跟着这张表找到了这个控制程序,在99e44。
08099E44 490F ldr r1, #0x0203988C<这里切入
08099E46 4810 ldr r0, #0x03005008
08099E48 6802 ldr r2, [r0, #0x0]
08099E4A 23C4 mov r3, #0xC4
08099E4C 009B lsl r3, r3, #0x2
08099E4E 18D0 add r0, r2, r3
08099E50 6008 str r0, [r1, #0x0]
08099E52 202A mov r0, #0x2A
08099E54 7108 strb r0, [r1, #0x4]
08099E56 33A8 add r3, #0xA8
08099E58 18D0 add r0, r2, r3
08099E5A 6088 str r0, [r1, #0x8]
当然这只是一个小小的测试,我只想让42个道具位变成200个道具位→_→。。。

==========================================
这段不解释,自己脑补。。。
@99E44 = 00 48 00 47 XX XX XX 08
.text
.align 2
.thumb
.thumb_func
.global bag_hijack
main:
ldr r1, items_table
ldr r0, free_ram
str r0, [r1, #0x0]
mov r0, #0xc8
strb r0, [r1, #0x4]
ldr r0, #0x03005008
ldr r2, [r0, #0x0]
mov r3, #0xc4
lsl r3, r3, #0x2
add r3, #0xA8
add r0, r2, r3
str r0, [r1, #0x8]
ldr r0, return
bx r0
.align
items_table:.word 0x0203988C
free_ram:.word 0x0203ca00
saveblock:.word 0x03005008
return:.word 0x08099E5+1
===========================================
然后进入游戏打开背包之后发现原有道具全部不翼而飞,这是因为我们使用了新的内存位置。
转到0203ca00之后就会看到一堆一直重复的数据
0000 XXXX 0000 XXXX ...
这表示我们成功把道具内存位置打死在0203ca00。
于是问题来了←_←
打死之后我们确实能继续使用这个表,但是超过42个道具的时候就会死机。
当时我只有47个道具,打开背包就黑屏了。
这时候我卡住了,毫无头绪。
个人猜测:
1.有检测程序在搞鬼。
2.翻页程序出错。
3.过度数据溢出。
4.机体限制(可能性近乎为0,但要真是这个就直接死光光了TAT)
5.我的做法错了→_→。。(极有可能,本渣技术尚差)
接下来就是讨论帖的意义了,也许之前有哪位聚聚进行了相关的研究,或谁有收集到相关的资料等都可以在这里讨论,或者这帖也能帮wu上dao同在研究这个课题的人。


1楼2014-12-23 13:26回复
    占二楼后用


    来自手机贴吧2楼2014-12-23 13:30
    回复
      三楼


      IP属地:安徽来自Android客户端3楼2014-12-23 13:46
      回复


        IP属地:安徽来自Android客户端4楼2014-12-23 13:47
        回复
          大神你好,大神你的神作怎么样了


          IP属地:上海来自Android客户端5楼2014-12-23 14:49
          收起回复
            先马


            IP属地:美国来自Android客户端6楼2014-12-23 15:11
            回复
              ⊙▽⊙


              来自Android客户端7楼2014-12-23 15:12
              回复
                围观


                IP属地:广东8楼2014-12-23 15:23
                回复
                  不懂


                  IP属地:江苏来自iPhone客户端9楼2014-12-23 15:48
                  回复
                    不懂帮顶


                    来自Android客户端10楼2014-12-23 16:21
                    回复
                      不明觉厉


                      来自Android客户端11楼2014-12-23 16:50
                      回复
                        @ID_saac @thunder6358 @彼得didi @神Sok 围观聚聚
                        -——°
                        我真的很想和你在大雪纷飞的天空下散步,因为一不小心,我们就白了头。哈哈哈哈哈哈骗你的!其实,没有下雪也没有你


                        IP属地:湖南来自Android客户端12楼2014-12-23 17:26
                        收起回复
                          圣光白有可能背包无限??


                          来自Android客户端13楼2014-12-23 17:27
                          收起回复
                            会不会有其他的程序继续在使用原来那个内存表
                            -——°
                            我真的很想和你在大雪纷飞的天空下散步,因为一不小心,我们就白了头。哈哈哈哈哈哈骗你的!其实,没有下雪也没有你


                            IP属地:湖南来自Android客户端14楼2014-12-23 17:32
                            收起回复
                              在ue里搜索8c 98 03 02,除了99e00那一片之外在100000后面也能搜到一片,按照thumb的编译来说看来有很多地方用了这个地址,所以程序可能在哪里还是有限制,而且在8c 98 03 02附近很多地方都有个xx xx 00 00这种的
                              以上纯属误导
                              -——°
                              我真的很想和你在大雪纷飞的天空下散步,因为一不小心,我们就白了头。哈哈哈哈哈哈骗你的!其实,没有下雪也没有你


                              IP属地:湖南来自Android客户端15楼2014-12-23 17:37
                              收起回复