2018.11.4 东华杯(骇极) REVERSE What's it wp
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相关推荐
- ctf php168,【2018年 网鼎杯CTF 第一场】教育组 WP — Lilac
Team: Lilac [TOC] misc 签到 回复公众号即可 clip 对damaged.disk分析可知包含png图片,提取图片得到了两张图片. 修复png文件头, 对图片还原PS等,得到fl ...
- QIIME 2用户文档. 11数据筛选Filtering data(2018.11)
文章目录 前情提要 QIIME 2用户文档. 11数据筛选 下载实验相关数据 过滤特征表 按数据量过滤 偶然因素的过滤 基于索引的过滤 基于元数据的筛选 基于物种过滤表和序列 过滤序列 过滤距离矩阵 ...
- QIIME 2用户文档. 8数据导入Importing data(2018.11)
文章目录 前情提要 QIIME 2用户文档. 8数据导入 导入带质量值的FASTQ测序数据 EMP标准混样单端数据 EMP混样双端数据 Casava1.8单端混样数据 Casava 1.8双端拆分后数 ...
- QIIME 2用户文档. 6沙漠土壤分析Atacama soil(2018.11)
文章目录 前情提要 QIIME 2用户文档. 6阿塔卡马沙漠微生物组分析 启动QIIME2运行环境 实验数据下载 双端数据分析方法 去噪并生成特征表和代表序列 接下来分析要回答的科学问题 Refere ...
- 2020年 第11届 蓝桥杯 Java B组 省赛真题详解及小结【第1场省赛 2020.7.5】
蓝桥杯 Java B组 省赛决赛 真题详解及小结汇总[2013年(第4届)~2021年(第12届)] 第11届 蓝桥杯-第1.2次模拟(软件类)真题-(2020年3月.4月)-官方讲解视频 说明:部分 ...
- 2020年 第11届 蓝桥杯 Java C组 省赛真题详解及小结【第1场省赛 2020.7.5】
蓝桥杯 Java B组 省赛真题详解及小结汇总[2013年(第4届)~2020年(第11届)] 注意:部分代码及程序 源自 蓝桥杯 官网视频(历年真题解析) 郑未老师. 2013年 第04届 蓝桥杯 ...
- 2020年 第11届 蓝桥杯 C/C++ B组 省赛真题详解及小结【第1场省赛2020.7.5】【Java版】
蓝桥杯 Java B组 省赛真题详解及小结汇总[2013年(第4届)~2020年(第11届)] 注意:部分代码及程序 源自 蓝桥杯 官网视频(历年真题解析) 郑未老师. 2013年 第04届 蓝桥杯 ...
- 2020年 第11届 蓝桥杯 第2次模拟赛真题详解及小结【Java版】
蓝桥杯 Java B组 省赛真题详解及小结汇总[2013年(第4届)~2020年(第11届)] 注意:部分代码及程序 源自 蓝桥杯 官网视频(历年真题解析) 郑未老师. 2013年 第04届 蓝桥杯 ...
- 第11届 蓝桥杯-第1、2次模拟(软件类)真题-(2020年3月、4月)-官方讲解视频
蓝桥杯 Java B组 省赛真题详解及小结汇总[2013年(第4届)~2020年(第11届)] 注意:部分代码及程序 源自 蓝桥杯 官网视频(历年真题解析) 郑未老师. 2013年 第04届 蓝桥杯 ...
最新文章
- eclipse开发android手机定位
- 运维基础(5)Ansible
- poj 1729 Jack and Jill (搜索,bfs)
- 希尔排序听起来有点难,其实很简单
- tez什么意思_传统数仓和大数据数仓的区别是什么?
- 在微信小程序中引入 Iconfont 阿里巴巴图标库
- [转]CentOS6.4下Mysql数据库的安装与配置
- 在阿里云服务器中安装配置mysql数据库完整教程
- SAP License:谈PA和PCA的区别
- SAP License:做顾问要有一颗平常心
- 哪个计算机无法做到双屏显示,[工具/ PC]如何在计算机上实现双屏显示?
- zookeeper单机和集群搭建过程详细步骤
- SQL重复记录处理(查找,过滤,删除)
- C语言_报数问题:有n个人围成一圈,顺序从零排号。从第一个人开始报数(从1到3报数),凡报到3的人 退出圈子,问最后留下的是原来第几号的那位。
- JTAG接口定义与其他简介
- 戴尔服务器预装系统如何降级,在戴尔计算机上降级系统BIOS | Dell 中国
- 街区最短路径问题——曼哈顿距离
- 促活用户新方式:在app内嵌入小游戏
- 物流基础知识(十八)
- 怎么把ppt文字大小设置一致_51页PPT告诉你,大神都在用的这些神级插件,到底有多赞?...
热门文章
- 浅谈工程总承包项目WBS的重要性与创建方法
- 如何1秒内快速判断一个函数的凹凸性?还看不懂我给你赔钱
- Python 程序员需要知道的 30 个技巧
- 计算机睡眠打印机不可用设置,win7系统打印机属性显示不可用的解决方法
- DC Administration Services 宣布ISDA裁决委员会2020年申请流程
- 拼多多开店怎么做推广?四川万顿思
- T00ls Lpk Sethc 全新v2.0版(附LPK提权)
- 2021-08-06随记(vertical-align, 顶线、底线、中线、基线,vue原理理解)
- stm32cubeide烧写程序_初学STM32CubeIDE
- 未明学院:保姆级四大par面面经和准备方法