第四届XCTF开始,首战因素,加上团队刚加入了两个新人的原因,还是决定一块参与一下。水了3题。2个RE和1个MISC,照顾新人,写的比较啰嗦。

[MISC] PY-PY-PY
  下载题目之后是一个pyc文件。使用反编译工具恢复,提示出错,编译出来的代码也有问题。就怀疑可能有别的东西,翻出了一篇“Python字节码中嵌入Payload的隐写”,下载所述的Stegosaurus利用之。

相关链接:http://www.freebuf.com/sectool/129357.html

[RE] BABYRE
  ELF,第一反应先用IDA的F5大法。加载结束,跟到主函数下面的一个函数,发现分析失败“sp-analysis failed”,F5无效。看着IDA已有的分析结果,用GDB去调。主函数代码非常简单,有一个跳转到分析失败的函数。关键跳转的条件也非常简单,由CMP指令决定,和0xE比较。前面的函数是一个strlen(),再往前是scanf()。这部分程序过程基本就清楚了,输入之后检查了字符串的长度,检测的地方就是CMP指令和0xE(十进制的14)比较。
  理顺了输入检验,GDB跟到那个IDA没有分析出来的judge()函数中。没有分析出来的地方是连续的赋值,这些值虽然不是flag格式,15个,前14个事非0值,还是比较可疑的。测试输入的是连续的数字,发现这些会被运算变成别的值,变化完之后会再判定,不符合则结束了。没有别的内容了,就把那14个字符输了进去,变化之后前4位就是flag,第5个值是0x7F,输入不进去,其实就是“{”的那一位随便找了一个满足条件的值,这里输了“1”。循环14次之后出flag。人为替换第五位即可。

[RE] CRACKME
  VC6的MFC程序,有点蒙,看着像输入SN然后进行判定的,还是纠结了一会有没有加载玄机,没有直接去调点击后的事件。逻辑就是检测输入的SN长度要满足33,并且之后会判定输入的内容。

  核心的函数就在0x401630处,断下来,其中有一个关键的比较:比较时,正确的值会在寄存器上。在那个比较的地方下端,运行33下就得出结果了。(其实是在数据段里的某个位置开始每次间隔10B取一次值)


flag{The-Y3ll0w-turb4ns-Upri$ing}

WHCTF2017线上小记的更多相关文章

  1. 关于解决python线上问题的几种有效技术

    工作后好久没上博客园了,虽然不是很忙,但也没学生时代闲了.今天上博客园,发现好多的文章都是年终总结,想想是不是自己也应该总结下,不过现在还没想好,等想好了再写吧.今天写写自己在工作后用到的技术干货,争 ...

  2. 分布式存储 FastDFS-5.0.5线上搭建

    前言:       由于公司项目需要,最近开始学习一下分布式存储相关知识,确定使用FastDFS这个开源工具.学习之初,自己利用VMware虚拟机搭建了一个5台机器的集群,摸清了安装过程中可能出现的问 ...

  3. 线上bug的解决方案--带来的全新架构设计

    缘由 本人从事游戏开发很多年一直都是游戏服务器端开发. 因为个人原因吧,一直在小型公司,或者叫创业型团队工作吧.这样的环境下不得不逼迫我需要什么都会,什么做. 但是自我感觉好像什么都不精通..... ...

  4. 线上应用bug跟踪查找-友盟统计

    线上的应用只要用心点点都能发现些bug,连微信,QQ也不列外.但是bug中最严重的算是闪退了,这导致了用户直接不能使用我们的app. 我们公司是特别注重用户反馈和体验的,我们会定期打电话咨询用户的使用 ...

  5. 【原】fiddler修改线上的内容

    摘要:当我们线上的代码出bug了,咋办呢?有时候本地的代码跟线上的代码还是运行环境还是有区别的.比如有些封装的方法需要运动到手机上可以调试,而浏览器是无法调试的.如果不想每次修改完再放上到测试环境看效 ...

  6. 【重装系统】线上Linux服务器(2TB)分区参考方案

    如果是线上服务器,假设它是 2TB 的 SATA 硬盘.8GB 内存,建议按如下方式进行分区: / 20480M(20G)(主分区) /boot 128M swap 10240M /data 2016 ...

  7. 软件工程线上课程(C语言实践篇)学习心得总结

    林牧 + 原创作品转载请注明出处 + <软件工程(C编码实践篇)>MOOC课程http://mooc.study.163.com/course/USTC-1000002006 软件工程的理 ...

  8. 一次线上http接口调用不通相关的解决过程

    2016-05-25 08:58:34 昨天线上小白系统因为调用外部http接口,超时不释放,导致页面反应很慢,时间一长,报502错误. 上网查了下,502错误是因为服务对于客户的请求没有得到及时的反 ...

  9. 线上mongodb数据库mLab使用总结

    最近在CNode社区看到有人分享了免费的线上mongodb数据库(容量500M),今天去注册了一下,成功的将线下数据库替换掉了,现在就说一下它的使用和配置需要注意的地方: mLab是一款免费的在线mo ...

随机推荐

  1. csu1510 Happy Robot 递推

    题目链接: cid=2095&pid=7">csu1510 解题思路: 要求解四个值x_min,x_max,y_min,y_max 首先考虑x_min怎样得到:由于机器人最后有 ...

  2. Java类的设计----关键字super

    关键字super 在Java类中使用super来引用父类的成分 super可用于访问父类中定义的属性 super可用于调用父类中定义的成员方法 super可用于在子类构造方法中调用父类的构造方法 su ...

  3. Android之HttpPost与HttpGet使用

    一)HttpGet :doGet()方法 //doGet():将参数的键值对附加在url后面来传递 public String getResultForHttpGet(String name,Stri ...

  4. c/c++设置图片为透明图

    在绘制图片的时候先把源位图填充背景设置为白色 例如:m_bufferpicture.FillSolidRect(0,0,m_nWidth,m_nHeight,RGB(255,255,255));//这 ...

  5. Mybatis中insert

    <insert id="insert" parameterType="Currency"> INSERT INTO YZ_SECURITIES_CU ...

  6. iOS 使用AFN 进行单图和多图上传 摄像头/相册获取图片,压缩图片

    图片上传时必要将图片进行压缩,不然会上传失败 首先是同系统相册选择图片和视频.iOS系统自带有UIImagePickerController,可以选择或拍摄图片视频,但是最大的问题是只支持单选,由于项 ...

  7. Runtime 运行时之一:消息传递

    什么是Runtime? Runtime顾名思义即为运行时.就是系统运行时候的一些机制,它提供了一些使得对象之间能够传递消息的重要函数,其中最主要的就是消息机制了.相较于C语言而言,C语言使用的是“静态 ...

  8. android编译make错误——"javalib.jar invalid header field”、"classes-full-debug.jar 错误 41 "

    错误:读取 out/target/common/obj/JAVA_LIBRARIES/core-tests_intermediates/javalib.jar 时出错:invalid header f ...

  9. django 自定模板标签的注册

    首先注册方法一般都是先实例化一个template.Library.如: from django import template register = template.Library() 1.注册自定 ...

  10. LeetCode——Rectangle Area

    Description:https://leetcode.com/problems/rectangle-area/ public class Solution { public int compute ...