搜尋

英雄聯盟遊戲外掛Orbwalker遊戲修改器

返回清單
切換到指定樓層
通知這文章過時或找檔案 發表主題

[電玩遊戲] 《英雄聯盟》Orbwalker 腳本原始碼下載 與 C++ 記憶體偏移更新教學、VS x64 編譯設定、遊戲外掛開發入門

[複製連結]
1樓
巴利6231 ( Lv.30 大天使 ) 發表於 12 小時前 | 只看該作者 回覆獎勵 |降序瀏覽 |閱讀模式

快速閱讀精華


  • 開源走A腳本:英雄聯盟自動走位攻擊 C++ 原始碼,實現精準走A操作
  • 記憶體偏移已過時:遊戲更新後硬編碼偏移失效,需手動更新才能運作
  • VS x64 編譯環境:Visual Studio x64 無 CRT/IAT 編譯設定,適合外掛開發學習
  • 適合對象:想學習遊戲腳本開發、記憶體修改、DLL 注入的程式初學者


🎯 核心提醒:這份原始碼目前因遊戲版本更新導致記憶體偏移失效,需要具備 Cheat Engine 或 IDA Pro 基礎才能重新定位正確偏移值。建議搭配 CE 修改器教學一同學習!

目錄指引





重要提醒與免責聲明


⚠️ 風險警告:
  • 使用遊戲腳本、外掛或記憶體修改工具可能導致遊戲帳號永久停權。
  • 本文僅作為程式開發學習與遊戲安全研究用途,不鼓勵在正式伺服器使用。
  • 原始碼編譯後產生的 DLL 或執行檔僅供本地測試,請勿用於線上對戰。
  • 記憶體偏移值會隨遊戲版本更新而改變,需要持續維護才能運作。


📌 法律聲明:
本文分享的原始碼來自  社羣公開討論串,僅提供技術交流。使用者應自行承擔因使用本教學內容所產生的一切法律責任與帳號風險。


專案功能與技術架構


這份開源專案實現了英雄聯盟自動走A(Orbwalker)功能,透過讀取遊戲記憶體中的關鍵數值,計算最佳攻擊間隔與走位時機。

🎯 核心功能:
  • 自動攻擊計時:讀取玩家攻擊速度與動畫時間,精確計算下次可攻擊時間點
  • 智能走位:在攻擊間隔自動下達移動指令,實現攻擊-走位-攻擊的流暢循環
  • 記憶體讀取:透過 Windows API 讀取遊戲程式記憶體,取得即時遊戲狀態
  • 低檢測風險設計:無 CRT(C Runtime)與無 IAT(Import Address Table)編譯,減少被遊戲反作弊掃描的特徵


🔧 技術規格:
項目規格
開發語言C++
編譯環境Visual Studio x64 Release
執行模式外部讀取(External)/ DLL 注入(Internal)
依賴項目無 CRT / 無 IAT(減少檢測 footprint)
目前狀態偏移值過時(offsets outdated),需手動更新





👉 GM後台版 遊戲 推薦 ⬇️⬇️⬇️ 快速玩各種二次元動漫手遊app




VS x64 編譯環境設定


要成功編譯這份原始碼,需要正確設定 Visual Studio 專案屬性,確保產生的二進位檔案符合「無 CRT、無 IAT」的設計目標,降低被遊戲反作弊系統偵測的風險。

📋 編譯步驟:

  • 開啟 Visual Studio,建立新的「空專案」(Empty Project)。
  • 將原始碼檔案(.cpp、.h)加入專案中。
  • 在「方案總管」中右鍵點選專案 → 屬性(Properties)。
  • 設定「組態」(Configuration)為 Release,平臺(Platform)為 x64。
  • 前往「C/C++」→「程式碼產生」(Code Generation):
       
    • 將「執行階段程式庫」(Runtime Library)設為「多執行緒(/MT)」或依照原始碼需求設為無 CRT。
  • 前往「連結器」(Linker)→「進階」(Advanced):
       
    • 將「進入點」(Entry Point)設為自訂函式(如果原始碼使用自訂 entry point 繞過 CRT)。
  • 確保「連結器」→「輸入」(Input)中沒有加入不必要的匯入程式庫(以達成無 IAT)。
  • 建置(Build)專案,確認無錯誤產生。


