冰楓論壇

 找回密碼
 立即註冊
搜索
查看: 1776|回覆: 9
打印 上一主題 下一主題

[需過CRC檢測] cms187.3 CRC=No-Mapping

  [複製鏈接]

12

主題

1

好友

22

積分

新手上路

Rank: 1

UID
169543
帖子
123
主題
12
精華
0
積分
22
楓幣
422
威望
21
存款
0
贊助金額
0
推廣
0
GP
27
閱讀權限
10
性別
在線時間
14 小時
註冊時間
2016-11-7
最後登入
2023-7-25
跳轉到指定樓層
1
發表於 2022-3-28 01:53:27 |只看該作者 |倒序瀏覽
本帖最後由 仁二 於 2022-3-28 13:23 編輯

複製代碼
  1. //cms187.3 CRC=No-Mapping
  2. //修复进出商城后 BUFF丢失的问题
  3. //collaborator:EvansFix
  4. define(qtjz,1453090E0)
  5. define(crc,141898638)
  6. define(show_buff_offset,00002460)//  (+08) 1437321FF
  7. define(show_buff_onoff,14237E904)
  8. [ENABLE]
  9. globalalloc(crc_org,5)
  10. crc_org:
  11. readmem(crc,5)
  12. //----
  13. globalalloc(show_buff,128,$process)
  14. label(show_buff_ret)
  15. show_buff:
  16. mov rax,[qtjz]
  17. cmp rax,0
  18. je show_buff_ret
  19. mov rcx,[rax+show_buff_offset]
  20. readmem(show_buff_onoff,4)
  21. show_buff_ret:
  22. ret
  23. crc:
  24. call show_buff
  25. [DISABLE]
  26. crc:
  27. readmem(crc_org,5)
複製代碼
距离上次发帖 已经有一段时间了。看到KK的文章:“https://bingfong.com/thread-1832312-1-3.html
得知BUG 并修复 虽然很早以前已经确定了这个BUG 但是复现困难 在KK的提示下
在朋友“EvansFix” 经过多次进出商城调试 (我只是打辅助的)
确定了显示BUFF的关键call 并作出了修复 *这个不修复 强迫症属实挺难受的 看不到右上角BUFF
修复了换图飞游戏的问题……只需要操作开关即可

已有 2 人評分鑰匙 GP 收起 理由
liyaodong + 1 有神快拜!
2022CNY + 1

總評分: 鑰匙 + 1  GP + 1   查看全部評分

收藏收藏0 推1 噓0


把本文推薦給朋友或其他網站上,每次被點擊增加您在本站積分: 1鑰匙
複製連結並發給好友,以賺取推廣點數
簡單兩步驟,註冊、分享網址,即可獲得獎勵! 一起推廣文章換商品、賺$$

12

主題

1

好友

22

積分

新手上路

Rank: 1

UID
169543
帖子
123
主題
12
精華
0
積分
22
楓幣
422
威望
21
存款
0
贊助金額
0
推廣
0
GP
27
閱讀權限
10
性別
在線時間
14 小時
註冊時間
2016-11-7
最後登入
2023-7-25
2
發表於 2022-3-28 01:57:07 |只看該作者
本帖最後由 仁二 於 2022-3-28 02:22 編輯

因为游戏更新了X64位 很多功能都没来得及更新
还有目前对X64的基础 并不牢固 或者说 不熟悉 有错误或者问题 希望大家大胆指出
会在相应的时候 做出修复。
CMS187.3 CEM:https://drive.google.com/drive/folders/1axQu3oJ0m-eZkaY7FlH5F-xQ5kN-0ZYj?usp=sharing
回覆

使用道具 舉報

1

主題

1

好友

0

積分

新手上路

Rank: 1

UID
338477
帖子
5
主題
1
精華
0
積分
0
楓幣
34
威望
0
存款
0
贊助金額
0
推廣
0
GP
0
閱讀權限
10
性別
保密
在線時間
7 小時
註冊時間
2022-3-27
最後登入
2024-1-9
3
發表於 2022-3-28 02:36:09 |只看該作者
感谢大佬,请问大佬有无其他的数据,求教

點評

仁二  晚点 应该会发布 其他研究……但是 可能不一定是能直接打勾的成品 只做学术交流 版上TWMS有好多数据 更新就能使用的 可以到那块版区看看  發表於 2022-3-28 14:59
回覆

使用道具 舉報

33

主題

0

好友

1481

積分

副站長

Rank: 8Rank: 8

UID
523
帖子
645
主題
33
精華
0
積分
1481
楓幣
32803
威望
864
存款
32285
贊助金額
0
推廣
82
GP
201
閱讀權限
180
性別
在線時間
12341 小時
註冊時間
2011-12-15
最後登入
2024-12-22

