关于某网游的二叉树分析和luaHook实现
最近在研究一个网游,里面用儿叉树的结构,至于怎么找到这颗二叉树的,网上教程这么多,我就不说了,重点讲下这颗二叉树。
其中1是左子树执行的流程,2是右子树执行的流程。
其实这个图是个排序二叉树,这里儿叉树跟edi(经分析,这个edi是某怪物ID)做比较,类似二分搜索这样的。
自己画了个图,方便自己理解。
void CGameDlg::TLBianLi(ULONG CurAddr){
//bl=[根+0x15] bl为0时进入遍历
ULONG RightAddr,LeftAddr,tempAddr;
float X,Y;
BYTE root_15;
char GuaiWustr[16]="null";
_asm
{
push eax
mov eax,CurAddr
add eax,0x15
mov eax,[eax]
mov root_15,al
pop eax
}
if(root_15==0){
//当前结点
//[[[[eax+0x10]+0x1EC]+0x4]+0x34]是怪物名 eax =CurAddr
//[[[[[9CD654]+0x70]+0x1EC]+0x4]+000024A0]