分析仙剑4物理攻击的时候遇到一段代码

PAL4.exe+139EF0 - 8B 44 24 04 - mov eax,[esp+04]
PAL4.exe+139EF4 - 83 F8 0A - cmp eax,0A { 10 }
PAL4.exe+139EF7 - 7D 0B - jnl PAL4.exe+139F04
PAL4.exe+139EF9 - 85 C0 - test eax,eax
PAL4.exe+139EFB - 7C 07 - jl PAL4.exe+139F04
PAL4.exe+139EFD - 8B 84 81 CC000000 - mov eax,[ecx+eax*4+000000CC]
PAL4.exe+139F04 - C2 0400 - ret 0004 { 4 }

 

贴出来的目的就是想记录一下,我以前看汇编代码不是很流利,最近看了一点儿之后,感觉有了感觉了。

观察一下上面代码。

只调用了一个栈中的变量,可以认为这个函数只有一个参数。

先从栈中取得这个参数,然后和10比较。如果大于等于10则返回,小于10则判断这个参数是否小于0,小于则返回。

 

int func(int index)

{

  if(index<10)

  {

    if(index<0)

    {return 4;}

    else

    { 

    return obj.item;

     }

    

  }

  return 4

}

大概是这么个流程。

posted @ 2021-09-26 12:28  eatwhat  阅读(58)  评论(0编辑  收藏  举报