仁二 發表於 2020-11-2 01:31:35

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

LOGO:
jmp 018584E4
Anime:
jmp 013C7C46
//jmp 013C7C37//这个是游戏自身判断02就进入大陆

LOGO:
db 75 0d
Anime:
db 0F 84 81 00 00 00修复游戏自身 更新后的BUG……
//这样改是解决游戏自身BUG 在还没全部加载完毕资源时 拖延loading
013C7C3D - E8 BED83F00           - call 017C5500        cms175.2更新后 出现了个问题 进登录器 可能飞游戏……加载资源 自我等待 顺序加载

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 //查看用
mov ,00000000//org =初始化
cmp ,0//登录帐号后基址 = 017F0BE0
je csa_sleep
csa_jz_pd:
mov ecx,//补码……因为ecx被修改了
cmp ,02
jne csa_jz_on
mov ,01        //让程序继续加载
csa_jz_on:
mov ,#15//解除只能在大陆加载限制 让程序重新开始加载
csa_zctz:
jmp 017C651C+7
csa_sleep:
//inc //查看用
cmp ,0//017F0BE0
jne csa_jz_pd//csa_zctz
push 01
call sleep
jmp csa_sleep
017C651C:
jmp csa

017C651C:
mov ,00000000
unregistersymbol(csa)
dealloc(csa)如果其他服 比如TWMS没有登录器……CMS是独立登录器的 需要更换判断基址……下文放出

仁二 發表於 2020-11-2 01:49:04

国际惯例 先来个截图……

仁二 發表於 2020-11-2 01:52:31

本帖最後由 仁二 於 2020-11-2 02:27 編輯


--------------------------------------------------------------

//墙壁基址 调试
0111AA8F - 83 3D FC1C9B03 00 - cmp dword ptr ,00        //到大陆后时时
02C1A513 - 89 15 FC1C9B03  - mov ,edx                        //点击进大陆后
0189151E - A1 FC1C9B03 - mov eax,                        //点击进大陆后
02C1AAEF - C7 05 FC1C9B03 00000000 - mov ,00000000        //游戏结束?


--------------------------------------------------------------


当前资源加载情况
+1c
=02//可到达大陆 广告完毕
=03//加载完毕


013C7C37 - 8B 0D 044EC603        - mov ecx, :
013C7C3D - E8 CED83F00           - call 017C5510        //加载资源情况
013C7C42 - 84 C0                 - test al,al
013C7C44 - 74 37                 - je 013C7C7D :
013C7C46 - 6A 28                 - push 28                //进入大陆界面



--------------------------------------------------------------
//+1c        调试
017C6A20 - C7 42 1C 01000000 - mov ,00000001        //第一阶段加载完毕
017C6A46 - 83 79 1C 01 - cmp dword ptr ,01
017C6AF3 - C7 41 1C 02000000 - mov ,00000002        //第二阶段加载完毕
017C6526 - 83 7A 1C 03 - cmp dword ptr ,03
017C65CF - C7 41 1C 03000000 - mov ,00000003        //全部 加载完毕
017C432A - 8B 40 1C  - mov eax,                        //进帐号密码界面出现=时时


-----------------//这个就是不加载资源的跳转
017C6526 - 83 7A 1C 03           - cmp dword ptr ,03
017C652A - 0F8D 8D060000         - jnl 017C6BBD


不加载资源

017C652A:
db 90 e9

017C652A:
db 0f 8d

//不加载资源这边的内存 只跑一次 如果这样跳过 就真的不加载了……
//值得一提 不加载资源 点击进大陆后 就不会飞游戏 飞游戏的原因是未响应还在加载
-----------------------------------------------
017C4330        
返回到017C5505


017C5500
返回到017F4984//这个是登录的判断 是否加载好资源
返回到02ACE249//加载资源完毕


