当前位置: 首页 > news >正文

re题(30)BUUCTF-[HDCTF2019]Maze

BUUCTF在线评测 (buuoj.cn)

查一下壳,32位upx壳

脱完壳放到ida,shift+F12看一下字符串,是个迷宫,maze(迷宫)

这里有一个经典的花指令 (导致找不到main函数)

下方有个奇怪的jnz指令,它跳转到了下一行,相当于没跳

我们可以发现 call的这个地址根本不存在,这里两种方法

第一种用ollydbg nop掉

 

找到这条call指令对应的地址,是0040:102E这个位置 

由于 0040102C执行了jump 所以也要跟着一起patch掉 ctrl+E

这个call指令,不能全部nop,因为后面那个东西可能是有效代码
修改为 90(nop)

 

选择复制到可执行文件(所有修改) 然后保存文件
然后再IDA打开
花指令就被去除了

第二种是ida nop掉

这个call指令,不能全部nop,因为后面那个东西可能是有效代码(我先全部nop掉了没法f5)。

(注:nop40102E是不要全部nop,防止关键信息也被nop掉,先用d键转化为字节数据,在一个一个试,先nop第一个,在nop前两个。。。。)

按d将其先转换为字节数据。

 

在花指令的链接中,那篇博主总结了花指令的常见情况,知道了db 0E8h是添加花指令,继续nop掉

nop掉之后IDA自动的将后面的数据转换为代码数据

此时数据地址是红色的,仍然没法f5反汇编,将关键代码全部选中,按p键将其声明为函数
然后就可以F5伪代码了 

  1. flag的长度为14,分析代码可知:开始dword_408078=7,40807c=0,坐标是(7,0),然后要让dword_408078=5,40807c=-4,意思是结束的位置是(5,-4),然后w表示上,s表示下,a表示左,d表示右
  2. 这是一道迷宫题,先打印一下字符

*******+**
******* **
****    **
**   *****
** **F****
**    ****
**********

flag{ssaaasaassdddw}

 

http://www.lryc.cn/news/440228.html

相关文章:

  • day36+day37 0-1背包
  • PostMan使用变量
  • 多线程同步
  • 第159天:安全开发-Python-协议库爆破FTPSSHRedisSMTPMYSQL等
  • 软件测试 | APP测试 —— Appium 的环境搭建及工具安装教程
  • 计算机人工智能前沿进展-大语言模型方向-2024-09-13
  • 衡石分析平台使用手册-替换衡石minio
  • 怎么将几个pdf合成为一个?把几个PDF合并成为一个的8种方法
  • 明明没有程序占用端口,但是启动程序却提示端口无法使用,项目也启动失败
  • ClickHouse的安装配置+DBeaver远程连接
  • UVM仿真的运行(四)—— objection 机制
  • 【ShuQiHere】算法分析:揭开效率与复杂度的神秘面纱
  • 记忆化搜索专题——算法简介力扣实战应用
  • 【Java】【力扣】83.删除排序链表中的重复元素
  • vue3项目实现全局国际化
  • Oracle 19c异常恢复—ORA-01209/ORA-65088---惜分飞
  • 【Webpack--000】了解Webpack
  • 开源 AI 智能名片链动 2+1 模式 S2B2C 商城小程序与社交电商的崛起
  • 在线IP代理检测:保护您的网络安全
  • 【算法】BFS—解开密码锁的最少次数
  • 非守护线程会阻止JVM的终止吗
  • Grafana面板-linux主机详情(使用标签过滤主机监控)
  • MYSQL数据库基础篇——DDL
  • Springboot 集成 Swing
  • 枚举算法总结
  • 编译 Android 11源码
  • 时间复杂度计算 递归(solve2 后续)
  • Nginx:高性能Web服务器与反向代理的深度剖析
  • JavaSE - 面向对象编程03
  • 变电站缺陷数据集8307张,带xml标注和txt标注,可以直接用于yolo训练