冰楓論壇

 找回密碼
 立即註冊
查看: 12|回覆: 1
打印 上一主題 下一主題

[原創] 楓之谷代碼分析 找出想要的功能&寫出想要的數據

[複製鏈接]

2

主題

0

好友

7

積分

新手上路

Rank: 1

UID
22592
帖子
24
主題
2
精華
0
積分
7
楓幣
470
威望
5
存款
0
贊助金額
0
推廣
0
GP
2
閱讀權限
10
在線時間
31 小時
註冊時間
2013-2-6
最後登入
2026-9-2
跳轉到指定樓層
1
發表於 昨天 23:57 |只看該作者 |倒序瀏覽
本帖最後由 604759123 於 2026-9-2 00:19 編輯

前言

各位壇友們好

近期古早味的楓之谷熱潮再現,除了Artale還有經典服

就想回味一下古早的功能是怎麼搞

最近開始重新探險,較少看到代碼查找攻略又或者是已經消失

因此結合網上有人分享過加自己研究的內容,做一個紀錄分享,也希望有興趣研究的朋友們一起耍

有些東西可能不是正確或有更好的做法,若有大佬看到也請不吝指點

(不好意思原本有附圖片,但文章內要進行上傳壓縮才能貼出來,我會再整理重新貼上,後續可能也考慮用影片比較適合)


--
環境說明

首先,因為主要的目的及體驗是找出功能及修改的樂趣,我只使用私服測試

第一、沒研究Anti-cheat相關的內容,第二、能使用私服GM指令可以輔助很多

當然其思路在對應的相關版本應該是通用的

感謝各位前人的傳承,以及後續開發私服、登入器的大佬們,讓小弟有機會能踏上這時空之旅

環境&工具如下:
CE(Cheat Engine) @dark Byte https://github.com/cheat-engine/cheat-engine
(必備工具,在使用下列的相同環境下,不用搞成UCE,大概只要改成VEH debugger,之後會研究下用x32dbg, ghidra來輔助找些花樣)

TwMs CEM @冰楓 https://bingfong.com/thread-6812-1-1.html
(想測試或比較不同的數據功能,可以參考不同版本)

TWMSv113伺服器 @D363N6UY https://github.com/D363N6UY/MapleStory-v113-Server-Eimulator
(自己開服用的工具,內容算很純淨,版本則是因為跟古老反盾、狂狼反盾接近,商業私服也很多,適合拿來研究修改)

TWMSv113~v194登入器 @zhyon https://github.com/zhyonc/TMSLauncher
(這個登入器很重要,移除了HS、移除CRC校驗...等等反作弊的內容,用這款可以減少很多挫折)

代碼功能及數據方面,要感謝的太多了,列不完…

--
指針

基礎的CE操作的話,因為已經有很多教學,不太多贅述
但在找功能上,因為工具的更新,有些找法可以精簡些
先來找個簡單的,人物座標x方向開始搞起,這裡先打詳細一點,其他都可以以此類推

