其他分享
首页 > 其他分享> > Bugku逆向-游戏过关

Bugku逆向-游戏过关

作者:互联网

Bugku游戏过关

od工具推荐用吾爱的:https://www.52pojie.cn/thread-14986-1-1.html

在这里插入图片描述



打开后是一个开灯游戏,总共八个灯,每一层用户可以根据情况按一个1-8中的任意一个灯,如果按的灯正确则进入下一层,如果不正确则游戏重新开始

在这里插入图片描述



直接扔进od

在这里插入图片描述

在这里插入图片描述



主窗口内任意处右键选择【中文搜索引擎】选择第一个【搜索ASCII】

在这里插入图片描述



搜索完成后找到准备输出flag的一行跟进去查看

在这里插入图片描述

在这里插入图片描述




找关键点,edp栈底指针,esp栈顶指针,此处封存了一个函数,也就是说最终输出flag的时候就是来调用这个函数

在这里插入图片描述



我们单击到函数的开始,也就是栈底指针edp处,地址是0099E940(后面会用到这个函数的开始地址),在中间部分的【跳转来自xxxx】部位点击【转到xxxx】

在这里插入图片描述




转进去之后继续在中间跳转到CALL

在这里插入图片描述



进入后观察相关指令,发现有多条jnz指令指向了0099F671地址,jnz就是jump if not zero 运算结果不为零则转移,也就是游戏按下不同的灯之后要跳转的地方

在这里插入图片描述



既然我们按下灯就会跳转到这里做检验,那因此我们只要把这里的指令替换成直接输出flag的函数的开始指令,那游戏在随便按下灯之后就能直接跳转到flag函数出结果了,且已知我们前面看到的flag地址为0099E940,开始替换,在指定地址处右击选择汇编

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述



随便按一个数字出flag

在这里插入图片描述

标签:逆向,Bugku,过关,游戏,地址,flag,指令,跳转,函数
来源: https://blog.csdn.net/Deeeelete/article/details/110095485