- UID
- 169543
- 帖子
- 123
- 主題
- 12
- 精華
- 0
- 積分
- 22
- 楓幣
- 422
- 威望
- 21
- 存款
- 0
- 贊助金額
- 0
- 推廣
- 0
- GP
- 27
- 閱讀權限
- 10
- 性別
- 男
- 在線時間
- 14 小時
- 註冊時間
- 2016-11-7
- 最後登入
- 2023-7-25
|
本帖最後由 仁二 於 2020-11-2 02:37 編輯
- //以下都是过程了……可以无视
- -------------------------------
- 测试加载资源call
- //不知道为什么不加载好……卡在那边跑内存……半天加载不完
- [ENABLE]
- createthread(test)
- registersymbol(test)
- alloc(test,1024)
- label(testzctz)
- 03fe0000+1000:
- dd 0
- test:
- push 01
- call sleep
- cmp [03C6947C],0//登录帐号判断= 017F0BE0 =
- je test//testzctz
- cmp [03fe0000+1000],0
- jne testzctz
- push 03C64E04//
- call 00AB6BA0//加载资源call=外部2级
- inc [03fe0000+1000]//加载完成判断
- testzctz:
- ret
- [DISABLE]
- -----------------------------------------
- 加载资源自我等待
- //不知道为什么和自己建立线程一样 加载半天加载不完……那个开关不会变一直是0
- [ENABLE]
- registersymbol(csa)
- alloc(csa,1024)
- label(csa_zctz)
- label(csa_sleep)
- 03fe0000+100:
- dd 0 0
- csa:
- inc [03fe0000+100]
- mov [ecx+28],00000000//org
- cmp [03C6947C],0//017F0BE0
- je csa_sleep
- csa_zctz:
- jmp 017C651C+7
- csa_sleep:
- inc [03fe0000+104]
- cmp [03C6947C],0//017F0BE0
- jne csa_zctz
- push 01
- call sleep
- jmp csa_sleep
- 017C651C:
- jmp csa
- [DISABLE]
- 017C651C:
- mov [ecx+28],00000000
- unregistersymbol(csa)
- dealloc(csa)
- -----------------------------------------
- //这个是帮程序员修复的 判断02改成判断03……
- //这样改是解决游戏自身BUG 在还没全部加载完毕资源时 拖延loading
- 013C7C3D - E8 BED83F00 - call 017C5500
複製代碼
- --------------------------------------------------------------------
- //[03C64E04]+14 调试
- //这是他内存按顺序加载的走向
- 017C6964 - 83 78 14 00 - cmp dword ptr [eax+14],00 //最后走2次
- 017C6A39 - 83 78 14 00 - cmp dword ptr [eax+14],00 //最后走2次
- 017C6A53 - 83 7A 14 00 - cmp dword ptr [edx+14],00
- 017C6B0C - 83 7A 14 00 - cmp dword ptr [edx+14],00
- 017C654B - 83 7A 14 00 - cmp dword ptr [edx+14],00
- 017C68AF - 83 7A 14 00 - cmp dword ptr [edx+14],00
- 017C6BC0 - 83 79 14 00 - cmp dword ptr [ecx+14],00
- 最后[zz+1C]=03 [zz+28]=04
- -----------------------------------------------------------------
- //这些是跳转到等待的
- 017C6A3D - 0F85 6B010000 - jne 017C6BAE
- 017C6A4A - 0F85 5E010000 - jne 017C6BAE
- 017C6B10 - 0F85 98000000 - jne 017C6BAE
- 017C6B22 - 0F85 86000000 - jne 017C6BAE
- 017C6B31 - 74 7B - je 017C6BAE
- 017C6BAE - 6A 02 - push 02 //开始等待
- ------------------------------
- //[03C64E04]+20 =14完毕 =15开始
- //[zz+20]这个进登录器[点击大陆后]会自动写14……
- 017C68CC - 8B 55 8C - mov edx,[ebp-74]
- 017C68CF - 8B 42 20 - mov eax,[edx+20] //在loading[zz+20]直接=15 加载结束会变成14
- 017C68D2 - 83 E0 01 - and eax,01
- 017C68D5 - 0F84 86000000 - je 017C6961 //这里好像控制是否开始 启动加载
- 017C68DB - 8B 0D 60C8C403 - mov ecx,[sjjz]
- --------------------------------------------------------
- //[03C64E04]+28 调试
- //这个是按顺序加载完成 所有走向
- 017C6955 - 8B 48 28 - mov ecx,[eax+28]
- 017C695E - 89 4A 28 - mov [edx+28],ecx
- 017C6A2A - 8B 48 28 - mov ecx,[eax+28]
- 017C6A33 - 89 4A 28 - mov [edx+28],ecx
- 017C6AFD - 8B 42 28 - mov eax,[edx+28]
- 017C6B06 - 89 41 28 - mov [ecx+28],eax
- 017C6BA2 - 8B 51 28 - mov edx,[ecx+28]
- 017C6BAB - 89 50 28 - mov [eax+28],edx
- -------------------------------
- 判断登录帐号后 开始加载资源
- 还需要这些操作
- 判断登录后 给[zz+20]写入15开始加载 然后判断[zz+28]=02 把[zz+1c]写入01让他继续加载
- -------------------------------
複製代碼- //最后成品代码 当然还需要优化一下
- //我就不整了……开本帖的目的 是希望程序员解决游戏自身飞游戏的BUG
- 加载资源 自我等待 顺序加载
- [ENABLE]
- registersymbol(csa)
- alloc(csa,1024)
- label(csa_zctz)
- label(csa_sleep)
- label(csa_jz_pd)
- label(csa_jz_on)
- 03fe0000+100:
- dd 0 0
- csa:
- inc [03fe0000+100]
- mov [ecx+28],00000000//org =初始化
- cmp [03C6947C],0//登录帐号后基址 = 017F0BE0 //TWMS这里指针需要替换成[uijz]=[03C4C88C]
- je csa_sleep
- csa_jz_pd:
- mov ecx,[ebp-74]//补码……因为ecx被修改了
- cmp [ecx+28],02
- jne csa_jz_on
- mov [ecx+1c],01 //让程序继续加载
- csa_jz_on:
- mov [ecx+20],#15//解除只能在大陆加载限制 让程序重新开始加载
- csa_zctz:
- jmp 017C651C+7
- csa_sleep:
- inc [03fe0000+104]
- cmp [03C6947C],0//017F0BE0 //TWMS这里指针需要替换成[uijz]=[03C4C88C]
- jne csa_jz_pd//csa_zctz
- push 01
- call sleep
- jmp csa_sleep
- 017C651C:
- jmp csa
- [DISABLE]
- 017C651C:
- mov [ecx+28],00000000
- unregistersymbol(csa)
- dealloc(csa)
複製代碼 |
|