首页
社区
课程
招聘
[求助]这段代码是二叉树结构吗
发表于: 2013-2-18 13:10 4372

[求助]这段代码是二叉树结构吗

2013-2-18 13:10
4372
007E2230  /$  8B01          mov eax,dword ptr ds:[ecx]
007E2232  |.  8A50 15       mov dl,byte ptr ds:[eax+0x15]
007E2235  |.  84D2          test dl,dl                                    ;  按位与 同是1才是1其它都为0 也就是为1下面跳转 说明找到了
007E2237  |.  75 4D         jnz Xkhan3.007E2286                           ;  这里直接跳到了末尾
007E2239  |.  8B50 08       mov edx,dword ptr ds:[eax+0x8]                ;  这里把eax+08的值给了edx
007E223C  |.  53            push ebx                                      ;  这里压了ebx
007E223D  |.  8A5A 15       mov bl,byte ptr ds:[edx+0x15]
007E2240  |.  84DB          test bl,bl                                    ;  按位与 同是1才是1其它都为0 也就是为1下面跳转 说明找到了
007E2242  |.  75 1B         jnz Xkhan3.007E225F                           ;  这里跳到了第二个还回的地方
007E2244  |.  8B02          mov eax,dword ptr ds:[edx]                    ;  然后edx的值给eax
007E2246  |.  8A58 15       mov bl,byte ptr ds:[eax+0x15]
007E2249  |.  84DB          test bl,bl                                    ;  按位与 同是1才是1其它都为0 也就是为1下面跳转 说明找到了
007E224B  |.  75 0E         jnz Xkhan3.007E225B
007E224D  |.  8D49 00       lea ecx,dword ptr ds:[ecx]
007E2250  |>  8BD0          /mov edx,eax                                  ;  eax 给edx
007E2252  |.  8B02          |mov eax,dword ptr ds:[edx]
007E2254  |.  8A58 15       |mov bl,byte ptr ds:[eax+0x15]
007E2257  |.  84DB          |test bl,bl
007E2259  |.^ 74 F5         \je Xkhan3.007E2250
007E225B  |>  8911          mov dword ptr ds:[ecx],edx
007E225D  |.  5B            pop ebx                                       ;  这里弹出了ebx
007E225E  |.  C3            retn
007E225F  |>  8B40 04       mov eax,dword ptr ds:[eax+0x4]                ;  这里是第二个返回的入口 是eax + 4
007E2262  |.  8A50 15       mov dl,byte ptr ds:[eax+0x15]
007E2265  |.  84D2          test dl,dl                                    ;  按位与 同是1才是1其它都为0 也就是为1下面跳转 说明找到了
007E2267  |.  75 1A         jnz Xkhan3.007E2283                           ;  说明找到了 这个eax
007E2269  |.  8DA424 000000>lea esp,dword ptr ss:[esp]
007E2270  |>  8B11          /mov edx,dword ptr ds:[ecx]                   ;  把ecx的值 给edx
007E2272  |.  3B50 08       |cmp edx,dword ptr ds:[eax+0x8]               ;  比较edx 和 eax+8如果不相等就跳转
007E2275  |.  75 0C         |jnz Xkhan3.007E2283
007E2277  |.  8901          |mov dword ptr ds:[ecx],eax                   ;  如果相等就把eax给 [ecx]
007E2279  |.  8B40 04       |mov eax,dword ptr ds:[eax+0x4]               ;  把eax+4的值给eax
007E227C  |.  8A50 15       |mov dl,byte ptr ds:[eax+0x15]                ;  按位与 同是1才是1其它都为0 也就是为0下面跳转 说明找到了
007E227F  |.  84D2          |test dl,dl
007E2281  |.^ 74 ED         \je Xkhan3.007E2270
007E2283  |>  8901          mov dword ptr ds:[ecx],eax
007E2285  |.  5B            pop ebx
007E2286  \>  C3            retn

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (5)
雪    币: 332
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
是查找二叉树吗 可看着又不像
2013-2-18 13:19
0
雪    币: 182
活跃值: (81)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
3
二叉树应该判断大于或者小于还有等于
2013-2-18 17:08
0
雪    币: 291
活跃值: (213)
能力值: ( LV12,RANK:210 )
在线值:
发帖
回帖
粉丝
4
楼主自己研究下吧,我只能做到这么多

struct Node
{
  // 域                偏移量
  Node *LinkNodeA; // 0, 0x0
  Node *LinkNodeB; // 4, 0x4
  Node *LinkNodeC; // 8, 0x8
  void *UnkC;      // 12, 0xC
  void *Unk10;     // 16, 0x10
  char Unk14;      // 20, 0x14
  char Flag;        // 21, 0x15
  // 可能还有后续的
};

void __fastcall sub_0(Node *DataNode)
{
  Node *v1;
  Node *v2;
  Node *v3;
  Node *v4;

  v1 = DataNode->LinkNodeA;
  if ( !DataNode->LinkNodeA->Flag )
  {
    v2 = v1->LinkNodeC;
    if ( v2->Flag )
    {
      for ( v4 = v1->LinkNodeB; !v4->Flag; v4 = v4->LinkNodeB )
      {
        if ( DataNode->LinkNodeA != v4->LinkNodeC )
          break;
        DataNode->LinkNodeA = v4;
      }
      DataNode->LinkNodeA = v4;
    }
    else
    {
      v3 = v2->LinkNodeA;
      if ( !v2->LinkNodeA->Flag )
      {
        do
        {
          v2 = v3;
          v3 = v3->LinkNodeA;
        }
        while ( !v3->Flag );
      }
      DataNode->LinkNodeA = v2;
    }
  }
}
2013-2-19 01:18
0
雪    币: 29349
活跃值: (7890)
能力值: ( LV15,RANK:3306 )
在线值:
发帖
回帖
粉丝
5
楼主有bin不, 发个出来?
2013-2-19 08:58
0
雪    币: 952
活跃值: (1931)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
红黑树 vs中的map set 之类的都是用红黑树实现的
2013-2-21 10:48
0
游客
登录 | 注册 方可回帖
返回
//