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

  1. 攻防世界 REVERSE 新手区/game

    攻防世界 REVERSE 新手区/game 下载得到附件 看题目说一共有8个围成一圈的灯,需要输入1-8个数,输入的数会让相应的数字的灯改变状态(亮或灭),且该灯的前一个灯和后一个灯也会改变状态.输入 ...

  2. 攻防世界 REVERSE 新手区/maze

    攻防世界 REVERSE 新手区/maze 老规矩先查壳,没加壳而且是64位的 用IDA64位打开,找到main函数F5查看伪代码 这是一个迷宫题,必然是有迷宫图在里面,然后走的路径就是输出的flag ...

  3. 攻防世界 Reverse高手进阶区 2分题 reverse-for-the-holy-grail-350

    前言 继续ctf的旅程 攻防世界Reverse高手进阶区的2分题 本篇是reverse-for-the-holy-grail-350的writeup 发现攻防世界的题目分数是动态的 就仅以做题时的分数 ...

  4. 攻防世界 Reverse高手进阶区 3分题 crackme

    前言 继续ctf的旅程 攻防世界Reverse高手进阶区的3分题 本篇是crackme的writeup 攻防世界的题目分数是动态的 就仅以做题时的分数为准了 解题过程 查壳,显示nsPack壳 找了个 ...

  5. 攻防世界misc新手_[攻防世界]mobile新手练习区easy-apk

    [攻防世界]mobile新手练习区easy-apk easy-apk最佳Writeup由129师386旅独立团 • devi1提供 难度系数: 7.0 题目来源: 暂无 题目描述:无 题目场景: 暂无 ...

  6. [攻防世界]crypto新手练习区Caesar

    [攻防世界]crypto新手练习区Caesar Caesar最佳Writeup由Um0 • Umo.提供 难度系数: 1.0 题目来源: poxlove3 题目描述:你成功的解出了来了灯谜,小鱼一脸的 ...

  7. 攻防世界 MISC新手练习区 刷12道题题所得的思路和方法

    title: 攻防世界 MISC新手练习区 date: 22021年8月17日 10点31分 tags: MISC categories: MISC 1.攻防世界 this_is_flag(签到题) ...

  8. 攻防世界 MISC 新手练习区 writeup 001-006

    攻防世界 MISC 新手练习区 题目解答 文章目录 001 this_is_flag 002 pdf 003 如来十三掌 004 give_you_flag 005 stegano 006 坚持60s ...

  9. 攻防世界 CRYPTO 新手练习区 答题(1-12题解)

    序 传送门:https://adworld.xctf.org.cn/task/ 1.base64 题目描述:元宵节灯谜是一种古老的传统民间观灯猜谜的习俗. 因为谜语能启迪智慧又饶有兴趣,灯谜增添节日气 ...

  10. xctf攻防世界 crypto 新手练习区--write up(持续更新中)

    文章目录 base64 Caesar Morse Railfence 不仅仅是Morse easy RSA RSA算法 简介 RSA计算公钥和私钥 混合编码 转轮机加密 回转轮加密 base64 题目 ...

最新文章

  1. 模糊选择器 js_5个很棒的 React.js 库,值得你亲手试试!
  2. linux命令详解:md5sum命令
  3. cad显示驱动程序文件已丢失或损坏_win7系统下打开AutoCAD 2014时显示驱动程序文件.hdi丢失如何解决...
  4. Leetcode每日一题:1030.matrix-cells-in-distance-order(距离顺序排列矩阵单元格)
  5. 程序员们,在你当领导前,有些事你得先知道
  6. python参数检查类型_Python类型检查
  7. 罗永浩重新定义直播带货
  8. python苹果版安装包_新手必看。关于Python3——windows安装与运行(详细版)
  9. 线性不可分的线性支持向量机的原始问题(凸二次规划)详细求解
  10. Postman设置环境变量
  11. IT公司面试智力题整理
  12. html表格宽度设置没效果,html表格宽度设置失效
  13. 元宇宙将要如何改变每个人的生活方式?
  14. 汇编语言(王爽第三版)实验大全
  15. 迟到的2020年终总结
  16. 磨金石教育分享:43款字体设计工具大集合,超赞!
  17. 聚苯乙烯微球为成孔模板制备多孔PI/HMSNs复合膜/交联氨基聚苯乙烯微球/羧基聚苯乙烯微球
  18. MySQL 幻读和不可重复读的区别
  19. linux command first edition notes lgx0050
  20. 管窥《平凡的世界》写作特点之细节处理3500字

热门文章

  1. 全媒舍:基金牌照在企业宣传中所具有的作用大吗
  2. 手把手教你怎么使用云服务器
  3. matlab按图像边缘抠图_不会抠图?保姆级抠图教程!手把手教你抠图(一)
  4. mysql最优库容_一种增加已达到设计库容的尾矿库存储量的方法
  5. EOS映射的坑——存钱包用户必看
  6. 签字后被开除_开除 4 名午睡员工,海尔就能追上美的格力了?
  7. excel - 逻辑表达式 (与,或,非)- 实例介绍(条件显示不同cell)
  8. 小i机器人与腾讯、商汤等发起成立上海人工智能发展联盟
  9. es6中两数组按条件穿插混合------------元宵节快乐
  10. seneca mysql_Package - seneca-mysql-store-ex