//这个是封包 反馈什么东西 资源加载的?
02ACE219 - 6A 6E                 - push 6E                //在这里下段 包还没发出去游戏就飞了
02ACE21B - 8D 4D D0              - lea ecx,
02ACE21E - E8 EDDFE2FD           - call 008FC210
//……
02ACE244 - E8 D7DEFFFF           - call 02ACC120
02ACE249 - 8A D8                 - mov bl,al
02ACE24B - 8D 4D D0              - lea ecx,
02ACE24E - 88 5D F0              - mov ,bl
02ACE251 - FF 75 F0              - push
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,
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:19

本帖最後由 仁二 於 2020-11-2 02:02 編輯




飞游戏的原因 是未响应时还在加载资源
无法判断未响应的情况下 找到时时正常的内存在那边加载 应该就行了
……测试登录后 但是那个召唤 正在连接 的弹窗时 会切换线程

头脑简单……思路清晰
把正常加载资源的地方给拔掉 正常是运行游戏后开始加载...
我们把这个加载资源call 插入到 登录后 试试 因为切换到登录器 有个未响应(时加载)会导致飞游戏
【重要说明: 未响应 加载WZ=飞游戏  未响应发包=可能重发封号】

//获取登录帐号后的判断
017F0BE0 - 8B 0D 7C94C603        - mov ecx, :         //这个是登录帐号后的基址
017F0BE6 - 85 C9                 - test ecx,ecx
017F0BE8 - 75 2E                 - jne 017F0C18
017F0BEA - 68 60010000           - push 00000160
017F0BEF - B9 88CCC603           - mov ecx,03C6CC88 :
017F0BF4 - E8 0748D9FE           - call 00585400
017F0BF9 - 89 45 D0              - mov ,eax
0184D026 - 89 0D 7C94C603        - mov ,ecx        //判断这个不等于0就开始加载


//点开服务器判断  如果TWMS没有登录器 可以把指针换成这个[犹豫在CMS没办法测试]
0185410E - 83 3D 8094C603 00     - cmp dword ptr ,00        //是否选中了服务器
01854115 - 75 2B                 - jne 01854142
01854117 - 68 E4000000           - push 000000E4
0185411C - B9 88CCC603           - mov ecx,03C6CC88 :
01854121 - E8 DA12D3FE           - call 00585400
01854126 - 89 45 08              - mov ,eax

//点开服务器后 这里获取的是uijz //其他比如GMS可以试试这个=
017ED13B - B9 88CCC603           - mov ecx,03C6CC88 :
017ED140 - 68 60010000           - push 00000160
017ED145 - 89 7D EC              - mov ,edi
017ED148 - 89 45 F0              - mov ,eax
017ED14B - E8 B082D9FE           - call 00585400
017ED150 - 89 45 08              - mov ,eax
017ED153 - C7 45 FC 00000000     - mov ,00000000
017ED15A - 85 C0                 - test eax,eax
017ED15C - 74 0B                 - je 017ED169
017ED15E - 8D 4D EC              - lea ecx, : (float)-127.4869
017ED161 - 51                    - push ecx
017ED162 - 8B C8                 - mov ecx,eax
017ED164 - E8 07FB0500           - call 0184CC70
013CC05D - A3 8CC8C403           - mov ,eax

仁二 發表於 2020-11-2 02:04:15

本帖最後由 仁二 於 2020-11-2 02:37 編輯

//以下都是过程了……可以无视


-------------------------------


测试加载资源call
//不知道为什么不加载好……卡在那边跑内存……半天加载不完

createthread(test)
registersymbol(test)
alloc(test,1024)
label(testzctz)
03fe0000+1000:
dd 0
test:
push 01
call sleep
cmp ,0//登录帐号判断= 017F0BE0 =
je test//testzctz
cmp ,0
jne testzctz
push 03C64E04//
call 00AB6BA0//加载资源call=外部2级

inc //加载完成判断
testzctz:
ret



-----------------------------------------


加载资源自我等待
//不知道为什么和自己建立线程一样 加载半天加载不完……那个开关不会变一直是0