⚠️ 編譯注意事項:
  • 若遇到「未整理的外部符號」(unresolved external symbol)錯誤,通常是因為缺少 Windows SDK 或特定系統函式庫,請確認已安裝「使用 C++ 的桌面開發」工作負載。
  • 「無 CRT」編譯意指不連結 MSVCRT.dll,可減少被某些簽名掃描偵測的機率,但可能導致部分標準函式庫無法使用,原始碼中應使用 Windows API 替代。
  • 「無 IAT」設計需透過手動載入 DLL 或動態整理函式位址(GetProcAddress)實現,避免在匯入表中留下敏感 API 記錄。



記憶體偏移更新教學


這份原始碼目前無法直接運作的主因是英雄聯盟經過多次版本更新,遊戲程式碼中的關鍵結構體偏移值已經改變。要讓腳本重新運作,必須使用記憶體分析工具重新定位正確的偏移值。

🔍 偏移更新步驟:



📝 常見需要更新的偏移欄位:
欄位名稱說明更新難度
AttackSpeed攻擊速度倍率,影響攻擊間隔計算中等
AttackDelay基礎攻擊延遲,與動畫取消相關困難
WindUpTime攻擊前搖時間,決定可取消攻擊的時機困難
LocalPlayer本地玩家物件指標,所有操作的基礎簡單


💡 偏移更新小技巧:
  • 使用「字串參照」功能搜尋遊戲內的錯誤訊息或除錯字串,通常可以定位到相關的類別結構。
  • 比對舊版本與新版本的二進位差異(Binary Diff),快速找出偏移變更的位置。
  • 加入  論壇的 League of Legends 討論區,通常有熱心網友分享最新的偏移值。
  • 編寫自動化的偏移掃描程式,透過特徵碼(Pattern Scan)在記憶體中搜尋特定函式或變數位址。



原始碼結構整理


這份專案採用外部讀取(External)方式實現走A功能,透過 Windows API 讀取遊戲記憶體並計算攻擊時機,再模擬滑鼠點擊實現自動走位。

📁 主要檔案架構:
  • Main.cpp:程式進入點,初始化記憶體讀取與走A循環。
  • Memory.h/cpp:記憶體操作封裝,包含 `ReadProcessMemory` 與模組基址取得。
  • Offsets.h:硬編碼的記憶體偏移定義(這是當前需要更新的部分)。
  • Orbwalker.h/cpp:走A邏輯核心,計算攻擊間隔、動畫取消時機。
  • Input.h/cpp:滑鼠模擬輸入,實現攻擊與移動指令發送。


🔧 核心類別說明:
類別/結構體功能描述關鍵成員
MemoryManager管理遊戲行程句柄與基礎記憶體讀取hProcess, BaseAddress
Orbwalker計算攻擊時機與執行走A邏輯AttackSpeed, LastAttackTime
GameObject遊戲物件基礎類別(玩家、小兵)Healtd, Position, AttackDelay
InputSimulator模擬滑鼠點擊與鍵盤輸入SendInput, mouse_event


📝 關鍵程式碼片段:
以下是走A邏輯的核心計算部分,用於判斷何時可以進行下一次攻擊:

// 計算攻擊間隔(基於攻擊速度)
float attackDelay = 1.0f / attackSpeed;
float windUpTime = baseAttackDelay * (windUpPercent / 100.0f);

// 檢查是否可攻擊
if (GetTickCount() - lastAttackTime >= (attackDelay * 1000)) {
    IssueAttack(target);  // 發送攻擊指令
    lastAttackTime = GetTickCount();
} else if (canCancelAnimation && GetTickCount() - lastAttackTime >= windUpTime * 1000) {
    IssueMove(movePosition);  // 取消攻擊後搖,執行走位
}



