第八届极客大挑战 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.得到一给含有代码的图片 图片: 分析该 ...
随机推荐
- 好文章推荐 数据库mysql
https://blog.csdn.net/guofeng93/article/details/53994112
- _mysql_exceptions.OperationalError: (2013, 'Lost connection to MySQL server during query')
最近写了一个定时脚本,每天凌晨跑,每次跑时间很长. 在测试这个脚本的时候,跑了一个小时,发生一个错误,脚本中断,错误如下: _mysql_exceptions.OperationalError: (2 ...
- HBase 中读 HDFS 调优
HDFS Read调优 在基于 HDFS 存储的 HBase 中,主要有两种调优方式: 绕过RPC的选项,称为short circuit reads 开启让HDFS推测性地从多个datanode读数据 ...
- [lua]紫猫lua教程-命令宝典-L1-01-10. 自定义函数
L1[function]01. 定义与调用函数 函数的定义 和概念 没什么可说的 lua的函数声明和调用是有先后顺序的 先声明后调用 函数就是变量的一种 所以可以自由的把函数在变量间相互赋值 不过注 ...
- centos 7 安装 nginx maxmind GEO IP IP库相关部署
centos 7 上为nginx 增加Geo IP的功能 yum install gcc gcc-c++ make automake autoconf libtool wget unzip -y if ...
- ASP.NET的 Razor引擎和JavaScript是一种什么关系
Razor能做的JS大部分能做,不是全部.比如说,如果你用了Entity Frame一类的ORM的时候,Razor可以直接绑定数据库数据,但JS就不可能直接访问数据库——必须通过其他web servi ...
- mybatis--MyBatis动态SQL语句
mybatis 的动态sql语句是基于OGNL表达式的.可以方便的在 sql 语句中实现某些逻辑. 总体说来mybatis 动态SQL 语句主要有以下几类: 1. if 语句 (简单的条件判断) 2. ...
- Python 多任务(进程) day1(2)
进程和线程的简单区别: 功能:进程:能够完成多任务,比如 在一台电脑上能够运行多个QQ一份资源有一个执行的剪头,有多份资源就可以执行多个语句线程:能够完成多任务,比如 在一个QQ中的多个聊天窗口一份资 ...
- FILES源代码
FILESの源码 #include <bits/stdc++.h> #include <game.h> #define pause getchar(); #define c ...
- [经验] Java 使用 netty 框架, 向 Unity 客户端的 C# 实现通信[2]
在前一篇文章中, 我们实现了从Java netty 服务端到 unity 客户端的通讯, 但是在过程中也发现有一些问题是博主苦苦无法解决的, 但是还好终于有些问题还是被我找刀方法解决了, 现在把这些解 ...