暗黑mod吧 关注:5,893贴子:53,059
  • 15回复贴,共1

求d2存档超过8k的修改教程。

只看楼主收藏回复

求d2存档超过8k的修改教程。。大佬帮忙修改下更是感谢。。1.13C的


IP属地:江苏1楼2019-12-21 21:53回复
    发个地址,你自己修改,d2game.dll
    winhex修改相应地址数据,2x是8k,改成6x是24k
    Offsets: (16 进制)
    F782:60 20
    F7F6:60 20
    F80B:60 20
    F812:60 20
    F819:60 20
    F821:60 20
    F832:60 20
    F88E:60 20
    F8DB:60 20
    F8EA:60 20
    F8F2:60 20
    F954:60 20
    F95B:60 20
    F963:60 20
    F974:60 20
    F9CD:60 20
    FA1C:60 20
    FA2A:60 20
    FA32:60 20
    FA94:60 20
    FA9B:60 20
    FAA3:60 20
    FAB4:60 20
    FB0D:60 20
    FB5C:60 20
    FB6A:60 20
    537D2:60 20
    537DF:60 20
    537FD:60 20
    53840:60 20
    53888:60 20
    538AC:60 20
    538D2:60 20
    538EE:60 20
    53900:60 20
    5391E:60 20
    5396D:60 20
    539C2:60 20
    53A35:60 20
    53A7E:60 20
    53ABA:60 20
    53AFD:60 20
    53B39:60 20
    53E52:60 20
    53E7B:60 20
    53E83:60 20
    53E8F:60 20
    53E9B:60 20
    53F01:60 20
    53F12:65 25
    53F3D:66 26
    53F5C:66 26
    53F63:66 26
    53F6F:66 26
    53F74:60 20
    53F80:6626
    53FD8:6525
    53FF5:6525
    54002:60 20
    5401D:60 20
    54024:60 20
    54030:60 20
    54052:60 20
    54246:60 20
    5424D:60 20
    54255:60 20
    5425E:60 20
    5426D:60 20
    54277:60 20
    542C5:60 20
    542D0:60 20
    542D8:60 20
    542EB:60 20
    5430C:60 20
    56252:65 25
    5625E:66 26
    56284:66 26
    562BE:60 20
    5630B:65 25
    5631A:66 26
    56321:66 26
    56328:66 26
    56330:66 26
    56338:66 26
    56355:66 26
    5635C:66 26
    56363:66 26
    5636D:66 26
    56379:66 26
    5639D:66 26
    563B2:65 25
    70FEF:60 20
    71001:60 20
    7167F:60 20
    CB0DF:60 20
    95 差异。


    IP属地:云南4楼2019-12-22 14:03
    收起回复
      1.10我是参照的小站合集的教程改的。。1.13的地址收藏了,


      IP属地:江苏来自Android客户端5楼2020-01-01 21:36
      收起回复


        6楼2020-01-14 20:20
        回复
          如何突破8K存档限制。 作者:SeeYouQK
          前几天突然想突破8K存档限制(灵感突现),昨天就研究了一下,大概解决了问题。鉴于许多人都看不懂,ASM写出来剑的排版整理又太....,就精炼的说一下:
          关于存档8K的限制,是由堆栈保留的大小所限制的,就跟上次的“突破6孔限制”中说的由于堆栈保留不足导致超过6孔时神符之语检测会出错的情况相似。所以要增大存档的大小,就要修改保留堆栈的大小、修改堆栈的引用,同时还要把存档8K限制的比较改大。
          下面以总的保存存档的函数中的部分代码,改为64K存档限制为例,简要介绍如何修改:
          1、修改保留堆栈的大小:包括分配堆栈的修改和释放堆栈的修改
          分配堆栈:
          6FC8A500 B8 40260000 mov eax,2640
          分配堆栈大小为2640 H=9792 BYTE ,其中的末2000 H =8K BYTE就是用来暂存生成的存档。改为64K就要加E000H,就是修改2640 H为10640 H。
          释放堆栈
          6FC8A51C 81C4 40260000 add esp,2640
          6FC8A522 |. C2 0800 retn 8
          同样,加E000H,即修改2640 H为10640 H。
          2、修改堆栈的引用:由于堆栈末处有一些参数需要引用,而堆栈变大,引用的地址也修改,如
          6FC8A5D4 |. 8B8424 58260000 mov eax,dword ptr ss:[esp+2658]
          这里的2658 H要加上面说的E000H,即修改2658 H为10658 H。
          3、存档8K限制的比较值修改:如
          6FC8A65E |. 68 00200000 push 2000
          这里的2000 H =8K BYTE,需要改为10000 H =64K
          再一次说说,以上只是几个修改的例子,真正修改的地方还有很多。
          以下是关于修改的初始地址,有些整个函数的都有修改的地方。
          6FC31B20 817E 02 00200000 cmp dword ptr ds:[esi+2],2000
          此处应该是对于BN传送的存档大小比较相关的。调试时程序没运行到,这里的功能是我根据代码而推断的。为保持兼容性,一并修改。就此一处。
          6FC8A1B0 B8 38200000 mov eax,2038
          此处是BN保存存档的函数。要修改保留堆栈的大小、修改堆栈的引用和存档8K限制的比较值修改。
          6FC8A500 B8 40260000 mov eax,2640
          此处是总的保存存档的函数。要修改保留堆栈的大小、修改堆栈的引用和存档8K限制的比较值修改。
          6FC8B3D0 B8 6C500000 mov eax,506C
          此处应该是物品解调前保留的堆栈。同上,调试时程序没运行到,这里的功能是我根据代码而推断的。为保持兼容性,一并做修改堆栈的扩充修改。要修改保留堆栈的大小、修改堆栈的引用。
          6FC8C9D0 B8 FC250000 mov eax,25FC
          此处是读入存档的函数。要修改保留堆栈的大小、修改堆栈的引用和存档8K限制的比较值修改。
          6FC90C97 |. 68 00200000 push 2000
          此处为角色交易(收)时的大小比较的地址。由于机器限制(不能开服务器还同时开2个游戏),一并修改,没有测试。就此一处。
          6FC92807 BA 00020000 mov edx,2000
          6FC92827 68 00020000 push 2000
          此二处分别为角色交易(向外发)时的空间分配和大小比较的地址。同样由于机器限制,一并修改,没有测试。就这两处的修改。
          以上修改的DLL文件是D2Game.dll(v1.10)。


          IP属地:河南7楼2020-03-06 22:46
          回复
            字数原因 接上面的
            6FC8C9D0,读入存档的函数
            B8 FC 05 01 00 E8 C6 00 09 00 8B 84 24 04 06 01 00 89 4C 24 04 53 55 56 8B EA 33 F6 57 BA 00 04
            00 00 8D 8C 24 0C 02 00 00 89 74 24 10 89 30 E8 62 FD 08 00 8B 8C 24 10 06 01 00 8D 94 24 0C 02
            00 00 51 52 8D 44 24 20 68 40 0F D3 6F 50 E8 AC 00 09 00 8D 4C 24 28 68 3C 10 D3 6F 51 E8 45 0E
            09 00 8B F8 83 C4 18 3B FE 0F 84 D6 00 00 00 57 68 00 00 01 00 8D 94 24 14 06 00 00 6A 01 52 E8
            0C 0F 09 00 57 8B D8 E8 34 0C 09 00 83 C4 14 85 DB 0F 84 AE 00 00 00 83 FB 08 73 14 BE 09 00 00
            00 5F 8B C6 5E 5D 5B 81 C4 FC 05 01 00 C2 14 00 81 BC 24 0C 06 00 00 55 AA 55 AA 74 14 BE 09 00
            00 00 5F 8B C6 5E 5D 5B 81 C4 FC 05 01 00 C2 14 00 83 BC 24 10 06 00 00 5B 77 33 8B 84 24 20 06
            01 00 8B 8C 24 1C 06 01 00 8B 94 24 18 06 01 00 50 51 8D 44 24 18 52 50 8D 8C 24 1C 06 00 00 53
            51 8B 4C 24 2C 8B D5 E8 E4 F5 FF FF EB 31 8B 94 24 20 06 01 00 8B 84 24 1C 06 01 00 8B 8C 24 18
            06 01 00 52 50 8D 54 24 18 51 8B 4C 24 20 52 8D 84 24 1C 06 00 00 53 50 8B D5 E8 11 24 00 00 8B
            F0 85 F6 75 16 8B 44 24 10 8B 8C 24 14 06 01 00 85 C0 89 01 75 05 BE 0E 00 00 00 8B C6 5F 5E 5D
            5B 81 C4 FC 05 01 00 C2 14 00
            6FC51070,佣兵物品1K限制(改为2K,应该够了)
            81 EC 30 08 00 00 53 55 56 8B F2 57 56 89 74 24 24 8B E9 E8 22 A6 0C 00 8B F8 8D 44 24 40 6A 00
            6A 01 6A 01 68 00 08 00 00 50 56 E8 30 A7 0C 00 8D 4C 24 28 8B D8 51 6A 01 8D 54 24 48 53 52 E8
            D2 AB 0C 00 8D 44 24 14 8D 4C 24 28 6A 60 50 51 6A 01 8D 54 24 50 53 52 8B D7 8B CD E8 3F DB FF
            FF 8B F8 85 FF 75 0F 5F 5E 5D 33 C0 5B 81 C4 30 08 00 00 C2 08 00 8B 44 24 14 6A 01 68 00 00 08
            00 57 8D 74 04 4C 2B D8 89 74 24 1C E8 D5 A6 0C 00 6A 00 68 00 20 00 00 57 E8 C8 A6 0C 00 8B 84
            24 48 08 00 00 85 C0 0F 84 E3 00 00 00 8B 44 24 3C 85 C0 0F 84 D7 00 00 00 89 44 24 1C C7 44 24
            18 00 00 00 00 0F 8E C5 00 00 00 8D 44 24 28 50 6A 01 53 56 E8 3D AB 0C 00 8D 4C 24 14 8D 54 24
            28 6A 60 51 52 6A 01 53 56 33 D2 8B CD E8 AE DA FF FF 8B F0 85 F6 0F 84 6B FF FF FF 8B 44 24 14
            8B 4C 24 10 03 C8 6A 04 56 89 4C 24 18 2B D8 E8 BA A7 0C 00 8B 47 0C 8B 4E 0C 6A 00 6A 01 8D 54
            24 2C 6A 00 52 50 51 8B D7 8B CD E8 40 86 FF FF 85 C0 74 3E 6A 01 68 00 00 08 00 56 E8 25 A6 0C
            00 6A 00 68 00 20 00 00 56 E8 18 A6 0C 00 6A 00 6A 01 56 E8 86 A6 0C 00 8B 44 24 18 8B 4C 24 1C
            40 3B C1 89 44 24 18 7D 27 8B 74 24 10 E9 59 FF FF FF 68 6E 0D 00 00 68 08 E4 D2 6F 68 78 DA D2
            6F E8 F8 B4 0C 00 83 C4 0C 6A FF E8 ED B5 0C 00 8B 44 24 20 6A 01 68 00 00 00 08 50 E8 C5 A5 0C
            00 6A 00 68 FC 00 00 00 57 E8 74 A4 0C 00 8B F0 85 F6 74 2F 6A 03 8B D7 8B CD E8 41 3F FE FF 85
            C0 75 20 50 50 B8 C4 09 00 00 8B 8D A8 00 00 00 99 F7 FE 8D 54 08 01 8B CD 52 6A 03 8B D7 E8 5D
            3F FE FF 6A 00 68 FD 00 00 00 57 E8 32 A4 0C 00 8B F0 85 F6 74 2F 6A 03 8B D7 8B CD E8 FF 3E FE
            FF 85 C0 75 20 50 50 B8 C4 09 00 00 8B 8D A8 00 00 00 99 F7 FE 8D 54 08 01 8B CD 52 6A 03 8B D7
            E8 1B 3F FE FF 8B D7 8B CD E8 52 03 FF FF 6A 00 6A 01 57 E8 A6 A5 0C 00 8B C7 5F 5E 5D 5B 81 C4
            30 08 00 00 C2 08 00


            IP属地:河南9楼2020-03-06 22:48
            收起回复
              上面发表的是我收藏的,,自行实践。


              IP属地:河南10楼2020-03-06 22:49
              收起回复