What

打开先要求输入luck string,拖进ida看,输入的必须是长度为6的英文小写。之后对输入的数据取md5,然后遍历生成的MD5串,统计其中0的个数v15和下标总和v14,当满足10*v15+v14 == 403的时候为有效输入。这个题目的亮点在于打开decode函数的时候,有这么一个提示

然后结合着汇编看c代码,然偶看到了check,找check函数,发现

看出来这里是对输入的luck string的MD5的后四位ascii之和作为srand随机数种子,然后xor动态解密check的函数内容。解密之后调用check函数,传入参数luck string的md5的前4位。

大概明白了流程之后,首先得先获得check函数的内容,所以我们要首先对这个MD5进行爆破

用自己电脑单核心跑了10分钟跑出来,luck string =ozulmt。这里顺便问一下python的for有没有多线程?

md5 : 0ec448d42dbf0000c020c0000048010e

好多0,,,

v5 = “0ec4”; v6 = “010e”。

这里直接使用OD动调:

在这里断可以看到内存也有

f7跟进去,就是解密之后的check函数体了。为了方便分析,大概往后看了下,retn就在下面,所以直接选中0x402626 – 0x402756的部分,复制到新的exe里。

新的exe载入ida发现check函数已经正常显示。继续看

check接受了luck string的md5的前4位,取ascii和作为随机数种子,然后看到scanfs flag之后有了checkht函数,点进去发现是对输入flag的格式的核对,开头flag{,结尾},长度42,下标13 28 18 23是‘-’ 。然后删除了里面的‘-’继续。

随机数的产生分为两个阶段,首先需要srand一个随机数种子,之后会根据这个随机数种子生成一串“随机数”。在这里只要随机数种子给定,那么后面每一次执行rand()生成的数出现的顺序是一样的。即一个seed对应一张随机数表。

构造之后感觉有个坑,不同的cpp编译器的srand实现好像不一样

这个结果其实是不对的。

所以直接从内存或者寄存器找v3:(原始文件载入)

寄存器窗口有了显示,就是flag ,加上连字符即可:

flag{a197b847-7092-53a4-7c41-bc7d6d52e69d}

2018.11.4 东华杯(骇极) REVERSE What's it wp相关推荐

  1. ctf php168,【2018年 网鼎杯CTF 第一场】教育组 WP — Lilac

    Team: Lilac [TOC] misc 签到 回复公众号即可 clip 对damaged.disk分析可知包含png图片,提取图片得到了两张图片. 修复png文件头, 对图片还原PS等,得到fl ...

  2. QIIME 2用户文档. 11数据筛选Filtering data(2018.11)

    文章目录 前情提要 QIIME 2用户文档. 11数据筛选 下载实验相关数据 过滤特征表 按数据量过滤 偶然因素的过滤 基于索引的过滤 基于元数据的筛选 基于物种过滤表和序列 过滤序列 过滤距离矩阵 ...

  3. QIIME 2用户文档. 8数据导入Importing data(2018.11)

    文章目录 前情提要 QIIME 2用户文档. 8数据导入 导入带质量值的FASTQ测序数据 EMP标准混样单端数据 EMP混样双端数据 Casava1.8单端混样数据 Casava 1.8双端拆分后数 ...

  4. QIIME 2用户文档. 6沙漠土壤分析Atacama soil(2018.11)

    文章目录 前情提要 QIIME 2用户文档. 6阿塔卡马沙漠微生物组分析 启动QIIME2运行环境 实验数据下载 双端数据分析方法 去噪并生成特征表和代表序列 接下来分析要回答的科学问题 Refere ...

  5. 2020年 第11届 蓝桥杯 Java B组 省赛真题详解及小结【第1场省赛 2020.7.5】

    蓝桥杯 Java B组 省赛决赛 真题详解及小结汇总[2013年(第4届)~2021年(第12届)] 第11届 蓝桥杯-第1.2次模拟(软件类)真题-(2020年3月.4月)-官方讲解视频 说明:部分 ...

  6. 2020年 第11届 蓝桥杯 Java C组 省赛真题详解及小结【第1场省赛 2020.7.5】

    蓝桥杯 Java B组 省赛真题详解及小结汇总[2013年(第4届)~2020年(第11届)] 注意:部分代码及程序 源自 蓝桥杯 官网视频(历年真题解析) 郑未老师. 2013年 第04届 蓝桥杯 ...

  7. 2020年 第11届 蓝桥杯 C/C++ B组 省赛真题详解及小结【第1场省赛2020.7.5】【Java版】

    蓝桥杯 Java B组 省赛真题详解及小结汇总[2013年(第4届)~2020年(第11届)] 注意:部分代码及程序 源自 蓝桥杯 官网视频(历年真题解析) 郑未老师. 2013年 第04届 蓝桥杯 ...

  8. 2020年 第11届 蓝桥杯 第2次模拟赛真题详解及小结【Java版】

    蓝桥杯 Java B组 省赛真题详解及小结汇总[2013年(第4届)~2020年(第11届)] 注意:部分代码及程序 源自 蓝桥杯 官网视频(历年真题解析) 郑未老师. 2013年 第04届 蓝桥杯 ...

  9. 第11届 蓝桥杯-第1、2次模拟(软件类)真题-(2020年3月、4月)-官方讲解视频

    蓝桥杯 Java B组 省赛真题详解及小结汇总[2013年(第4届)~2020年(第11届)] 注意:部分代码及程序 源自 蓝桥杯 官网视频(历年真题解析) 郑未老师. 2013年 第04届 蓝桥杯 ...

