關於某網遊的二叉樹分析和luahook實現
最近在研究乙個網遊,裡面用兒叉樹的結構,至於怎麼找到這顆二叉樹的,網上教程這麼多,我就不說了,重點講下這顆二叉樹。
其中1是左子樹執行的流程,2是右子樹執行的流程。
其實這個圖是個排序二叉樹,這裡兒叉樹跟edi(經分析,這個edi是某怪物id)做比較,類似二分搜尋這樣的。
自己畫了個圖,方便自己理解。
//右樹mov 根,[根+0x8]
現在再來說遊戲如果用了lua我們怎麼呼叫怎麼找到關鍵的lua
還是那樣,要先找到遊戲中的某lua呼叫的地方,網上教程這麼多我就不說怎麼找了,說說怎麼實現相關的luahook吧。
**********===lua_call**********===
007251e1 |. 8b0d 884f3401 mov ecx,dword ptr ds:[0x1344f88] ; lua
007251e7 |. 8b11 mov edx,dword ptr ds:[ecx]
007251e9 |. ff52 3c call dword ptr ds:[edx+0x3c]
007251ec |. 8b00 mov eax,dword ptr ds:[eax]
007251ee |. 53 push ebx
007251ef |. 50 push eax
007251f0 |. ff15 5ce38400 call dword ptr ds:[0x84e35c] ; luaplus.lua_dostring
007251f6 |. 8b45 e4 mov eax,[local.7]
007251f9 |. 83c4 08 add esp,0x8
***********************************==
hook的方法就是inline hook那樣了,其實也沒什麼好說的,會了inline hook,其實是很簡單的
void __declspec(naked) mylua()
//lua_mycode();
_asm popad
//跳回原來的地方
_asm }
//儲存原來的資料
byte oldgamecode[6]=;
void lua_hook()
//afxmessagebox(l"hook");
}void lua_unhook()
}
第一次在csdn寫部落格 試試 大家隨便 看看 話說怎麼傳壓縮 關於天龍八部3的感想
以前一直沒有玩過網遊,玩的一直是單機的角色扮演類遊戲 武俠為主 大多數情況也是在乎劇情,我這個人玩遊戲還有個特點,就是我不喜歡仙啊 魔 神話之類的遊戲,我還是比較喜歡武俠一類的劇情很唯美結局不是那麼傷感類的遊戲。可能是我太多愁善感了。總體來說這個遊戲給我的感覺總體還是不錯的,我感覺有兩個缺點吧的。第...
《連線資料庫的天龍八部》
第一步 連線資料庫 mysqli connect 伺服器位址,mysql 使用者名稱,mysql 密碼 link mysqli connect localhost root 123456 第二步 判斷連線資料庫是否成功 連線錯誤號 mysqli connect errno 連線錯誤資訊 mysqli...
天龍八部的幾個CALL寫法 Delphi版
call部份start procedure callwalk xy pcoordinate stdcall varx,y single begin x xy x y xy y asmpushad mov edx,x mov eax,y mov ecx,eax push ecx push edx mo...