性別(男) 懶人勳章 積分勳章 論壇粉絲 神手勳章 除蟲大隊 熱心助人 論壇支持王 長老勳章 解說達人 在線終極王 發帖達人 音樂勳章 私服達人 2015端午節紀念勳章 2015年紀念勳章 副站長勳章 核心勳章 管理者 2017端午節紀念勳章 2019聖誕節紀念勳章 2020年紀念勳章 太陽勳章 2020中秋節紀念勳章 2021端午節紀念勳章 2022端午節紀念勳章 2023端午節紀念勳章 2024端午節紀念勳章

4
發表於 2022-3-28 18:10:20 |只看該作者
感謝大佬  
轉更新發布一個TMS的版本

點評

仁二    發表於 2022-3-29 22:49

.
回覆

使用道具 舉報

3

主題

0

好友

8

積分

新手上路

Rank: 1

UID
252383
帖子
24
主題
3
精華
0
積分
8
楓幣
73
威望
3
存款
0
贊助金額
0
推廣
0
GP
3
閱讀權限
10
性別
保密
在線時間
102 小時
註冊時間
2018-11-26
最後登入
2024-11-4

Apple勳章

5
發表於 2022-3-29 02:40:33 |只看該作者
大佬好久不见,64位更新以后很多地方都不熟悉,想请教一下吸怪call
以前的32位都是push 00 push 00 push 64 ... push 07 ... call xxxxx 这个形式
但是在64位更新后很多push 都变成了 mov [rsp+xx],xx 这个形式,请问这种情况要怎么独立调用一些call,
感觉现在堆栈里的数据很难复刻..

點評

asd9988   windows x64平台fastcall调用约定的主要特性如下: 前四个整型或指针类型参数由RCX,RDX,R8,R9依次传递,前四个浮点类型参数由XMM0,XMM1,XMM2,XMM3依次传递。...   發表於 2022-3-29 11:43
回覆

使用道具 舉報

12

主題

0

好友

39

積分

新手上路

Rank: 1

UID
81995
帖子
74
主題
12
精華
0
積分
39
楓幣
1482
威望
34
存款
0
贊助金額
0
推廣
0
GP
15
閱讀權限
10
性別
保密
在線時間
95 小時
註冊時間
2014-9-23
最後登入
2023-9-12

2021中秋節紀念勳章 神手勳章 太陽勳章 2021年紀念勳章

6
發表於 2022-3-29 11:44:14 |只看該作者
liyaodong 發表於 2022-3-29 02:40
大佬好久不见,64位更新以后很多地方都不熟悉,想请教一下吸怪call
以前的32位都是push 00 push 00 push 64 ...

 windows x64平台fastcall调用约定的主要特性如下:

前四个整型或指针类型参数由RCX,RDX,R8,R9依次传递,前四个浮点类型参数由XMM0,XMM1,XMM2,XMM3依次传递。
调用函数为前四个参数在调用栈上保留相应的空间,称作shadow space或spill slot。即使被调用方没有或小于4个参数,调用函数仍然保留那么多的栈空间,这有助于在某些特殊情况下简化调用约定。
除前四个参数以外的任何其他参数通过栈来传递,从右至左依次入栈。
由调用函数负责清理调用栈。
小于等于64位的整型或指针类型返回值由RAX传递。
浮点返回值由XMM0传递。
更大的返回值(比如结构体),由调用方在栈上分配空间,并有RCX持有该空间的指针并传递给被调用函数,因此整型参数使用的寄存器依次右移一格,实际只可以利用3个寄存器,其余参数入栈。函数调用结束后,RAX返回该空间的指针。
除RCX,RDX,R8,R9以外,RAX、R10、R11、XMM4 和 XMM5也是易变化的(volatile)寄存器。
RBX, RBP, RDI, RSI, R12, R14, R14, and R15寄存器则必须在使用时进行保护。
在寄存器中,所有参数都是右对齐的。小于64位的参数并不进行高位零扩展,也就是高位是无法预测的垃圾数据。
回覆

使用道具 舉報

12

主題

1

好友

22

積分

新手上路

Rank: 1

UID
169543
帖子
123
主題
12
精華
0
積分
22
楓幣
422
威望
21
存款
0
贊助金額
0
推廣
0
GP
27
閱讀權限
10
性別
在線時間
14 小時
註冊時間
2016-11-7
最後登入
2023-7-25
7
發表於 2022-3-29 22:41:35 |只看該作者
本帖最後由 仁二 於 2022-3-29 22:44 編輯
liyaodong 發表於 2022-3-29 02:40
大佬好久不见,64位更新以后很多地方都不熟悉,想请教一下吸怪call
以前的32位都是push 00 push 00 push 64 ...

rsp+内容查看(进call后rsp-08)
00        08        10        18
[rsp]        rcx        rdx        r8d
20        28        30        38
r9d        [rsp+20][rsp+28][rsp+30]

call内的[rsp+28]

