Chinaunix首页 | 论坛 | 博客
  • 博客访问: 249669
  • 博文数量: 65
  • 博客积分: 2758
  • 博客等级: 少校
  • 技术积分: 725
  • 用 户 组: 普通用户
  • 注册时间: 2006-02-25 00:23
文章分类

全部博文(65)

文章存档

2011年(4)

2010年(1)

2009年(60)

我的朋友

分类: C/C++

2009-12-04 23:09:05

我们知道,武林大部分CALL都能下bp send用 CTRL+F9 返回找到.但是为何这样就会找到我们想要的东西呢?send大家都应该知道是发包函数,是作用于客户端与服务端通信.

我们来思考一下.完美游戏的运行过程.比如说打坐.

游戏有一个子程序专门用于接受用户鼠标或者键盘信息,然后做出判断,跳转到相关CALL,执行动作,组建明文包,加密明文包,发送加密包,然后做内存释放等余下动作.


从这里我们可以看出,bp send  我们是断在了发送加密包这里.而我们调用的CALL则是  执行动作或者跳转的相关CALL中.这个就是完美国际的打坐CALL的运行思路.


这个是根据反汇编代码猜测出来的.但如果我们第一次找的话那么该如何知道这个过程呢?

其实谁都不知道.除非你看过源代码.这个就要我们去猜测了.

既然是猜测的话,也是有技巧的,比如说有些游戏下bp send 返回 只有3层,核心代码层肯定不会在这3层中,其实这里的send 应该说被创建成一个线程,来查询是否需要发包.

而不是从执行动作和发送封包,放到一个结构里.


那么我们该如何找这个CALL呢?

这里思路很重要,但决定思路的就是你的想法,你对程序运行的过程猜测的想法越接近游戏编程人员,那么你就能找到你想要的CALL.

比如说寻路CALL


为何武林寻路CALL一般不能用CTRL+F9返回找呢?

一般CTRL+F9找到的 寻路都是那种 走一步断一次的CALL,而真正的寻路则是调用一次断一次.

这样我们可以想象游戏的走路运行过程是这样的

计算走路路径.也就是走路算法.然后一个子程序调用走路函数 发送寻路路径中每一个坐标,走到目的地终止.



为何很多新手会找武林的CALL但换一个游戏却不行了呢?

那是因为很多人都没有思考过为何这样就能找到CALL,换一个游戏发送bp send返回 找不到一个CALL,或者 只有3层的时候 估计都会傻眼吧.

并不是所有游戏都是一个引擎做的,不是所有的游戏都是一个结构写成的.只有清楚游戏编程人员的程序算法结构思路,才能正确的找到你想要的.


这一点和破解很相似,你要猜测程序员是如何构建这个注册算法的.

找CALL也是逆向的一种.你要学会思考,学会猜测程序员的想法.猜测游戏的结构算法.
阅读(1792) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~