registersymbol(csa)
alloc(csa,1024)
label(csa_zctz)
label(csa_sleep)
03fe0000+100:
dd 0 0
csa:
inc
mov ,00000000//org
cmp ,0//017F0BE0
je csa_sleep
csa_zctz:
jmp 017C651C+7
csa_sleep:
inc
cmp ,0//017F0BE0
jne csa_zctz
push 01
call sleep
jmp csa_sleep
017C651C:
jmp csa

017C651C:
mov ,00000000
unregistersymbol(csa)
dealloc(csa)


-----------------------------------------
//这个是帮程序员修复的 判断02改成判断03……
//这样改是解决游戏自身BUG 在还没全部加载完毕资源时 拖延loading
013C7C3D - E8 BED83F00           - call 017C5500
--------------------------------------------------------------------

//+14        调试        
//这是他内存按顺序加载的走向
017C6964 - 83 78 14 00 - cmp dword ptr ,00        //最后走2次
017C6A39 - 83 78 14 00 - cmp dword ptr ,00        //最后走2次
017C6A53 - 83 7A 14 00 - cmp dword ptr ,00
017C6B0C - 83 7A 14 00 - cmp dword ptr ,00
017C654B - 83 7A 14 00 - cmp dword ptr ,00
017C68AF - 83 7A 14 00 - cmp dword ptr ,00
017C6BC0 - 83 79 14 00 - cmp dword ptr ,00


最后=03        =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        //开始等待


------------------------------

//+20        =14完毕        =15开始
//这个进登录器[点击大陆后]会自动写14……
017C68CC - 8B 55 8C              - mov edx,
017C68CF - 8B 42 20              - mov eax,        //在loading直接=15        加载结束会变成14
017C68D2 - 83 E0 01              - and eax,01
017C68D5 - 0F84 86000000         - je 017C6961                //这里好像控制是否开始 启动加载
017C68DB - 8B 0D 60C8C403        - mov ecx,


--------------------------------------------------------

//+28        调试        
//这个是按顺序加载完成 所有走向
017C6955 - 8B 48 28  - mov ecx,
017C695E - 89 4A 28  - mov ,ecx
017C6A2A - 8B 48 28  - mov ecx,
017C6A33 - 89 4A 28  - mov ,ecx
017C6AFD - 8B 42 28  - mov eax,
017C6B06 - 89 41 28  - mov ,eax
017C6BA2 - 8B 51 28  - mov edx,
017C6BAB - 89 50 28  - mov ,edx


-------------------------------


判断登录帐号后 开始加载资源
还需要这些操作
判断登录后 给写入15开始加载 然后判断=02 把写入01让他继续加载



-------------------------------//最后成品代码 当然还需要优化一下
//我就不整了……开本帖的目的 是希望程序员解决游戏自身飞游戏的BUG
加载资源 自我等待 顺序加载

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
mov ,00000000//org =初始化
cmp ,0//登录帐号后基址 = 017F0BE0  //TWMS这里指针需要替换成=
je csa_sleep
csa_jz_pd:
mov ecx,//补码……因为ecx被修改了
cmp ,02
jne csa_jz_on
mov ,01        //让程序继续加载
csa_jz_on:
mov ,#15//解除只能在大陆加载限制 让程序重新开始加载
csa_zctz:
jmp 017C651C+7
csa_sleep:
inc
cmp ,0//017F0BE0  //TWMS这里指针需要替换成=
jne csa_jz_pd//csa_zctz
push 01
call sleep
jmp csa_sleep
017C651C:
jmp csa

017C651C:
mov ,00000000
unregistersymbol(csa)
dealloc(csa)

仁二 發表於 2020-11-2 02:21:49

……最近有点忙 看到的会回复



这个帖子 算是解决以前开发代码 留下的BUG吧 虽然是游戏自身的BUG

asd9988 發表於 2020-11-6 06:30:02

先推一波大大,CMS问题多多
頁: [1]
查看完整版本: cms175.2 pass登录LOGO+动画[解决飞游戏]