檔案下載點


以下是專案原始碼壓縮檔,包含完整的 Visual Studio 專案設定與 C++ 原始碼。請注意此版本因遊戲更新導致記憶體偏移失效,需要自行更新才能正常運作。



所有站內附件皆會附上安全掃描報告
請會員查看純淨度百分比後判斷使用



相關檔案須知:
取得檔案前,請先詳細閱讀文章內容
避免不必要錯誤與誤會發生。
也可多參考文章討論樓層內容
了解附件檔案相關討論資訊。






常見問題Q&A



Q:什麼是 Orbwalker(走A腳本)?
A:Orbwalker 是一種自動化腳本,能夠在英雄聯盟中自動執行「攻擊-走位-攻擊」的循環(也就是俗稱的「走A」或「風箏」)。這類工具通常透過讀取遊戲記憶體取得攻擊速度、距離等資訊,並自動在攻擊間隔插入移動指令,讓玩家可以專注於走位而不用手動點擊地板。

Q:為什麼下載後無法直接使用?
A:這份原始碼最後更新時間為五月,英雄聯盟經過多次改版後,遊戲程式碼中的「記憶體偏移」(Offsets)已經改變。原始碼中硬編碼的位址(如 `LocalPlayer`, `AttackSpeed`, `GameTime` 等欄位的偏移值)已指向錯誤的記憶體區域,導致讀取到錯誤數值或程式崩潰。你需要使用 Cheat Engine 或 IDA Pro 重新找出正確的偏移值並更新到 `Offsets.h` 中。

Q:如何更新記憶體偏移(Offsets)?
A:更新偏移需要具備基礎的逆向工程能力:
  • 使用 Cheat Engine (CE修改器) 7.5 漢化版 中文版 附加到遊戲行程
  • 透過「數值掃描」找到攻擊速度、血量等已知數值的記憶體位址
  • 使用「指標掃描」(Pointer Scan)或分析組合語言指令,找出從靜態基址到目標欄位的偏移路徑
  • 將找到的十六進位偏移值(如 `0x2A8`, `0x10`)更新到原始碼的 `Offsets.h` 檔案中


Q:什麼是「無 CRT/無 IAT」編譯?
A:這是遊戲外掛/腳本開發中常見的「隱蔽編譯」技巧:
  • 無 CRT(No C Runtime):不連結 MSVCRT.dll 等 C 標準函式庫,改用 Windows API(如 `CreateFile` 取代 `fopen`)。這樣可執行檔不會載入明顯的 C Runtime DLL,減少被反作弊掃描的特徵。
  • 無 IAT(No Import Address Table):不在 PE 檔的匯入表中留下 `ReadProcessMemory`, `WriteProcessMemory` 等敏感 API 的記錄。改在執行時透過 `GetProcAddress` 動態整理 API 位址,讓靜態分析工具難以判斷程式功能。


Q:使用這個腳本會被 Ban 嗎?
A:絕對會。 英雄聯盟(League of Legends)擁有業界最嚴格的反作弊系統 Vanguard(由 Riot Games 開發,核心驅動層級保護)。任何讀取遊戲記憶體、注入 DLL、模擬輸入的行為都會被偵測並立即觸發帳號永久停權(Hardware ID Ban 封鎖電腦硬體)。本文僅供本地端學習與逆向工程研究,強烈建議在離線環境或虛擬機器測試,絕對不要在主帳號或正式對戰中使用。

參考資料








大家正在看啥


收藏收藏 分享文章到FB上分享
回覆 使用道具 檢舉
複製專屬你的推廣連結:發至FB與各論壇宣傳:累積點數換GP商品 & 藍鑽
每五點閱率就可以兌換藍鑽積分或遊戲點卡 夢遊推廣文章換GP商品

你需要登入後才可以回覆 登入 | 加入會員

本版積分規則

Copyright (C) 2010-2020 夢遊電玩論壇

廣告合作:請直接聯繫我們,並附上您預刊登位置的預算。  

快速回覆 返回頂端 返回清單