第八届极客大挑战 Re
0x01.Writeup-RE-CM_2
题目:
解题思路:
1.这个是经过xor的,王老师提示说用xortool,于是放进kali,装好之后执行
xortool CM_2.exe -b,
0.out变为PEexe,于是放进IDA32得到flag。
0x02.Writeup- RE-CM_3
解题思路:
1.拿道题之后直接丢进DIE扫一下,如图,可以看出是32位,于是用32位IDA打开。
2.shift+F12看字符串,看到敏感字符SYC{%s}于是点进去,于是知道关键函数是sub_45BFF0。
3.分析函数sub_45BFF0。
上面这张图是关键代码,不难发现,这是将byte_52E000数组里的元素转换位置。然后看到上有一串数字,如右图,这些数字是被当做byte_52E000数组的下标从而实现转换byte_52E000数组元素位置。
接下来需要知道byte_52E000数组里的元素,双击即可看到。
4.分析清楚后接下来写脚本,由于需要取数组下标,我用c写的脚本,如下
得到flag,大功告成!
0x03.Writeup- RE-APK_1
题目:
于是知道如果找到password就能过这题。
解题思路:
1.用Apktool打开,
2.
可以看到,username = ‘SycGeek2017’,
一开始以为Password就是username的base64编码“U3ljR2VlazIwMTc=”,交了一发不对。
然后仔细看了看,发现还有个re函数,可以很快的了解到re函数就是一个倒置字符串的函数,于是password = “=cTMwIzalV2Rjl3U”。
得flag:SYC{=cTMwIzalV2Rjl3U }
0x04.Writeup- RE-Linux_1
题目:
解题思路:
1.还是拿IDE扫一下,
gcc((Ubuntu 5.4.0-6ubuntu1~16.04.4) 5.4.0 20160609)[executable AMD64-64]
2.用IDA64位打开,shift+F12看字符串,如图
点进去,看到它所在函数为sub_4009AE,点进去,F5查看伪代码。
3.函数sub_4009AE
一开始看到这个函数有点懵逼,然后点了点里面跳转的函数,惊喜的看到一个非常“好看”的,如下图
根据这个函数把a1数组的每一个元素找到,即L1nux_1s_51mple,找到flag啦。
0x04.Writeup- RE-Convolution
题目:
解题思路:
1.丢进IDE看文件类型,如图
2.IDA32位打开,看字符串,如图
点进去,F5查看伪代码。
3.从后往前看。
首先,从下面这段代码可以看出,若v6==0,则输出Yes,那么
就是说v8要和unk_41E8B0这个数组完全匹配。
继续往上看v8是如何赋值的。
很容易看到,下图的代码为关键,它的作用是将v9与byte_41C658的元素异或之后再赋给v8,可以看到byte_41C658是已经有值的,
那么接下来看v9,如下图,知道v9是我们输入的字符串。
现在可以开始逆算法了,从上面的关键代码的图可以看出,
V8[i+j] =( v9[i] ^ byte[j] )求和。为了理清这个关系,我写了个脚本,结果如下图。
通过上图可以很快理清其中的关系,通过第一行我们可以直接得到v9[0],通过第二行可以借助第一行v9[0]算出v9[1],以此类推,v9的全部元素都可以得到。
写输出flag的脚本:
byte_41C658数组的元素如下图,别忘了第一个21h。
V8的元素由于过长不在这里显示。
关键代码如下图
得到flag
总结:这个题的难度主要在分析v8,v9,byte之间的关系,如果能理清这个的话相信得到flag是很容易的,还有就是在找v8和byte元素的时候不要忘了第一个!!!比如说下图
我就是一开始忘了byte数组的第一个导致脚本崩了。。。然后第三天重新看的时候才发现。。。
re部分还有两道题,比赛的时候没写出来。。。
作者: LB919
出处:http://www.cnblogs.com/L1B0/
该文章为LB919投入了时间和精力的原创;
如有转载,荣幸之至!请随手标明出处;
第八届极客大挑战 Re的更多相关文章
- 第八届极客大挑战 Web-iPhone X
题目: 解题思路: 第一次看到html里只有字其他啥也没有的题,一脸懵逼,学长提示抓包改包,于是开始我的苦逼解题. 0x01 抓包 0x02 改包 由于题目说只有iphoneX才能接受这个websit ...
- 第八届极客大挑战 Web-php绕过
0x01.web-PHP的悖论1 题目: 链接:http://game.sycsec.com:2009/10111.php 解题思路: 1.首先,web对于选择二进制方向的我这个菜鸡绝对是十分懵逼的, ...
- 第八届极客大挑战 Web-故道白云&Clound的错误
web-故道白云 题目: 解题思路: 0x01 首先看到题目说html里有秘密,就看了下源代码如图, 重点在红圈那里,表示输入的变量是id,当然上一行的method=“get”同时说明是get方式获取 ...
- 2016第七季极客大挑战Writeup
第一次接触CTF,只会做杂项和一点点Web题--因为时间比较仓促,写的比较简略.以后再写下工具使用什么的. 纯新手,啥都不会.处于瑟瑟发抖的状态. 一.MISC 1.签到题 直接填入题目所给的SYC{ ...
- BUUOJ [极客大挑战 2019]Secret File
[极客大挑战 2019]Secret File 0X01考点 php的file伪协议读取文件 ?file=php://filter/convert.base64-encode/resource= 0X ...
- 三叶草极客大挑战2020 部分题目Writeup
三叶草极客大挑战2020 部分题目Writeup Web Welcome 打开后状态码405,555555,然后看了一下报头存在请求错误,换成POST请求后,查看到源码 <?php error_ ...
- [原题复现][极客大挑战 2019]BuyFlag
简介 原题复现:[极客大挑战 2019]BuyFlag 考察知识点:php函数特性(is_numeric().strcmp函数()) 线上平台:https://buuoj.cn(北京联合大学公开 ...
- 极客大挑战2019 http
极客大挑战 http referer 请求头 xff 1.查看源码,发现secret.php 2.提示要把来源改成Sycsecret.buuoj.cn,抓包,添加Referer Referer:htt ...
- 2020极客大挑战Web题
前言 wp是以前写的,整理一下发上来. 不是很全. 2020 极客大挑战 WEB 1.sha1碰撞 题目 图片: 思路 题目说,换一种请求方式.于是换成post.得到一给含有代码的图片 图片: 分析该 ...
随机推荐
- 使用BeautifulSoup爬取汽车之家新闻
1 先select到改数据上层的标签,取第一个[0],然后attrs获取单标签里面的内容,或者get_text获取成对标签内文本2 find就是明确了标签之后,是唯一的,就可以使用find(标签名). ...
- spring(三):BeanDefiniton
- python 批量编译 批量删除
把项目的py文件变异成pyc文件,好处是可以保护源码不泄露. 假如一个工程文件夹有1000个py文件,这个时候怎样快速处理 ? 两步走: ① py--->pyc python -m compi ...
- 问题 D: 家庭问题
问题 D: 家庭问题 时间限制: 1 Sec 内存限制: 128 MB[命题人:admin] 题目描述 有n个人,编号为1,2,……n,另外还知道存在K个关系.一个关系的表达为二元组(α,β)形式, ...
- LED Decorative Light Manufacturer - Decorative Lighting: Functionality And Aesthetics
Whether it is for general ambient lighting, task lighting or accent lighting, the decorative lightin ...
- MP3 文件格式解析
目录: 1.mp3 文件简介 2.ID3 tag id3 v2 3.音频帧 要注意的地方 4.参考 5.一个临时解析方法 一.MP3文件简介 MP3(mpeg-1 Ⅲ 或者 mpeg-2 Ⅲ)是一种将 ...
- 前端分页神器,jquery grid的使用(前后端联调),让分页变得更简单。
jquery grid 是一款非常好用的前端分页插件,下面来讲讲怎么使用. 首先需要引入jquery grid 的CSS和JS (我们使用的是bootstrap的样式) 下面我们通过一个例子来讲解,需 ...
- C++算法导论第九章O(n)期望选择序列第i小的数字
#include<iostream> #include<vector> #include<algorithm> #include<time.h> usi ...
- POJ 3991 括号匹配问题(贪心)
I’m out of stories. For years I’ve been writing stories, some rather silly, just to make simple prob ...
- numpy (1.16.4) has the default value of allow_pickle as False.
My version of numpy (1.16.4) has the default value of allow_pickle as False. numpy版本是1.16.4,allow_pi ...