最新文章

  1. eclipse开发android手机定位
  2. 运维基础(5)Ansible
  3. poj 1729 Jack and Jill (搜索,bfs)
  4. 希尔排序听起来有点难,其实很简单
  5. tez什么意思_传统数仓和大数据数仓的区别是什么?
  6. 在微信小程序中引入 Iconfont 阿里巴巴图标库
  7. [转]CentOS6.4下Mysql数据库的安装与配置
  8. 在阿里云服务器中安装配置mysql数据库完整教程
  9. SAP License:谈PA和PCA的区别
  10. SAP License:做顾问要有一颗平常心
  11. 哪个计算机无法做到双屏显示,[工具/ PC]如何在计算机上实现双屏显示?
  12. zookeeper单机和集群搭建过程详细步骤
  13. SQL重复记录处理(查找,过滤,删除)
  14. C语言_报数问题:有n个人围成一圈,顺序从零排号。从第一个人开始报数(从1到3报数),凡报到3的人 退出圈子,问最后留下的是原来第几号的那位。
  15. JTAG接口定义与其他简介
  16. 戴尔服务器预装系统如何降级,在戴尔计算机上降级系统BIOS | Dell 中国
  17. 街区最短路径问题——曼哈顿距离
  18. 促活用户新方式:在app内嵌入小游戏
  19. 物流基础知识(十八)
  20. 怎么把ppt文字大小设置一致_51页PPT告诉你,大神都在用的这些神级插件,到底有多赞?...

热门文章

  1. 浅谈工程总承包项目WBS的重要性与创建方法
  2. 如何1秒内快速判断一个函数的凹凸性?还看不懂我给你赔钱
  3. Python 程序员需要知道的 30 个技巧
  4. 计算机睡眠打印机不可用设置,win7系统打印机属性显示不可用的解决方法
  5. DC Administration Services 宣布ISDA裁决委员会2020年申请流程
  6. 拼多多开店怎么做推广?四川万顿思
  7. T00ls Lpk Sethc 全新v2.0版(附LPK提权)
  8. 2021-08-06随记(vertical-align, 顶线、底线、中线、基线,vue原理理解)
  9. stm32cubeide烧写程序_初学STM32CubeIDE
  10. 未明学院:保姆级四大par面面经和准备方法