人物座標:

        1. 使用CE搜尋未知的值、變動的值
        2. 透過左右走、原地不動,來找出放x值的地址
        3. 剩下過濾完的地址,可以看出x往右是+,往左是-
        4. 找到x值的儲存地址後(可能會有多個,多切換地圖,可以過濾掉剩下幾個,加入到地址列表,
        右鍵看下"找誰訪問(Find out what accesse this address[F5])"、"找誰改寫Find out what writes this address[F6]",確認結尾偏移值
        5. 加入到代碼列表後,右鍵Generate pointermap,保存
        6. 重開遊戲,再找一次儲存x值的地址,右鍵選擇Pointer Scan,並使用剛才儲存的地址做比較
        (重開時的小技巧,記住幾個地圖傳送後的值,重開後直接搜尋這些值就好)
        7. 如果還有很多地址,可以使用工具列右邊的Rescan指定結尾的偏移值,或多做幾次儲存再比較
        8. 將剩下的指針都雙擊放入代碼列表,重開遊戲、換頻可以找到最後剩下唯一的(也可能還有數個)
        9. 通常Y座標位於X座標的偏移+4*n/-4*n,試了一下發現是+4,因此也獲取了Y的指針
        
        
牆壁座標:

        1. 因為我們有了人物座標,可以使用人物走到最左跟最右邊,來大概推測牆壁X左值、右值
        2. 走到最左邊,直接搜尋人物此時X座標範圍值,最右同理
        (info: 我原本是用範圍去抓,後來發現值跟人能走到的位置相同。此牆壁的值可以限制新產生的怪物座標)


滑鼠座標:
        
        1. 根據人物的左-右+,推測滑鼠也是,很快能找到


人物狀態:

        1. 切換人物左右、爬梯、跳躍、趴下,使用變動的值可以找到儲存地址,一樣使用Pointer scan能快速找出基址+偏移
        (找到人物狀態後,可以使用Memory View->Tool->Dissect structure,看出一些其他功能的端倪)
        (info: 面左5/左走3/左爬繩11/右爬繩10/左趴B/左跳(含被撞)7/游泳左D/墓碑左13
        右邊等於左-1 ex:面右=4)


喘氣狀態(停止呼吸):

        1. 利用攻擊後、被攻擊後的狀態,搜尋變動的值可以找到
        (info: 5000ms倒數到0)
        
        
攻擊次數(攻擊不停):
        
        1. 假設我們不知道一開始沒攻擊的值=0,一樣搜尋未知的值、打幾下、增加的值,可以搜出來
        (info: 換地圖可以歸零)


--
指令修改&編寫數據&功能實現


根據歷史代碼及數據來看,早期沒有CRC bypass的時候,大部分是使用硬體斷點改變暫存器或改變Flag來完成功能
後來還有ICS數據的方式,而我們使用的登入器可以好好享受沒有這困擾

攻擊不停:
        一樣是Hello world的攻擊不停開始,其實打勾鎖定住指針就能實現,不過我不確定是不是因為私服關係
        並且用修改指令方式,可以不用找到基址跟偏移就達到功能了
        
        一開始搜到攻擊次數的值後,因為我們想知道哪邊寫入嘛,直接右鍵"找誰改寫" ,接著攻擊一下,會跳出一條計數1的指令
        mov [ecx+08],eax 可以看出把eax內容放進我們找到的地址,剛好上一條很明顯是inc eax,我們可以請他不要+1
Screenshot 2026-09-01 235415.png
        有幾種作法:
                1. 就直接nop掉,用簡單的數據寫入,可以看到數字不會再增加,目前測試還沒有異狀
                2. 上面有個判斷可以改寫指令 (把比較值無限大、比較完的跳轉改成跳過計算那行...)
                mov eax,[ecx+08] //目前儲存的地址
                cmp eax,[ecx+0C] //下斷點可以知道這裡是100(停止攻擊)
                jl 0096ED66 //比較結果 小於等於100就跳去inc那行
        推敲出代碼前面的邏輯,就比較好操作了
      

無敵:
        我們前面有找出人物狀態,可以利用被撞到時的狀態來下斷,並且是只有傷害時才改寫或訪問到這個位置
        可以看到只有一條是被撞到時才出現計數1
        查看指令位置可以看到有一條
U035784Glo
        cmp eax,12 //比較是否為墓碑狀態
        下面je則是如果是墓碑就跳轉,我們可以先測試有什麼效果
        讓他直接跳轉過去,怪物會直接碰不到,原因大概是把你當成墓碑了
Screenshot 2026-09-01 234735.png
        (這邊有點導果為因的找法...一來是我印象我有看過,二來是找傷害/碰撞判斷比較正規,後續會再研究不同種類的無敵)


撞擊時間(連撞/無敵秒數):
        從無敵附近及相關代碼稍微閒晃一下,看到了一個特殊的comment,寫了1500
        這不就是撞擊後的冷卻時間嗎?(1500ms,根據喘氣時間大略計算)
        直接改成0測試 => 實現連撞
        那麼改成其他秒數 => 實現幾秒後無敵 (類似老版本58秒無敵那種效果)
Screenshot 2026-09-01 234642.png

      

MISS連撞:
        一樣在附近閒晃,看到-1500,直接狠狠地把它改成0 => 就變成了MISS連撞啦(還沒達成MISS無敵,所以有傷害)
Screenshot 2026-09-01 234519.png
      


--

目前是下班有閒情逸致想到就會開機來搞一下,偶爾搞搞其他遊戲,結果最後也是在玩CE,哈哈
其他再陸續更新,也可能想用影片,或許邊研究邊錄邊說會方便一點,也感謝壇友們或大佬可以分享一些思路提供
不要去打敗黑魔法師了,一起成為黑魔法師吧
















收藏收藏0 推0 噓0

分享這篇文章



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

2

主題

0

好友

7

積分

新手上路

Rank: 1

UID
22592
帖子
24
主題
2
精華
0
積分
7
楓幣
470
威望
5
存款
0
贊助金額
0
推廣
0
GP
2
閱讀權限
10
在線時間
31 小時
註冊時間
2013-2-6
最後登入
2026-9-2
2
發表於 5 小時前 |只看該作者
卡個位置補充其他功能
[發帖際遇]: 604759123 在網咖通宵,花了 1 楓幣 幸運榜 / 衰神榜
Times
點評回覆

使用道具 舉報

高級模式
B Color Image Link Quote Code Smilies

廣告刊登意見回饋關於我們管群招募本站規範DMCA隱私權政策詐騙防範及資料調閱

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

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

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

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

GMT+8, 2026-9-2 05:25

APP Store下載 Play Store下載
回頂部