日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

015 已接任务链表和任务库二叉树遍历

發布時間:2025/3/21 编程问答 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 015 已接任务链表和任务库二叉树遍历 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

      • 任務名字庫
      • 已接任務

對于游戲的任務數據來說,分為三大塊,已接任務,可接任務和任務庫。對于任務數據來說,一般都是從名字入手

任務名字庫

首先來找任務的名字庫

從任務名字入手

直接搜索名字,然后把中間的這一塊連續地址的任務名字拉下來。這一塊很明顯就是屬于任務庫里的內容,只要下訪問斷點,就能追到相關的數據結構

在蘇醒一的地址下斷,然后點開任務面板,點擊全部追蹤

此時斷點斷下

返回上層,這里要追rcx

再返回上層,這里要追r8,得到下面的偏移

rsi+0x74

rsi來源于rdx

返回上層,rdx來源于r12

r12來源于rdx

再返回上層,rdx來源于r12

r12來源于rax,這里就追到了和之前一樣的call,這個call是傳入ID和二叉樹基地址,從里面獲取任務對象

接著進call里面追rax,rax來源于[rax+0x20]

[rax+0x20]+0x74

rax來源于r8

r8來源于rax,然后就進到了二叉樹

二叉樹的根節點rax來源于[r8+0x8],來源于[rcx+0x10]

最后rcx來源于基地址。這樣我們就能拿到一個完整的任務庫,通過這個任務庫可以獲取到任務名字

任務庫二叉樹根節點 [[0x00007FF6A7B98A90+8]+0x10] +0 左子樹 +10 右子樹 +18 任務ID +29 結束標志任務名字表達式:[rax+0x20]+0x74 +20 任務對象[任務對象+0x74] 任務名字 --------------------通過調用call傳入任務ID可以拿到任務名字------------------------ 任務名字庫二叉樹偏移:0x2F78A90 call偏移:0xCB1E60

已接任務

接著回到這個位置分析edi,也就是任務ID的來源,通過任務ID找到一個保存所有已接任務ID的數據結構。

edi來源于edx

edx來源于esi

esi來源于r8

r8來源于edi

edi來源于[rbx+0x10]

[rbx+0x10]

在這個位置下斷,然后一直單步,會發現一直處在循環里面,這個地方實際上是一個鏈表

鏈表的節點是rbx,結束條件是判斷[rsi]

接著再追rbx的值,rbx來源于[rcx]

[rcx]

那么這里就是鏈表的根節點

rcx來源于[rax]來源于call

[[rax]]

rax來源于[r13+0x35C]

[[r13+0x35C]]

r13來源于rcx

rcx來源于rax,來源于call

來源于基地址

[[0x00007FF6A7B98A90+0x35C]]

接著整理下數據

已接任務鏈表根節點 [[0x00007FF6A7B98A90+0x35C]] 偏移:2F78A90 +0 下一個節點任務ID表達式=[rbx+0x10] +10 已接任務ID 通過這個鏈表可以拿到所有已接任務的ID

Github:https://github.com/TonyChen56/GameReverseNote

完整代碼:https://download.csdn.net/download/qq_38474570/79498815

任務ID表達式=[rbx+0x10]
+10 已接任務ID
通過這個鏈表可以拿到所有已接任務的ID

Github:https://github.com/TonyChen56/GameReverseNote完整代碼:https://download.csdn.net/download/qq_38474570/79498815

總結

以上是生活随笔為你收集整理的015 已接任务链表和任务库二叉树遍历的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。