Bugku逆向-游戏过关

Bugku游戏过关

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

在这里插入图片描述



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

在这里插入图片描述



直接扔进od

在这里插入图片描述

在这里插入图片描述



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

在这里插入图片描述



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

在这里插入图片描述

在这里插入图片描述




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

在这里插入图片描述



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

在这里插入图片描述




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

在这里插入图片描述



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

在这里插入图片描述



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

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



随便按一个数字出flag

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Deeeelete

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值