逆向工程__某游戏基址查找过程

本文通过实际案例展示了如何使用CE和OD工具逐步定位并找到游戏内存中的基址,包括解析寄存器值、跟踪指令流程及计算偏移量等关键步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

某游戏基址查找过程
     今天闲来无事,好久没有逆软件了,本来用CE想找个基址来写个外挂玩玩,结果发现这个是一个数组,而且跳跃次数也比较多,较为麻烦,没办法,只有祭出我的大杀器OD来办它。过程如下:

//------------------------------CE里面看到的数据:---------------------------//
EAX=0000005A
EBX=00000008
ECX=7383B178
EDX=FFFFFFFB
ESI=7383B2CC
EDI=0000005A
EBP=7383AB24
ESP=0018F66C
EIP=0043FDCC

可能的基址指针 =7383B2CC

0043FDBC - jl 0043FEA1
0043FDC2 - cmp ebx,07
0043FDC5 - mov [esi+ebx*4+000000CC],edi
0043FDCC - jne 0043FE1C
0043FDCE - push 00
//--------------------------------------------------------------------------------------//
//------------------------------------从这里开始用OD了----------------------------------------//
1,0043FDAE    8DB1 54010000   lea esi,dword ptr ds:[ecx+0x154]
开始找esi,目前的偏移是4*ebx+0xCC = 0xEC

2,发现esi被[ecx + 0x154]赋值,接着找exc的值,此时的偏移是0x240

3,0043FED3    8BCE            mov ecx,esi
ecx是被esi赋值的,接着找上面的esi


4,0043FEC6    8BF1            mov esi,ecx
回过头esi,又是被ecx赋值的。。。真烦人,继续找ecx,fuck,发现上面没有push ecx,明显是thiscall的调用约定,ecx在这个子函数
的外面。


5.0047A360    8BCE            mov ecx,esi
疯了。。。ecx又被esi赋值了。。。


6.0047A297    8DB5 54060000   lea esi,dword ptr ss:[ebp+0x654]
esi是被[ebp+0x654]的值赋值的,所以接下来是找ebp,偏移是ebp+894

7.0047A26B    8D2C88          lea ebp,dword ptr ds:[eax+ecx*4]
发现是ebp是由[eax+ecx*4]赋值的,在这里看一下ecx的值,再找eax的值,发现eax是上面call的返回值,故进入函数体
ecx = 84F,故此时的偏移是29D0

8.004406CA    A1 28148E00     mov eax,dword ptr ds:[0x8E1428]
进入函数体里面后,终于发现了基址0x8E1428 + 0x29D0

最后归纳一下整个基址的详细变化过程:基址:0x8E1428 + 0x84F * 4 + 0x654 + 0x154 + 4 * 0x8 + 0xCC 根据规律找各人物之间的关系吧,肯定是0*XXX,1*XXX.

最后验证,多次重启游戏后,发现血量是正常能拿到的。
图片
本课程主要以口袋西游为例,学习一个网络游戏是怎么通过游戏服务器与玩家客户端进行通信交互的,通过OD,CE等工具对游戏进行调试,找到各个数据基址(例如角色基址,背包基址等),找出游戏里面的功能CALL(例如寻路CALL,打坐CALL等)及参数分析,并且编码实现功能。本课程可以带领你游戏逆向入门可以学会 CE,OD,找游戏基址,功能CALL等实现变态功能可以更深入的理解从高级语言到汇编语言的一个对应过程可以学会 逆向软件  外挂与反外挂 破解防破解  游戏安全的基础知识可以为以后的及逆向高级课程 打下良好的基础可以自己分析游戏数据,用C语言实现游戏外挂功能等重点:  本套课程的重点就是带领大家分析游戏数据,毫不客气的说,各学完此套课程对分析游戏数据这块会有一个质的飞跃。课程目录  01.课程简介及功能演示  02.CE找人物基址及人物属性偏移  03.OD找人物基址及人物属性偏移  04.创建MFC DLL项目  05.代码实现输出人物信息  06.发包函数概述  07.怎么看待重写的发包函数  08.普通发包与线程发包  09.找打坐CALL及参数分析  10.代码实现打坐CALL  11.喊话CALL及参数分析  12.代码实现喊话CALL  13.找寻路CALL及参数分析  14.代码编写寻路CALL  15.穿装备CALL及参数分析  16.代码实现穿装备CALL  17.NPC对话CALL  18.代码实现NPC对话CALL  19.唤出宠物  20.宠物合体  21.收回宠物  22.取下宠物
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值