先谈下游戏,游戏每个动作都会调用函数。比方游戏设计人员是这样设计游戏的:
void zhixing() //执行函数
{
        dazuo();
        .......  //@1
}

void dazuo() //打坐函数
{
      jimi("...."); //加密函数
  return;                
}

void jimi(char *s)
{
      //对s加密处理,赋值给str变量
  fashong(str); //发送函数
  return;      
}

void fashong(char *s)
{
      send(s);
      return;        
}

你要打坐,你就必须要调用相对应的函数。上面的游戏只要你调用dazuo()就会在游戏中执行打坐这个动作。 而通过OD可以把游戏执行在内存中的代码反汇编出来。比如说你下断点bp send,意思就是当调用函数send时就断下来。你断下来后,当你按1次ctrl+f9,就返回到jimi函数中,按第2次ctrl+f9,就返回到dazuo函数中,再按一次ctrl+f9,就返回到zhixing函数中的@1位置,这样,上一行就是dazuo的函数。 你就可以通过调用call 地址执行这个动作了。

posted on 2009-12-31 15:45  jasonM  阅读(3359)  评论(0编辑  收藏  举报