最新消息: USBMI致力于为网友们分享Windows、安卓、IOS等主流手机系统相关的资讯以及评测、同时提供相关教程、应用、软件下载等服务。

寻找网络游戏中CALL的教程

IT圈 admin 25浏览 0评论

2024年4月15日发(作者:巢辰龙)

寻找网络游戏中CALL的教程

寻找网络游戏中CALL的教程

说一说一个简单的找call原理

其实游戏中的call是有一定规律的,这个规律是什么?

1、调用之前,必定有call名入栈,什么,不知道如何看堆栈有哪些内容。很简单啊,

按alt+k就看到了

2、系统进程空间,一般都可以忽略,那么,哪些是系统进程呢,我自己也分不太清,

但是NTDLL,USER32,WS_S32等一般都是系统进程空间,在od的状态栏上就可以

分辨出来。

举个例子:ZX中找死亡回程call

一、在弄死小号后,先下了BPSEND指令,od中断下来,按ALT+K,看到的堆栈情

况是这样的:

地址堆栈函数过程参数调用来自结构

029FFEC800572860WS2_ementc.0057285A

029FFECC000006BCSocket=6BC

029FFED006D1F2A8Data=06D1F2A8

029FFED400000003DataSize=3

029FFED800000000Flags=0

029FFEE800578BE7包含elementc.00572860elementc.00578BE4

029FFEF000578827elementc.00578BB0elementc.00578822

029FFF38005785DEelementc.00578640elementc.005785D9

029FFF4800577128包含elementc.005785DEelementc.00577125

二、然后F9让游戏正常,再回到游戏中,按下“回城”

三、od中断下来,再按alt+K,看到的堆栈是另外一个样子了:

地址堆栈函数过程参数调用来自结构

0012F3B400581775elementc.005898B0elementc.00581770

0012F3C400583F75elementc.00581740elementc.00583F70

0012F400005A8CF6elementc.00583ED0elementc.005A8CF1

0012F4100057E701elementc.005A8CD0elementc.0057E6FC

0012F42000509E80elementc.0057E6C0elementc.00509E7B

0012F424006C6527包含elementc.00509E80elementc.006C6524

0012F444006C647Celementc.006C64B0elementc.006C6477

0012F45C006C8F0E包含elementc.006C647Celementc.006C8F0B

0012F4640054A432elementc.006C8F00elementc.0054A42D

0012F47C006C236B包含elementc.0054A432elementc.006C2368

0012F494006C269Belementc.006C22C0elementc.006C2696

0012F4E0006C93AAelementc.006C2380elementc.006C93A5

0012F55C00549BBBelementc.006C8F50elementc.00549BB6

四、如果用CTRL+F9跟踪,很容易发现,前三个都是在WS32系统进程空间,所以,

第4个,做了个标记的那里,就是死亡回程call了

希望大家多多实践,注意观察。也许我的这个方法有问题,也请提出来大家讨论

OD寻找CALL希望对新手有用

以50打坐和普通攻击的call查找为例。

启动OD加载50,进入游戏后,和传统方法一样,bpsend下断,然后等待游戏断一

次,按F9直到游戏正常运行(这里等待断一次主要是为了去掉游戏定时与服务器信息

和其它信息的干扰),然后马上回到游戏,按0(默认0是打坐),游戏被断下,连续按

4次ctrl+F9(通常游戏的前3层都是信息函数等东西,所以直接到第4层啦),

然后按F8,此时按alt+k打开堆栈窗口,如下:

调用堆栈

地址堆栈

框架

0012F524

ElementC.004542D6

0012F528

ElementC.00499596

0012F538

ElementC.005410C1

0012F550

ElementC.00540E82

函数例程参数调用来自

ElementC.0059E270

ElementC.004542C0

包含ElementC.0049959B

ElementC.00540ED0

004542DB

0049959B

005410C4

00540E87

1、有很多行,不过我们只需要关系第一行就可以了,其它的不用管,记录下0059E270,

如果已经知道打坐的call地址,一看就知道我们已经找到了,不过现在我们架设是第一

次找不知道关键call的地址,所以把0059E270记录下来,继续ctrl+F9,F8再进入

一层,仍然是按alt+k,查看堆栈窗口,仍然只记录第一行得到004542C0,还是

ctrl+F9,F8,alt+k再记录一个0049959B,一般来说游戏的call多在4-6层中,很少

有再深的,而且还有另外的判断方法,因为单你再使用ctrl+F9进入下一层时,出现的

call就不是单纯的地址了,而是类似call[xxxx+xxx]这样的形式,那么也就说明走过

了,所以记录3层就够了。

