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相关推荐

  1. CTF题库实验吧分道扬镳 (注意进入正确的流程,用最短的步骤走完迷宫。)

    用 IDA 打开 od打开发现不会调试 白学了 找到这两个关键函数 反编译得到 代码 char *sub_401020() {char *result; // eaxchar *v1; // [esp ...

  2. 18.10.9 实验吧----分道扬镳

    都说大晚上做题有助于睡眠 提示:注意进入正确的流程,用最短的步骤走完迷宫. 我就不信这不是迷宫题---- 是个比较和善的exe,直接先找在IDA里找迷宫,可以看见的是这个迷宫貌似不是一个平面地图,我只 ...

  3. 【实验吧】Just Click

    拿到答案需要正确地点击按钮 格式:simCTF{ }解题链接: http://ctf5.shiyanbar.com/re/rev4.exe 由于最近在学数据库是c#编程,发现是c#,于是用.net r ...

  4. 广州大学计算机视觉实验一:图像处理入门

    相关资料 广州大学计算机视觉实验一:图像处理入门 广州大学计算机视觉实验二:摄像机几何 广州大学计算机视觉实验三:图像滤波 广州大学计算机视觉实验四:图像分割 广州大学计算机视觉实验五:简易数字识别 ...

  5. Click软件路由器实验

    Click路由器的官方网站 目标:构建一台软件路由器 测试1:实现发包与接收 第一步:安装VMware,在VMware里安装两个Ubuntu虚拟机A和B(可以利用克隆的方式减少空间占用),按照下图为主 ...

  6. 实验吧(逆向):分道扬镳

    题目: 注意进入正确的流程,用最短的步骤走完迷宫. 解题链接: http://ctf5.shiyanbar.com/423/re/rev2.exe 过程 IDA打开: 顺着去找main函数: int ...

  7. 实验吧CTF逆向题目Just Click题解

    题目如下: 运行程序: 结合第一张题目提示已经能够猜到 是按一定的顺序点击1,2,3,4四个按钮就好 先来查下壳 这是个什么鬼 没见过的壳 我再试试 发现是.NET的程序 那就上这个 随便点开几个看看 ...

  8. 实验吧 writeup

    实验吧 WP 有几个题没做完,正在不断更新中,欢迎提问,如果 markdown 格式有错误也请呼我 WEB 认真一点! 没做出来~~~~~~~~~~~~~~~~~ 过滤了union sleep and ...

  9. Windows 8 动手实验系列教程 实验8:Windows应用商店API

    动手实验 实验 8: Windows应用商店API 2012年9月 简介 编写Windows应用商店应用最令人瞩目的理由之一是您可以方便地将它们发布到Windows应用商店.考虑到世界范围内目前有超过 ...

最新文章

  1. hihoCoder #1457 : 后缀自动机四·重复旋律7
  2. 【C语言】使用指针得到数组的最后一个数
  3. 白嫖GPU!Kaggle大神带你打比赛!
  4. 【Java从0到架构师】MyBatis - 缓存_构造方法
  5. PsExec:一个非常实用的【远程运行】工具
  6. ADO BUG之'无法为更新定位行....' 解决之道
  7. java如何保证redis设置过期时间的原子性_【07期】Redis中是如何实现分布式锁的?...
  8. 软件测试 - 用例篇
  9. 微信推广二维码接口使用总结
  10. 云计算技术与应用赛项赛题库
  11. 10个实用的Excel技巧
  12. ClickOnce 通过URL传递参数
  13. 21天设计Arm芯片|移知公开课
  14. 欧冠超级计算机,超级计算机预测欧冠决赛:红军65%概率夺冠 萨拉赫最可能进球...
  15. Leetcode(4)寻找两个有序数组的中位数
  16. 2017 移动端 iOS 年终工作总结-纯干货请自备酒水
  17. ElasticSearch | 01 使用场景和概要介绍
  18. 免费录屏软件Captura下载安装
  19. OSPF基础实验配置
  20. Cross-Site Scripting XSS 跨站攻击全攻略

热门文章

  1. recurdyn履带车辆动力学仿真问题
  2. 基于matlab的磁悬浮控制系统,基于MATLAB的磁悬浮控制系统设计课件.ppt
  3. gamechannel.exe
  4. linux命令如何查询某个线程,linux如何查看线程信息命令是什么
  5. 用LaTeX写论文时如何加资助信息
  6. rman备份产生800G的审计日志(select action from gv$session )
  7. 魅族flashfire_[FIRE]魅族魅蓝Note2公开版 解锁BL 刷入奇兔中文recovery教程
  8. ftk学习记(首篇)
  9. 基于STM32的简易示波器的UCOS II嵌入式实时操作系统实现
  10. 旧版Chrome浏览器的安装和使用——chrome63