【攻防世界】REVERSE新手练习区 - Hollo,CTF
Hollo,CTF - wp
点开附件发现是exe文件,需要输入正确的flag,才能得到 success!,否则得到 wrong!。
将附件拖入ida中:
F5(Fn+F5)查看伪代码:
分析36-41行,得出要想得到aSuccess,if(!strcmp(&v10, &v13))中的条件需要为真,即 !strcmp(&v10, &v13)1,因为 !01,所以strcmp(&v10, &v13)==0,即v10的长度与v13的长度相等。
另外根据第35行,while( v3 < 17 ),得出 v3的长度必须小于17,才能进入循环。
下面我们来分析 v13,v10和v3:
对于v3:
根据代码第25,33和35行得出v3为计数器,且最大值为16:
对于v13:
v13的值在第15行被给出,strcpy是复制字符串的函数,因此
v13 = 437261636b4d654a757374466f7246756e
对于v10:
第18行用memset函数对v10的值进行了初始化:
并在第32行用strcat进行了字符串的相加,即连接字符串v10与v8并把得到的字符串赋值给v10:
那么v10长度等于v8长度,需要知道v8:
分析v8:
分析上图中的代码段,
根据 if ( !v4 ) break,得知v4不能等于0;
根据sprintf(&v8, asc_408044, v4),得知将v4的值16以进制数的形式输出为v8,那么v8为十六进制数,长度与v4相等。
注意:
sprintf的作用是将一个格式化的字符串输出到一个目的字符串中;
跟进asc_408044得出%x,%x表示将整数转化成小写的十六进制数。
分析v4:
分析上图中的代码段,
得知输入字符串给v9,v9长度不能大于17,最后将v9[v3]的值依次赋给v4,因此v4累计长度为17,因此v8与v10长度均为17,且为十六进制数。
将v13得知转化为ASCII码得到17位的值:CrackMeJustForFun,与v10长度相等。
则 flag = CrackMeJustForFun 。
【攻防世界】REVERSE新手练习区 - Hollo,CTF相关推荐
- 攻防世界 REVERSE 新手区/game
攻防世界 REVERSE 新手区/game 下载得到附件 看题目说一共有8个围成一圈的灯,需要输入1-8个数,输入的数会让相应的数字的灯改变状态(亮或灭),且该灯的前一个灯和后一个灯也会改变状态.输入 ...
- 攻防世界 REVERSE 新手区/maze
攻防世界 REVERSE 新手区/maze 老规矩先查壳,没加壳而且是64位的 用IDA64位打开,找到main函数F5查看伪代码 这是一个迷宫题,必然是有迷宫图在里面,然后走的路径就是输出的flag ...
- 攻防世界 Reverse高手进阶区 2分题 reverse-for-the-holy-grail-350
前言 继续ctf的旅程 攻防世界Reverse高手进阶区的2分题 本篇是reverse-for-the-holy-grail-350的writeup 发现攻防世界的题目分数是动态的 就仅以做题时的分数 ...
- 攻防世界 Reverse高手进阶区 3分题 crackme
前言 继续ctf的旅程 攻防世界Reverse高手进阶区的3分题 本篇是crackme的writeup 攻防世界的题目分数是动态的 就仅以做题时的分数为准了 解题过程 查壳,显示nsPack壳 找了个 ...
- 攻防世界misc新手_[攻防世界]mobile新手练习区easy-apk
[攻防世界]mobile新手练习区easy-apk easy-apk最佳Writeup由129师386旅独立团 • devi1提供 难度系数: 7.0 题目来源: 暂无 题目描述:无 题目场景: 暂无 ...
- [攻防世界]crypto新手练习区Caesar
[攻防世界]crypto新手练习区Caesar Caesar最佳Writeup由Um0 • Umo.提供 难度系数: 1.0 题目来源: poxlove3 题目描述:你成功的解出了来了灯谜,小鱼一脸的 ...
- 攻防世界 MISC新手练习区 刷12道题题所得的思路和方法
title: 攻防世界 MISC新手练习区 date: 22021年8月17日 10点31分 tags: MISC categories: MISC 1.攻防世界 this_is_flag(签到题) ...
- 攻防世界 MISC 新手练习区 writeup 001-006
攻防世界 MISC 新手练习区 题目解答 文章目录 001 this_is_flag 002 pdf 003 如来十三掌 004 give_you_flag 005 stegano 006 坚持60s ...
- 攻防世界 CRYPTO 新手练习区 答题(1-12题解)
序 传送门:https://adworld.xctf.org.cn/task/ 1.base64 题目描述:元宵节灯谜是一种古老的传统民间观灯猜谜的习俗. 因为谜语能启迪智慧又饶有兴趣,灯谜增添节日气 ...
- xctf攻防世界 crypto 新手练习区--write up(持续更新中)
文章目录 base64 Caesar Morse Railfence 不仅仅是Morse easy RSA RSA算法 简介 RSA计算公钥和私钥 混合编码 转轮机加密 回转轮加密 base64 题目 ...
最新文章
- 模糊选择器 js_5个很棒的 React.js 库,值得你亲手试试!
- linux命令详解:md5sum命令
- cad显示驱动程序文件已丢失或损坏_win7系统下打开AutoCAD 2014时显示驱动程序文件.hdi丢失如何解决...
- Leetcode每日一题:1030.matrix-cells-in-distance-order(距离顺序排列矩阵单元格)
- 程序员们,在你当领导前,有些事你得先知道
- python参数检查类型_Python类型检查
- 罗永浩重新定义直播带货
- python苹果版安装包_新手必看。关于Python3——windows安装与运行(详细版)
- 线性不可分的线性支持向量机的原始问题(凸二次规划)详细求解
- Postman设置环境变量
- IT公司面试智力题整理
- html表格宽度设置没效果,html表格宽度设置失效
- 元宇宙将要如何改变每个人的生活方式?
- 汇编语言(王爽第三版)实验大全
- 迟到的2020年终总结
- 磨金石教育分享:43款字体设计工具大集合,超赞!
- 聚苯乙烯微球为成孔模板制备多孔PI/HMSNs复合膜/交联氨基聚苯乙烯微球/羧基聚苯乙烯微球
- MySQL 幻读和不可重复读的区别
- linux command first edition notes lgx0050
- 管窥《平凡的世界》写作特点之细节处理3500字
热门文章
- 全媒舍:基金牌照在企业宣传中所具有的作用大吗
- 手把手教你怎么使用云服务器
- matlab按图像边缘抠图_不会抠图?保姆级抠图教程!手把手教你抠图(一)
- mysql最优库容_一种增加已达到设计库容的尾矿库存储量的方法
- EOS映射的坑——存钱包用户必看
- 签字后被开除_开除 4 名午睡员工,海尔就能追上美的格力了?
- excel - 逻辑表达式 (与,或,非)- 实例介绍(条件显示不同cell)
- 小i机器人与腾讯、商汤等发起成立上海人工智能发展联盟
- es6中两数组按条件穿插混合------------元宵节快乐
- seneca mysql_Package - seneca-mysql-store-ex