冰楓論壇
標題:
cms175.2 pass登录LOGO+动画[解决飞游戏]
[打印本頁]
作者:
仁二
時間:
2020-11-2 01:31
標題:
cms175.2 pass登录LOGO+动画[解决飞游戏]
pass登录LOGO+动画=175.2
define(LOGO,018584BC)// 75 0d c6 46 ?? 01
define(Anime,013C7B15)//add-n= 83 3d ?? ?? ?? ?? 00 0f 84 ?? ?? ?? ?? ff 15 ?? ?? ?? ?? 8b f8
[ENABLE]
LOGO:
jmp 018584E4
Anime:
jmp 013C7C46
//jmp 013C7C37//这个是游戏自身判断02就进入大陆
[DISABLE]
LOGO:
db 75 0d
Anime:
db 0F 84 81 00 00 00
複製代碼
修复游戏自身 更新后的BUG……
//这样改是解决游戏自身BUG 在还没全部加载完毕资源时 拖延loading
013C7C3D - E8 BED83F00 - call 017C5500
複製代碼
cms175.2更新后 出现了个问题 进登录器 可能飞游戏……
加载资源 自我等待 顺序加载
[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
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
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)
複製代碼
如果其他服 比如TWMS没有登录器……CMS是独立登录器的 需要更换判断基址……下文放出
作者:
仁二
時間:
2020-11-2 01:49
国际惯例 先来个截图……
2020-11-2 01:48 上傳
下載附件
(280.99 KB)
作者:
仁二
時間:
2020-11-2 01:52
本帖最後由 仁二 於 2020-11-2 02:27 編輯
--------------------------------------------------------------
//[039B1CFC]墙壁基址 调试
0111AA8F - 83 3D FC1C9B03 00 - cmp dword ptr [039B1CFC],00 //到大陆后时时
02C1A513 - 89 15 FC1C9B03 - mov [039B1CFC],edx //点击进大陆后
0189151E - A1 FC1C9B03 - mov eax,[039B1CFC] //点击进大陆后
02C1AAEF - C7 05 FC1C9B03 00000000 - mov [039B1CFC],00000000 //游戏结束?
--------------------------------------------------------------
当前资源加载情况
[03C64E04]+1c
=02//可到达大陆 广告完毕
=03//加载完毕
013C7C37 - 8B 0D 044EC603 - mov ecx,[03C64E04] : [31084A8C]
013C7C3D - E8 CED83F00 - call 017C5510 //加载资源情况
013C7C42 - 84 C0 - test al,al
013C7C44 - 74 37 - je 013C7C7D : [d3d10warp.Ordinal199+32379B]
013C7C46 - 6A 28 - push 28 //进入大陆界面
--------------------------------------------------------------
複製代碼
//[03C64E04]+1c 调试
017C6A20 - C7 42 1C 01000000 - mov [edx+1C],00000001 //第一阶段加载完毕
017C6A46 - 83 79 1C 01 - cmp dword ptr [ecx+1C],01
017C6AF3 - C7 41 1C 02000000 - mov [ecx+1C],00000002 //第二阶段加载完毕
017C6526 - 83 7A 1C 03 - cmp dword ptr [edx+1C],03
017C65CF - C7 41 1C 03000000 - mov [ecx+1C],00000003 //全部 加载完毕
017C432A - 8B 40 1C - mov eax,[eax+1C] //进帐号密码界面出现=时时
-----------------
複製代碼
//这个就是不加载资源的跳转
017C6526 - 83 7A 1C 03 - cmp dword ptr [edx+1C],03
017C652A - 0F8D 8D060000 - jnl 017C6BBD
不加载资源
[ENABLE]
017C652A:
db 90 e9
[DISABLE]
017C652A:
db 0f 8d
//不加载资源这边的内存 只跑一次 如果这样跳过 就真的不加载了……
//值得一提 不加载资源 点击进大陆后 就不会飞游戏 飞游戏的原因是未响应还在加载
-----------------------------------------------
複製代碼
017C4330
返回到017C5505
017C5500
返回到017F4984//这个是登录的判断 是否加载好资源
返回到02ACE249//加载资源完毕
//这个是封包 反馈什么东西 资源加载的?
02ACE219 - 6A 6E - push 6E //在这里下段 包还没发出去游戏就飞了
02ACE21B - 8D 4D D0 - lea ecx,[ebp-30]
02ACE21E - E8 EDDFE2FD - call 008FC210
//……
02ACE244 - E8 D7DEFFFF - call 02ACC120
02ACE249 - 8A D8 - mov bl,al
02ACE24B - 8D 4D D0 - lea ecx,[ebp-30]
02ACE24E - 88 5D F0 - mov [ebp-10],bl
02ACE251 - FF 75 F0 - push [ebp-10]
02ACE254 - E8 A7F2E2FD - call 008FD500
02ACE259 - 84 DB - test bl,bl
02ACE25B - 74 1B - je 02ACE278
02ACE25D - 33 F6 - xor esi,esi
02ACE25F - 90 - nop
02ACE260 - 56 - push esi
02ACE261 - E8 1A5DCFFE - call 017C3F80
02ACE266 - 83 C4 04 - add esp,04
02ACE269 - 8D 4D D0 - lea ecx,[ebp-30]
02ACE26C - 50 - push eax
02ACE26D - E8 4EF3E2FD - call 008FD5C0
02ACE272 - 46 - inc esi
02ACE273 - 83 FE 05 - cmp esi,05
02ACE276 - 7C E8 - jnge 02ACE260
--------------------------------------------------------------
複製代碼
作者:
仁二
時間:
2020-11-2 01:58
本帖最後由 仁二 於 2020-11-2 02:02 編輯
複製代碼
[cms160时 就发现了……但是那时候没去修复]
飞游戏的原因 是未响应时还在加载资源
无法判断未响应的情况下 找到时时正常的内存在那边加载 应该就行了
……测试登录后 但是那个召唤 正在连接 的弹窗时 会切换线程
头脑简单……思路清晰
把正常加载资源的地方给拔掉 正常是运行游戏后开始加载...
我们把这个加载资源call 插入到 登录后 试试 因为切换到登录器 有个未响应(时加载)会导致飞游戏
【重要说明: 未响应 加载WZ=飞游戏 未响应发包=可能重发封号】
//获取登录帐号后的判断
017F0BE0 - 8B 0D 7C94C603 - mov ecx,[03C6947C] : [393F0B64] //这个是登录帐号后的基址
017F0BE6 - 85 C9 - test ecx,ecx
017F0BE8 - 75 2E - jne 017F0C18
017F0BEA - 68 60010000 - push 00000160
017F0BEF - B9 88CCC603 - mov ecx,03C6CC88 : [00000000]
017F0BF4 - E8 0748D9FE - call 00585400
017F0BF9 - 89 45 D0 - mov [ebp-30],eax
0184D026 - 89 0D 7C94C603 - mov [03C6947C],ecx //判断这个不等于0就开始加载
//点开服务器判断 如果TWMS没有登录器 可以把指针换成这个[犹豫在CMS没办法测试]
0185410E - 83 3D 8094C603 00 - cmp dword ptr [03C69480],00 //是否选中了服务器
01854115 - 75 2B - jne 01854142
01854117 - 68 E4000000 - push 000000E4
0185411C - B9 88CCC603 - mov ecx,03C6CC88 : [00000000]
01854121 - E8 DA12D3FE - call 00585400
01854126 - 89 45 08 - mov [ebp+08],eax
//点开服务器后 这里获取的是uijz //其他比如GMS可以试试这个[uijz]=[03C4C88C]
017ED13B - B9 88CCC603 - mov ecx,03C6CC88 : [00000000]
017ED140 - 68 60010000 - push 00000160
017ED145 - 89 7D EC - mov [ebp-14],edi
017ED148 - 89 45 F0 - mov [ebp-10],eax
017ED14B - E8 B082D9FE - call 00585400
017ED150 - 89 45 08 - mov [ebp+08],eax
017ED153 - C7 45 FC 00000000 - mov [ebp-04],00000000
017ED15A - 85 C0 - test eax,eax
017ED15C - 74 0B - je 017ED169
017ED15E - 8D 4D EC - lea ecx,[ebp-14] : (float)-127.4869
017ED161 - 51 - push ecx
017ED162 - 8B C8 - mov ecx,eax
017ED164 - E8 07FB0500 - call 0184CC70
013CC05D - A3 8CC8C403 - mov [uijz],eax
複製代碼
作者:
仁二
時間:
2020-11-2 02:04
本帖最後由 仁二 於 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)
複製代碼
作者:
仁二
時間:
2020-11-2 02:21
……最近有点忙 看到的会回复
2020-11-2 02:21 上傳
下載附件
(41.13 KB)
这个帖子 算是解决以前开发代码 留下的BUG吧 虽然是游戏自身的BUG
作者:
asd9988
時間:
2020-11-6 06:30
先推一波大大,CMS问题多多
歡迎光臨 冰楓論壇 (https://bingfong.com/)
Powered by 冰楓