-
寻找网络游戏中
CALL
的教程
说一说一个简单的找
call
原理
其实游戏中的
call
是有一定规律的,这个规律是什么?
p>
1
、调用之前,必定有
call
名入栈,什么,不知道如何看堆栈有哪些内容。很简单啊,按
alt
+
k
就看到了
2
、系统进程空间,一般都可以忽略
,那么,哪些是系统进程呢,我自己也分不太清,但是
NTDLL
,
USER32
,
WS_S32
p>
等一般都是系统进程空间,在
od
的状态栏
上就可以分辨出来。
举个例子:<
/p>
ZX
中找死亡回程
call
一、在弄死小号后,先下了
BP SEND
指令,
od
中断下来,按
ALT
+
K
,看到的堆栈情况是这
样的:
地址
堆栈
函数过程
参数
调用来自
结构
029FFEC8 00572860 WS2_
elementc.0057285A
029FFECC
000006BC Socket = 6BC
029FFED0 06D1F2A8 Data = 06D1F2A8
029FFED4 00000003 DataSize
= 3
029FFED8 00000000 Flags
= 0
029FFEE8 00578BE7
包含
elementc.00572860
elementc.00578BE4
029FFEF0
00578827 elementc.00578BB0 elementc.00578822
029FFF38 005785DE
elementc.00578640
elementc.005785D9
029FFF48
00577128
包含
elementc.005785DE
elementc.00577125
二、然后
F9
让游戏正常,再回到游戏中,按下“回城”
三、
od
中
断下来,再按
alt+K
,看到的堆栈是另外一个样子了:
p>
地址
堆栈
函数过程
参数
调用来自
结构
0012F3B4 00581775
elementc.005898B0 elementc.00581770
0012F3C4 00583F75
elementc.00581740
elementc.00583F70
0012F400
005A8CF6
elementc.00583ED0
elementc.005A8CF1
0012F410
0057E701
elementc.005A8CD0
elementc.0057E6FC
0012F420 00509E80 elementc.0057E6C0
elementc.00509E7B
0012F424
006C6527
包含
elementc.00509E80
elementc.006C6524
0012F444
006C647C elementc.006C64B0 elementc.006C6477
0012F45C 006C8F0E
包含
elementc.006C647C
elementc.006C8F0B
0012F464
0054A432 elementc.006C8F00 elementc.0054A42D
0012F47C 006C236B
包含
elementc.0054A432
elementc.006C2368
0012F494
006C269B elementc.006C22C0 elementc.006C2696
0012F4E0 006C93AA
elementc.006C2380
elementc.006C93A5
0012F55C
00549BBB
elementc.006C8F50
elementc.00549BB6
四、
如果用
CTRL+F9
跟踪,
很容易发现,
前三个都是在
WS32
系
统进程空间,
所以,
第
4
个,
做了个标记的那里,就是死亡回程
call
p>
了
希望大家多
多实践,注意观察。也许我的这个方法有问题,也请提出来大家讨论
OD
寻找
CALL
希望对新手有用
< br>以
50
打坐和普通攻击的
cal
l
查找为例。
启动
OD
加
载
50
,进入游戏后,和传统方法一样,
bp send
下断,然后等待游戏断一
次,按
F9
直到游戏正常运行(这里等待断一次主要是为了去掉游戏定时与服务器信
息和其
它信息的干扰)
,
然后马上回到
游戏,
按
0
(默认
0
是打坐)
,
游戏被断下,
连续按
4
次
ctrl
+F9
(通常游戏的前
3
层都是信息函
数等东西,
所以直接到第
4
层啦)
p>
,
然后按
F8
,<
/p>
此时按
alt+k
打开堆栈窗口,如下:
调用堆栈
地址
堆栈
函数例程
参数
调用来自
框架
0012F524
004542DB
ElementC.0059E270
ElementC.004542D6
0012F528
0049959B
ElementC.004542C0
ElementC.00499596
0012F538
005410C4
包
含
ElementC.0049959B
ElementC.005410C1
0012F550
00540E87
ElementC.00540ED0
ElementC.00540E82
1
、有很多行,不过我们只需要关系
第一行就可以了,其它的不用管,记录下
0059E270
,如
果已经知道打坐的
call
地址,
p>
一看就知道我们已经找到了,
不过现在我们架设是第一次找不
知道关键
call
的地址,所以把
0059E270
记录下来,继续
ctrl+F9
,
F8
再进入一层,仍然是按
alt+k
,查看堆栈窗口,仍然只记录第一行得到
004542C0,
还是
ctrl+F9,F8,alt+
k
再记录一个
0049959B
,一般
来说游戏的
call
多在
4-6
层中,很少有再深的,而且还有另外的判断方法,
因为单你再使用
p>
ctrl+F9
进入下一层时,出现的
ca
ll
就不是单纯的地址了,而是类似
call
[xxxx+xxx]
这样的形式,那么也就说明走过了,所以记录
3
层就够了。
2
、第一步完成了,此时按
F9
让游戏继续,又
断下来了,不过这个时候不用急着按
ctrl+f9
进入,直接
按一个
alt+k
看看,
调用堆栈
地址
堆栈
函数例程
参数
调用来自
框架
035CFEC8
00568A60
WS2_
ElementC.00568A5A
035CFECC
00000500
Socket = 500
035CFED0
0C622008
Data = 0C622008
035CFED4
0000000D
DataSize = D (13.)
035CFED8
00000000
Flags = 0
035CFEE8
0056DE37
包
含
ElementC.00568A60
ElementC.0056DE34
第一行显示的是
ws2_
,
原来是发送函数,
所以不用再进入了,
看一下
CPU
窗口的标
题,
显示的是
CPU
-
t
线程
0000000xxxx
,
记一下那个
xxxx
的数字,
直接按
F9
运行游戏,
又断下来了,此时看一下
CPU
窗口的标题,
如果
xxxx
数字一样,说明还是发送函数一类的
东西不用进入(你可以都打开堆栈窗口看看验证下)
,继续按
f9
运行游戏,如果游戏断下来
了而且不是发送函数一
类的就都进入看一下,
和上面的一样记录下地址,
最后直到不再
连续
断,
删除断点,回到游戏,
人物已
经进入打坐状态,
一般简单的操作只会有
1
到
2
个需要跟
进的断,而复杂的操
作可能多一些,不过如果你从简单的
call
入手,注意观察,
复杂操作的
call
还可以通过总结再去除掉很多无关的断。<
/p>
3
、
第三步,
好了只有三个地址,
而且都没有参数,
直接调用测试吧,
运气不错第一个
0059E270
就是了。呵呵,没有分析汇编代码找到了打坐的
call
顺便找找取消打坐的
call
吧,仍然
bp send
,然后等游戏断一次
,按
F9
直到游戏正常,然后
进入游戏
,用鼠标在其它地方点一下,游戏断了下来,
4
次
ctrl+f9
后按
f8,alt+k
,直接记录
第一行,
调用堆栈
地址
堆栈
函数例程
参数
调用来自
框架
0F19FD88
00466D4C
ElementC.0059E2B0
ElementC.00466D47
0F19FE2C
00455D8E
ElementC.004668C0
ElementC.00455D89
0F19FE30
0F19FE7C
Arg1 = 0F19FE7C
0F19FE38
005604D9
包
含
ElementC.005604D6
有了经验就不再继续了
,直接测试
0059E2B0
,果然就是取消打坐。
顺便说一下,注意上面的
0F19FE2C
00455D8E
ElementC.00455D89
0F19FE30
0F19FE7C
Arg1 = 0F19FE7C
ElementC.00455D8E
ElementC.004668C0
p>
这两行,如果是有参数的
call
,就是这
样的形态,这里也就是
call
004668c0
含有一个参数。
普通攻击
call
的找法,和上面的类
似,先选择一个怪,然后切换到
OD
,
bp send,
等游戏断一
次,按
F
9
直到恢复,然后按数字
1
(普通攻击
默认在
1
)
,游戏断下,然后同样的方
法,你
可以找到
调用堆栈
地址
堆栈
函数例程
参数
调用来自
框架
0F19FDCC
00475F71
ElementC.0059DC30
ElementC.00475F6C
0F19FDEC
00475B8E
ElementC.00475CE0
ElementC.00475B89
-
-
-
-
-
-
-
-
-
上一篇:七年级下册语文基础知识练习(部编版))
下一篇:汉语方言词汇语法调查表