2、第一步完成了,此时按F9让游戏继续,又断下来了,不过这个时候不用急着按ctrl+f9

进入,直接按一个alt+k看看,

2024年4月15日发(作者:巢辰龙)

寻找网络游戏中CALL的教程

寻找网络游戏中CALL的教程

说一说一个简单的找call原理

其实游戏中的call是有一定规律的,这个规律是什么?

1、调用之前,必定有call名入栈,什么,不知道如何看堆栈有哪些内容。很简单啊,

按alt+k就看到了

2、系统进程空间,一般都可以忽略,那么,哪些是系统进程呢,我自己也分不太清,

但是NTDLL,USER32,WS_S32等一般都是系统进程空间,在od的状态栏上就可以

分辨出来。

举个例子:ZX中找死亡回程call

一、在弄死小号后,先下了BPSEND指令,od中断下来,按ALT+K,看到的堆栈情

况是这样的:

地址堆栈函数过程参数调用来自结构

029FFEC800572860WS2_ementc.0057285A

029FFECC000006BCSocket=6BC

029FFED006D1F2A8Data=06D1F2A8

029FFED400000003DataSize=3

029FFED800000000Flags=0

029FFEE800578BE7包含elementc.00572860elementc.00578BE4

029FFEF000578827elementc.00578BB0elementc.00578822

029FFF38005785DEelementc.00578640elementc.005785D9

029FFF4800577128包含elementc.005785DEelementc.00577125

二、然后F9让游戏正常,再回到游戏中,按下“回城”

三、od中断下来,再按alt+K,看到的堆栈是另外一个样子了:

地址堆栈函数过程参数调用来自结构

0012F3B400581775elementc.005898B0elementc.00581770

0012F3C400583F75elementc.00581740elementc.00583F70

0012F400005A8CF6elementc.00583ED0elementc.005A8CF1

0012F4100057E701elementc.005A8CD0elementc.0057E6FC

0012F42000509E80elementc.0057E6C0elementc.00509E7B

0012F424006C6527包含elementc.00509E80elementc.006C6524

0012F444006C647Celementc.006C64B0elementc.006C6477

0012F45C006C8F0E包含elementc.006C647Celementc.006C8F0B

0012F4640054A432elementc.006C8F00elementc.0054A42D

0012F47C006C236B包含elementc.0054A432elementc.006C2368

0012F494006C269Belementc.006C22C0elementc.006C2696

0012F4E0006C93AAelementc.006C2380elementc.006C93A5

0012F55C00549BBBelementc.006C8F50elementc.00549BB6

四、如果用CTRL+F9跟踪,很容易发现,前三个都是在WS32系统进程空间,所以,

第4个,做了个标记的那里,就是死亡回程call了

希望大家多多实践,注意观察。也许我的这个方法有问题,也请提出来大家讨论

OD寻找CALL希望对新手有用

以50打坐和普通攻击的call查找为例。

启动OD加载50,进入游戏后,和传统方法一样,bpsend下断,然后等待游戏断一

次,按F9直到游戏正常运行(这里等待断一次主要是为了去掉游戏定时与服务器信息

和其它信息的干扰),然后马上回到游戏,按0(默认0是打坐),游戏被断下,连续按

4次ctrl+F9(通常游戏的前3层都是信息函数等东西,所以直接到第4层啦),

然后按F8,此时按alt+k打开堆栈窗口,如下:

调用堆栈

地址堆栈

框架

0012F524

ElementC.004542D6

0012F528

ElementC.00499596

0012F538

ElementC.005410C1

0012F550

ElementC.00540E82

函数例程参数调用来自

ElementC.0059E270

ElementC.004542C0

包含ElementC.0049959B

ElementC.00540ED0

004542DB

0049959B

005410C4

00540E87

1、有很多行,不过我们只需要关系第一行就可以了,其它的不用管,记录下0059E270,

如果已经知道打坐的call地址,一看就知道我们已经找到了,不过现在我们架设是第一

次找不知道关键call的地址,所以把0059E270记录下来,继续ctrl+F9,F8再进入

一层,仍然是按alt+k,查看堆栈窗口,仍然只记录第一行得到004542C0,还是

ctrl+F9,F8,alt+k再记录一个0049959B,一般来说游戏的call多在4-6层中,很少

有再深的,而且还有另外的判断方法,因为单你再使用ctrl+F9进入下一层时,出现的

call就不是单纯的地址了,而是类似call[xxxx+xxx]这样的形式,那么也就说明走过

了,所以记录3层就够了。

2、第一步完成了,此时按F9让游戏继续,又断下来了,不过这个时候不用急着按ctrl+f9

进入,直接按一个alt+k看看,

发布评论

评论列表 (0)

  1. 暂无评论