call前的[rsp+20]
--------------------------------------------
这个是我之前刚刚认识X64做的笔记 但是不全对。。因为call前的20的空间用来记录保护别的暂存器的也有
调用吸怪call有点麻烦 要认真分析一下他有一个的参数了 不能直接丢0好像
虽然我已经调用成功了 但是还没做稳定性测试 我说一下大概调用
依次push 一下需要保护的暂存器
sub rsp,100//这个数值只是个例子 看自己需要申请rsp的空间
mov [rsp+80],00
mov [rsp+78],00
mov [rsp+70],00
mov [rsp+68],00
mov [rsp+60],00
mov [rsp+58],#????        //技能ID
mov [rsp+50],64
mov [rsp+48],00
mov [rsp+40],00
mov eax,[人物y]
mov [rsp+38],eax
mov eax,[人物x]
mov [rsp+30],eax
mov [rsp+28],12//控怪模式
mov [rsp+20],01
lea r9,[xxxx???]        //这个可能是自己需要去分析的参数
mov r8d,01
mov edx,07
mov rcx,r14
call Move_Mob   //调用吸怪call
add rsp,100//还原rsp保持堆栈平衡
依次pop出来还原

[發帖際遇]: 仁二 雖然沒有「哈味」,但全身卻散發出「魯」味,獲得路人同情施捨 1 楓幣 幸運榜 / 衰神榜
回覆

使用道具 舉報

3

主題

0

好友

8

積分

新手上路

Rank: 1

UID
252383
帖子
24
主題
3
精華
0
積分
8
楓幣
73
威望
3
存款
0
贊助金額
0
推廣
0
GP
3
閱讀權限
10
性別
保密
在線時間
102 小時
註冊時間
2018-11-26
最後登入
2024-11-4

Apple勳章

8
發表於 2022-3-29 22:48:07 |只看該作者
仁二 發表於 2022-3-29 22:41
rsp+内容查看(进call后rsp-08)
00        08        10        18
[rsp]        rcx        rdx         ...

感觉有点通顺了,非常感谢!!我去尝试调用一下
回覆

使用道具 舉報

3

主題

0

好友

8

積分

新手上路

Rank: 1

UID
252383
帖子
24
主題
3
精華
0
積分
8
楓幣
73
威望
3
存款
0
贊助金額
0
推廣
0
GP
3
閱讀權限
10
性別
保密
在線時間
102 小時
註冊時間
2018-11-26
最後登入
2024-11-4

Apple勳章

9
發表於 2022-3-30 01:03:40 |只看該作者
仁二 發表於 2022-3-29 22:41
rsp+内容查看(进call后rsp-08)
00        08        10        18
[rsp]        rcx        rdx         ...

更新一下结果:
1、hook点还是选用的32位版本吸怪一样的点位,个人认为这个点是为了拿r14的值,也下断验证了;

2、代码几乎和大佬你提供的一致,skillID 这里我选了我下断测试的职业自带的可拉怪技能,kain:63111004;

3、lea r9,[xxxx] 这里我在 原技能调用call 的地址下断确定了 这里应该是 lea r9,[rsp+90] (GMS的偏移,不一定一致)

但通过这样的方式调用还是会断线,推测是这三点原因中其中一个,希望大佬可以解惑。
调用call断线不知道怎么系统的debug
回覆

使用道具 舉報

12

主題

1

好友

22

積分

新手上路

Rank: 1

UID
169543
帖子
123
主題
12
精華
0
積分
22
楓幣
422
威望
21
存款
0
贊助金額
0
推廣
0
GP
27
閱讀權限
10
性別
在線時間
14 小時
註冊時間
2016-11-7
最後登入
2023-7-25
10
發表於 2022-4-16 07:52:30 |只看該作者
本帖最後由 仁二 於 2022-4-16 07:54 編輯
liyaodong 發表於 2022-3-30 01:03
更新一下结果:
1、hook点还是选用的32位版本吸怪一样的点位,个人认为这个点是为了拿r14的值,也下断验 ...

lea r9,[xxxx???]        //这个可能是自己需要去分析的参数
似乎这个参数也不是必要的 随便传递一下空地址或者丢0 可能都可以
飞游戏的话rsp必须16字节对齐 不然DUMP都不会出现。。
现在内存中很多mouaps这种操作[rsp/rbp+N]的在调用call前 保证你的堆栈是0结尾的就行了
就是+8/-8的事 举个例子 你调试自己的调用点 看进call前的rsp是多少 比如005a688这样是8结尾 rsp多-08
保证16字节对齐
回覆

使用道具 舉報

您需要登入後才可以回文 登入 | 立即註冊

廣告刊登意見回饋關於我們管群招募本站規範DMCA隱私權政策

Copyright © 2011-2024 冰楓論壇, All rights reserved

免責聲明:本網站是以即時上載留言的方式運作,本站對所有留言的真實性、完整性及立場等,不負任何法律責任。

而一切留言之言論只代表留言者個人意見,並非本網站之立場,用戶不應信賴內容,並應自行判斷內容之真實性。

小黑屋|手機版|冰楓論壇

GMT+8, 2024-12-22 19:39

回頂部