Microcorruption 第一关 Tutorial
创始人
2024-02-24 07:46:31
0

Microcorruptioin 第一关 Tutorial

首先进入Tutorial这一关,这是闯关页面。

在这里插入图片描述

在主函数设置断点,控制台输入"break main"或"b main"或手动点击反汇编栏中main函数的第一行设置断点。

在这里插入图片描述

该闯关游戏主要是破解密码,查看主函数中的重要步骤,发现check_password函数是关键点,在check_password函数中设置断点。

在这里插入图片描述

接着控制台输入"c"继续执行程序,此时程序弹出输入框要求输入密码,这里我们先输入"test"进行测试,点击"send"。

在这里插入图片描述

接着我们看到程序进入了一个陌生的函数,我们在控制台逐步输入"f"推出当前函数,直到程序跳回main函数。

在这里插入图片描述

在这里插入图片描述

输入"s"或"step"逐步执行指令,进入check_password函数,函数的第一条指令mov.b @r15,r14的含义是将寄存器r15的值逐个byte传送到r14中,查看r15寄存器的内容,发现是地址439c,查看内存中439c的内容,是十六进制的"7465 7374",即我们输入的"test"的ASCII码值,我们输入的密码存储在了r15中。

在这里插入图片描述

继续逐步执行指令,inc r15指令令r15的值加1,同样inc r12指令令r12的值加1,接着判断r14的值是否为0,不为0则跳转到地址中,即返回check_password函数开头。

在这里插入图片描述

执行jnz指令后返回check_password函数开头,继续刚才的步骤。

在这里插入图片描述

当程序不再返回check_password函数开头时,此时r14的值为0,r12的值为5,代表r12记录了我们输入的密码的位数(其中包括一个’\0’),接着我们分析程序,将r12的值和9比较,如果相等的话则跳转到4498,令r15等于0;否则程序继续向下执行4494,clr r15的含义是给r15清零。

在这里插入图片描述

我们继续向下执行,程序返回到了主函数,在主函数中判断r15的值是否为0,如果为0则跳转到输入密码不合法的指令,否则输出密码正确,说明check_password函数的返回值直接影响密码是否正确,要令密码正确,则r15的值要为1,则r12的值要等于9,于是我们可以判断正确的密码有8位。

在这里插入图片描述

输入"c"继续运行程序,程序运行结束,此时I/O控制台输出密码错误信息,说明"test"不是正确密码。

在这里插入图片描述

在控制台输入"unbreak main"和"unbreak check_password"取消刚才设置的断点,或手动取消,我们输入"reset"重启程序,这次我们输入正确的密码测试。

在这里插入图片描述

我们任意输入8位密码"12345678"进行测试,大门成功打开,密码正确!

在这里插入图片描述

在这里插入图片描述

我们输入另外一个8位密码"password"测试,同样成功打开大门!

在这里插入图片描述

在这里插入图片描述

最后我们在控制台输入"solve",输入8位密码,成功通关!

在这里插入图片描述

在这里插入图片描述

相关内容

热门资讯

监控摄像头接入GB28181平... 流程简介将监控摄像头的视频在网站和APP中直播,要解决的几个问题是:1&...
Windows10添加群晖磁盘... 在使用群晖NAS时,我们需要通过本地映射的方式把NAS映射成本地的一块磁盘使用。 通过...
protocol buffer... 目录 目录 什么是protocol buffer 1.protobuf 1.1安装  1.2使用...
Fluent中创建监测点 1 概述某些仿真问题,需要创建监测点,用于获取空间定点的数据࿰...
educoder数据结构与算法...                                                   ...
MySQL下载和安装(Wind... 前言:刚换了一台电脑,里面所有东西都需要重新配置,习惯了所...
MFC文件操作  MFC提供了一个文件操作的基类CFile,这个类提供了一个没有缓存的二进制格式的磁盘...
在Word、WPS中插入AxM... 引言 我最近需要写一些文章,在排版时发现AxMath插入的公式竟然会导致行间距异常&#...
有效的括号 一、题目 给定一个只包括 '(',')','{','}'...
【Ctfer训练计划】——(三... 作者名:Demo不是emo  主页面链接:主页传送门 创作初心ÿ...