RE-实验吧分道扬镳/Just Click
Alikas-0x07
题目:
实验吧分道扬镳
实验吧Just Click
分道扬镳:
file rev2.exe
rev2.exe: PE32 executable (console) Intel 80386, for MS Windows
拖进IDA看一下。
核心代码及分析如下:
v3 = 0;memset(&v4, 0, 0x74u);v5 = 0;v6 = 0;strcpy(v2, "********* * ** * ** ** * ** ** * #* ** **** ** *********");v1 = &v2[9];//这里我修改了v2的类型,char v2 -> char v2[65],便于理解printf("Please input your key:\n");gets(&v3);if ( strlen(&v3) != 22 ) // key长度为22{printf("Sorry you are wrong!\n");system("pause");exit(1);}v9 = 0;do{v8 = *(&v3 + v9);if ( v8 != 'k' && v8 != 'j' && v8 != 'h' && v8 != 'l' )// 以照迷宫图,这个就应该是上下左右的意思{printf("Sorry you are wrong!\n");system("pause");exit(2);}v7 = *(&v3 + v9);switch ( v7 ){case 'h': if ( --v1 < v2 || v1 > &v2[64] || (result = (char *)*v1, result == (char *)'*') )// 后退一步,判断越界 or 撞墙{printf("Sorry you are wrong!\n");system("pause");exit(3);}if ( *v1 == '#' ) // #应该是出口,*应该是墙{LABEL_41:printf("Good!\n");system("pause");exit(0);}break;case 'j':v1 += 8; // 前进八步if ( v1 < v2 || v1 > &v2[64] || *v1 == '*' )//越界 or 撞墙{printf("Sorry you are wrong!\n");system("pause");exit(3);}result = (char *)*v1;if ( result == '#' )goto LABEL_41;break;case 'k':v1 -= 8; // 后退八步if ( v1 < v2 || v1 > &v2[64] || *v1 == '*' )//越界 or 撞墙{printf("Sorry you are wrong!\n");system("pause");exit(3);}result = v1;if ( *v1 == 35 )goto LABEL_41;break;default:if ( ++v1 < v2 || v1 > &v2[64] || *v1 == 42 )// 前进一步,再判断撞墙 or 越界否{printf("Sorry you are wrong!\n");system("pause");exit(4);}result = v1;if ( *v1 == '#' )goto LABEL_41;break;}++v9;}while ( v9 < 25 );return result;
函数说明:strcpy是一种C语言的标准库函数,strcpy把含有’\0’结束符的字符串复制到另一个地址空间,返回值的类型为char。*
分析代码后,这里就两种方法:
第一种遍历,求出所有可能性来求出最优解,但既费时又费力。
故我采取了第二种方法。
由于题目strcpy(v2, "********* * ** * ** ** * ** ** * #* ** **** ** *********");
已经将迷宫的大致情况给了我们,那我们直接手动还原这个8*8的迷宫即可。
********
* * *
* * ** *
* * ** *
* * #* *
* **** *
* *
********
而”j
前进八步“可理解为向前,”k
后退八步“理解为向后,”l
前进一步“为向右,”h
后退一步“为向左
目测解题法:key:jjjjjlllllkkkkkhhhjjjl
Just Click:
题目要求:拿到答案需要正确地点击按钮
拿到题后我瞎按了一下,发现,只能按9下,9下后程序会退出。
File一下:
file rev4.exe
rev4.exe: PE32 executable (GUI) Intel 80386 Mono/.Net assembly, for MS Windows
.Net文件反编译,那就用dnSpy反编译一下咯!
然后就看到这个…
照着按一下…
flag就出来了。
总结:这两道题都不是很难。知道方法就很简单。
迷宫一开始我就想到直接还原迷宫样子,结果被我猜对了。
而click则是我第一次遇到反编译.Net文件,故一开始在IDA里懵逼了好久。后来才意识到这应该是.Net文件,才去找反编译工具…tcl,学到了!
RE-实验吧分道扬镳/Just Click相关推荐
- CTF题库实验吧分道扬镳 (注意进入正确的流程,用最短的步骤走完迷宫。)
用 IDA 打开 od打开发现不会调试 白学了 找到这两个关键函数 反编译得到 代码 char *sub_401020() {char *result; // eaxchar *v1; // [esp ...
- 18.10.9 实验吧----分道扬镳
都说大晚上做题有助于睡眠 提示:注意进入正确的流程,用最短的步骤走完迷宫. 我就不信这不是迷宫题---- 是个比较和善的exe,直接先找在IDA里找迷宫,可以看见的是这个迷宫貌似不是一个平面地图,我只 ...
- 【实验吧】Just Click
拿到答案需要正确地点击按钮 格式:simCTF{ }解题链接: http://ctf5.shiyanbar.com/re/rev4.exe 由于最近在学数据库是c#编程,发现是c#,于是用.net r ...
- 广州大学计算机视觉实验一:图像处理入门
相关资料 广州大学计算机视觉实验一:图像处理入门 广州大学计算机视觉实验二:摄像机几何 广州大学计算机视觉实验三:图像滤波 广州大学计算机视觉实验四:图像分割 广州大学计算机视觉实验五:简易数字识别 ...
- Click软件路由器实验
Click路由器的官方网站 目标:构建一台软件路由器 测试1:实现发包与接收 第一步:安装VMware,在VMware里安装两个Ubuntu虚拟机A和B(可以利用克隆的方式减少空间占用),按照下图为主 ...
- 实验吧(逆向):分道扬镳
题目: 注意进入正确的流程,用最短的步骤走完迷宫. 解题链接: http://ctf5.shiyanbar.com/423/re/rev2.exe 过程 IDA打开: 顺着去找main函数: int ...
- 实验吧CTF逆向题目Just Click题解
题目如下: 运行程序: 结合第一张题目提示已经能够猜到 是按一定的顺序点击1,2,3,4四个按钮就好 先来查下壳 这是个什么鬼 没见过的壳 我再试试 发现是.NET的程序 那就上这个 随便点开几个看看 ...
- 实验吧 writeup
实验吧 WP 有几个题没做完,正在不断更新中,欢迎提问,如果 markdown 格式有错误也请呼我 WEB 认真一点! 没做出来~~~~~~~~~~~~~~~~~ 过滤了union sleep and ...
- Windows 8 动手实验系列教程 实验8:Windows应用商店API
动手实验 实验 8: Windows应用商店API 2012年9月 简介 编写Windows应用商店应用最令人瞩目的理由之一是您可以方便地将它们发布到Windows应用商店.考虑到世界范围内目前有超过 ...
最新文章
- hihoCoder #1457 : 后缀自动机四·重复旋律7
- 【C语言】使用指针得到数组的最后一个数
- 白嫖GPU!Kaggle大神带你打比赛!
- 【Java从0到架构师】MyBatis - 缓存_构造方法
- PsExec:一个非常实用的【远程运行】工具
- ADO BUG之'无法为更新定位行....' 解决之道
- java如何保证redis设置过期时间的原子性_【07期】Redis中是如何实现分布式锁的?...
- 软件测试 - 用例篇
- 微信推广二维码接口使用总结
- 云计算技术与应用赛项赛题库
- 10个实用的Excel技巧
- ClickOnce 通过URL传递参数
- 21天设计Arm芯片|移知公开课
- 欧冠超级计算机,超级计算机预测欧冠决赛:红军65%概率夺冠 萨拉赫最可能进球...
- Leetcode(4)寻找两个有序数组的中位数
- 2017 移动端 iOS 年终工作总结-纯干货请自备酒水
- ElasticSearch | 01 使用场景和概要介绍
- 免费录屏软件Captura下载安装
- OSPF基础实验配置
- Cross-Site Scripting XSS 跨站攻击全攻略
热门文章
- recurdyn履带车辆动力学仿真问题
- 基于matlab的磁悬浮控制系统,基于MATLAB的磁悬浮控制系统设计课件.ppt
- gamechannel.exe
- linux命令如何查询某个线程,linux如何查看线程信息命令是什么
- 用LaTeX写论文时如何加资助信息
- rman备份产生800G的审计日志(select action from gv$session )
- 魅族flashfire_[FIRE]魅族魅蓝Note2公开版 解锁BL 刷入奇兔中文recovery教程
- ftk学习记(首篇)
- 基于STM32的简易示波器的UCOS II嵌入式实时操作系统实现
- 旧版Chrome浏览器的安装和使用——chrome63