zoukankan      html  css  js  c++  java
  • 2020网鼎杯 白虎组reverse:hero

    主函数,当bossexist的值不为0时,while循环dround()函数,循环结束输出flag

     outflag()函数的flag值由6段数据拼凑而成

     while循环的dround()函数有三个选择,1随机获取coin硬币,2打龙,3商店由硬币兑换攻击值

    1.随机获取硬币函数:真的很随机,而且一次只有一两个

     2.打龙函数:攻击值(eff)大于1000000打死第一条龙,大于3000000打死第二条龙,大于5000000打死第三条龙,并且出flag。每打死一条龙都会自动解密一段flag

     

     3.商店函数:if判断coin硬币数量够不够,如果够就2个硬币充1点攻击值

     这道题获取flag和我们的输入没有关系,flag的解密很复杂是des,通过解密去算flag不科学,按照思路玩游戏要玩五百万次。

    其实这道题很简单,elf文件远程连接kali动态调试在if充值判断那里把flag寄存器的SF位置0就可以想充多少充多少了

    在if判断这里按tab键切换到汇编界面

     给js跳转F2下一个断点

    将ida文件夹dbgsrv目录下的linux_serverx64文件拷贝到kali,chmod 755 linux_serverx64给文件权限,然后./linux_serverx64运行程序,会自动监听23946端口

    在ida打开debug调试,选择Linux调试

    打开程序的调试设置

    设置如下,写入kali的ip地址,和登录密码,ok开启调试

     程序运行到js跳转那里把SF位置0,就可以成功充入任意攻击值了

     因为bossexist的值非0,所以while循环会继续,这时候选择2进入打龙函数打三次龙自动出flag

    另外,kali连接ida,先ping一下Windows主机看ping得通不,如果ping不同改网络设置,ping通了ida依然连不上kali,则kali关闭防火前,需要下载ufw工具关闭firewalld

  • 相关阅读:
    Wepy 格式化和语法高亮(vscode)
    TypeError: Cannot read property '_wrapper' of undefined
    Vue 自定义事件传参
    Uncaught (in promise) undefined
    微信小程序 获取用户昵称、头像
    微信小程序scroll-view去除滚动条
    微信小程序从子页面退回父页面时的数据传递 wx.navigateBack()
    wx: wx.showModal 回调函数中调用自定义方法
    c#后端 小程序上传图片
    小程序配置,通用域名配置文件
  • 原文地址:https://www.cnblogs.com/blackicelisa/p/12905978.html
Copyright © 2011-2022 走看看