RE方向出自:队友。

Shiftjmp

去花后按p然后再反编译

最后flag为SYC{W3lc0me_tO_th3_r3veR5e_w0r1d~}

点击就送的逆向题

gcc 1.s -o 1`

生成elf

最后flag为SYC{TQWEFGHYIICIOJKLBNMCVBFGHSDFF}

幸运数字

爆破v5

运行获得flag

最后flag为SYC{C0ngratulati0nnnns_You_gAessEd_R1ght}

砍树

反编译

关键逻辑

由于是native 去找相关的so文件

ida打开

跟进 A0OWO0A

接着跟进_Z7A0OWO0APhPKh

EXP:

最后flag为SYC{t@ke_thE_bul1_By_the_h0rns_TAT}

easymath

exp:

运行获得flag

最后flag为SYC{xtd4co_ymiunbbx3Aypsmbzii}

听说cpp很难?

exp:

运行获得flag

加上括号

flower-or-tea

去花指令

exp1:

#include <stdio.h>
#include <stdint.h>
#include <stdio.h>
void decrypt(uint32_t* v, uint32_t* k) {
int v7 = 0;
for (int i = 0; i < 54; i++) {
v7 += 0x31415927;
}
v7 = v7 & 0xffffffff;
uint32_t v6 = v[0], v5 = v[1], i;
uint32_t k0 = k[0], k1 = k[1], k2 = k[2], k3 = k[3];
for (i = 0; i < 54; i++) {
v7 -= 0x31415927;
v6 -= (k[(v7 & 3)] + v7) ^ (v5 + ((v5 >> 5) ^ (16 * v5)));
v5 -= v7 ^ (k[((v7 >> 11) & 3)] + v7) ^ (v6 + ((v6 >> 5) ^(16 * v6)));
}
v[0] = v6; v[1] = v5;
}
int main()
{
uint32_t key[4] = {
32,27,39,44
};
uint32_t array[38] = { 0x9af9464b, 0xc417b89e, 0xb217a713,
0xc93ba9e8, 0x94f3e44e, 0xb5cc2ab5, 0x4451e42c, 0x7a8a289a,
0x53c8d008, 0x6e117b49, 0x9bffd794, 0x5eff2df9, 0x17e72531,
0xdfbd9979, 0x8f871b3a, 0x73e8c5ac, 0xb28670a6,
0x5af6a369,0x2cf7da24, 0x347b66af,
0xb9c84d60, 0x911e912f, 0xbd5a2f9b, 0xcb96733a, 0xc59968be,
0xa00013e9, 0xc12f4ea4, 0xde863a10, 0xa0c4d594,
0x4380983c, 0x7e2f7648, 0xe54ddc89, 0x3f27a690, 0xb58d3199,
0x604ae517, 0x9c903984, 0xf4e04481, 0x3cf4edff };
uint32_t temp[2] = { 0 };
int i = 0;
for (i = 0; i < 38; i += 2)
{
temp[0] = array[i];
temp[1] = array[i+1];
decrypt(temp, key);
printf("%c%c%c%c%c%c%c%c", ((char)&temp[0] + 0), *
((char*)&temp[0] + 1), ((char)&temp[0] + 2), ((char)&temp[0] +
3), ((char)&temp[1] + 0), ((char)&temp[1] + 1), *
((char*)&temp[1] + 2), ((char)&temp[1] + 3));
}
return 0;
}

运行c代码

得到字符串 S}Y?C?{ADe0t__Yro3vw_o1liFk_ek_nTioR_d

exp2:

运行获得flag

最后flag为SYC{D0_Yov_1ike_To_dRink_Flow3r_teA??}

mySelf

自解密

动调

exp:

#include <stdio.h>#include <stdint.h>
#include <stdio.h>
void decrypt(uint32_t* v) {
int v2 = 0;
for (int i = 0; i < 32; i++) {
v2 -= 0x61C88647;
}
v2 = v2 & 0xffffffff;
uint32_t v3= v[0], result= v[1], i;
for (i = 0; i < 32; i++) {
result -= ((v3 >> 5) + 4) ^ (16 * v3 + 3) ^ (v2 + v3);
v3 -= ((result >> 5) + 2) ^ (16 * result + 2) ^ (v2 +
result);
v2 += 0x61C88647;
}
v[0] = v3; v[1] = result;
}
int main()
{
//uint32_t key[4] = {
//32,27,39,44
//};
uint32_t array[38] = {
0x0BDBDF9F0,0x0E26194C4,0x80799125,0x1F0FC219,0x0EB6A1815,0x84F572C5,0x40CC3A85,0x0
D2A32ABB };
uint32_t temp[2] = { 0 };
int i = 0;
for (i = 0; i < 8; i += 2)
{
temp[0] = array[i];
temp[1] = array[i + 1];
decrypt(temp);
printf("%c%c%c%c%c%c%c%c", ((char)&temp[0] + 0), *
((char*)&temp[0] + 1), ((char)&temp[0] + 2), ((char)&temp[0] +
3), ((char)&temp[1] + 0), ((char)&temp[1] + 1), *((char*)&temp[1] + 2), ((char)&temp[1] + 3));
}
return 0;
}

运行得到flag

最后flag为SYC{H0w_7o_R@te_YOurs31f_iNtRo?}

rainbow

直接手撕了

运行获得flag

最后flag为SYC{TAke_1t_3asy_Just_a_STart!!}

小黄鸭

解包

反编译

完整代码

Exp:

运行得到字符串GMQ{1_v0ds_mCi_QvOgs_McIf_rf3omg}

凯撒解密

保证m不变,其他凯撒位移

最后flag为SYC{1_h0pe_yOu_ChAse_YoUr_dr3ams}

寻找初音未来

Exp:

运行获得flag

最后flag为SYC{N0thing_1s_sEriOus_But_MIku}

ezandroid

24位或者是24的倍数,不够的使用'X'进行补齐,将其给到sb

分两组,一组给到sb4,一组给到sb5 sb4是会进行操作的,进行tea加密

其实出现的"ad@#E!@a123"和"eCAS213@!@3"都是对象

第一部分flag:

exp:

#include <stdio.h>
#include
#include <stdlib.h>
void decrypt(int *v, int *k)
{
int v0 = v[0], v1 = v[2], v2 = v[1], sum = 0x9E3779B9 * 64, i;
/* set up */
int delta = 0x9E3779B9;
/* a key schedule constant */
int k0 = k[0], k1 = k[1], k2 = k[2], k3 = k[3];
/* cache key */
for (i = 0; i < 32; i++)
{ /* basic cycle start */
v1 -= (((v2 << 4) + k2) ^ (v2 + sum)) ^ ((v2 >> 5) + k3);
v2 -= (((v1 << 4) + k0) ^ (v1 + sum)) ^ ((v1 >> 5) + k1);
sum -= delta;
}
for (i = 0; i < 32; i++)
{ /* basic cycle start */
v1 -= (((v0 << 4) + k2) ^ (v0 + sum)) ^ ((v0 >> 5) + k3);
v0 -= (((v1 << 4) + k0) ^ (v1 + sum)) ^ ((v1 >> 5) + k1); sum -= delta;
}
v[0] = v0;
v[1] = v1;
v[2] = v2;
}
int main()
{
char encode1[12] = {-91, -8, -110, -55, -49, 75, 115, 13, -76,
-113, 102, 80};
int key[4] = {2023708229, -158607964, -2120859654, 1167043672};
char temp;
for (int i = 0; i < 3; i++)
{
temp = encode1[4 * i];
encode1[4 * i] = encode1[4 * i + 3];
encode1[4 * i + 3] = temp;
temp = encode1[4 * i + 1];
encode1[4 * i + 1] = encode1[4 * i + 2];
encode1[4 * i + 2] = temp;
}
int *flag1 = (int *)encode1;
decrypt(flag1, key);
for (int i = 0; i < 3; i++)
{
temp = encode1[4 * i];
encode1[4 * i] = encode1[4 * i + 3];
encode1[4 * i + 3] = temp;
temp = encode1[4 * i + 1];
encode1[4 * i + 1] = encode1[4 * i + 2];
encode1[4 * i + 2] = temp;
}
for (int i = 0; i < 12; i++)
{ putchar(encode1[i]);
}
system("pause");
return 0;
}

运行得到T0Vt33Tn0itr

第二部分flag

exp:

运行获得字符串0n3DF4itvc0Y

合并exp:

最后flag为SYC{T00nV3tD3F34Tint0vict0rY}

是男人就来扎针

dnspy打开

简单看一下逻辑

看看一下三十分和四十分输出什么

没啥用 再仔细看一遍逻辑

实际上拿30分的逻辑就能写出flag

包裹上SYC后提交

提示错误 那没辙了

试试看CE去改数据

先定位

测试发现好像奇数轮记score的是一个地址

偶数轮是另外一个 都记下来

因为有一轮的有点问题

改29然后插针

改39然后插针

改99然后插针

包裹后提交

2023第十四届极客大挑战 — RE WP的更多相关文章

  1. 第九届极客大挑战 部分WP

    CODE 和0xpoker分0day 百度 取石子游戏. https://blog.csdn.net/qq_33765907/article/details/51174524 已经说得很详细了,慢慢来 ...

  2. 第九届极客大挑战——Geek Chatroom(sql盲注)

    首先观察这个web应用的功能,可以任意留言,也可以搜索留言,当然我还用cansina扫描过网站,查看过源码,抓包查看过header等.没发现其他提示的情况下断定这就是个sql注入,可能存在的注入点呢, ...

  3. 第九届极客大挑战——怎么又是江师傅的秘密(java反序列化)

    这道题其实是考jsp和java的,我没学过jsp,java倒是有一点了解,但是刚拿到题的时候还是看不懂java代码里的内容,所以去简单学习了下jsp(jsp教程),按照教程里的步骤搭建了eclipse ...

  4. 第九届极客大挑战——小帅的广告(二阶sql注入)

    也是经过一通扫描和测试,没发现其他有用信息,感觉这是个sql注入.其实对于二阶sql注入我以前没实践过,也没看过资料,只是知道这个名字,但不知道为何看到这道题就让我回想起了这个名词,所以查了一下二阶s ...

  5. 2016第七季极客大挑战Writeup

    第一次接触CTF,只会做杂项和一点点Web题--因为时间比较仓促,写的比较简略.以后再写下工具使用什么的. 纯新手,啥都不会.处于瑟瑟发抖的状态. 一.MISC 1.签到题 直接填入题目所给的SYC{ ...

  6. BUUOJ [极客大挑战 2019]Secret File

    [极客大挑战 2019]Secret File 0X01考点 php的file伪协议读取文件 ?file=php://filter/convert.base64-encode/resource= 0X ...

  7. 三叶草极客大挑战2020 部分题目Writeup

    三叶草极客大挑战2020 部分题目Writeup Web Welcome 打开后状态码405,555555,然后看了一下报头存在请求错误,换成POST请求后,查看到源码 <?php error_ ...

  8. [原题复现][极客大挑战 2019]BuyFlag

    简介  原题复现:[极客大挑战 2019]BuyFlag  考察知识点:php函数特性(is_numeric().strcmp函数())  线上平台:https://buuoj.cn(北京联合大学公开 ...

  9. 极客大挑战2019 http

    极客大挑战 http referer 请求头 xff 1.查看源码,发现secret.php 2.提示要把来源改成Sycsecret.buuoj.cn,抓包,添加Referer Referer:htt ...

  10. 2020极客大挑战Web题

    前言 wp是以前写的,整理一下发上来. 不是很全. 2020 极客大挑战 WEB 1.sha1碰撞 题目 图片: 思路 题目说,换一种请求方式.于是换成post.得到一给含有代码的图片 图片: 分析该 ...

随机推荐

  1. 这些 git 高级命令你知道几个

    大家好,我是 dom 哥.今天给大家分享几个 git 的高级应用. git 是目前最流行的版本控制工具.git 玩的 6 不 6,轻则影响自己的开发幸福指数 ,重则影响下班时间 .本文介绍一些日常开发 ...

  2. PBKDF2(Password-Based Key Derivation Function 2)算法

    一.引言 在当今数字时代,保护用户数据和隐私的安全变得越来越重要.为实现这一目标,加密和密钥管理技术发挥着关键作用.PBKDF2(Password-Based Key Derivation Funct ...

  3. 【分享】推荐一个非常好用的redis远程连接工具

    推荐一个非常好用的redis远程连接工具 蓝奏云地址 https://wwsi.lanzoum.com/ig7xZ0xspf0h 密码:4vnz 二维码:

  4. 初探Git:理解和使用版本控制的魔法

    遥远的古代,有一位美丽的仙女叫做嫦娥.她的丈夫后羿获得了令人长生不老的鹿骨露.一天,嫦娥在好奇心的驱使下,独自偷喝了这瓶仙药. 喝下仙药的瞬间,嫦娥发现自己开始飘起,越飘越高,最后飘向了月亮.嫦娥惊慌 ...

  5. 拖拽功能实现vue

    1.按钮 <el-button @mousedown="down" @touchstart="down" @mousemove="move&qu ...

  6. 窗口到底有多滑动?揭秘TCP/IP滑动窗口的工作原理

    本文分享自华为云社区<窗口到底有多滑动?揭秘TCP/IP滑动窗口的工作原理>,作者: Lion Long. 当涉及网络性能优化和数据传输可靠性时,TCP/IP滑动窗口是一个关键的技术.本文 ...

  7. 如何使用mock应对测试所需随机数据

    摘要:在做接口测试的时候,有的接口需要进行大量的数据进行测试,还不能是重复的数据,这个时候就需要随机生产数据进行测试了.这里教导大家使用mock.js生成各种随机数据. 一.什么是mock.js mo ...

  8. 华为云PB级数据库GaussDB(for Redis)介绍第四期:高斯 Geo的介绍与应用

    摘要:高斯Redis的大规模地理位置信息存储的解决方案. 1.背景 LBS(Location Based Service,基于位置的服务)有非常广泛的应用场景,最常见的应用就是POI(Point of ...

  9. AppCube视角浅析: 艾瑞咨询《2022年中国低代码行业研究报告》

    摘要:近日,艾瑞咨询发布了<2022年中国低代码行业研究报告>,报告从企业数字化发展背景.低代码的发展路径.应用渗透.市场规模等方面进行深入研究分析,并洞察了发展趋势. 本文分享自华为云社 ...

  10. CANN 5.0黑科技解密 | 算力虚拟化,让AI算力“物尽其用”

    摘要:算力虚拟化技术对消费者而言,可有效降低算力的使用成本,对于设备商或运营商而言,则可极大提升算力资源的利用率,降低设备运营成本. 为什么要做算力虚拟化 近年来,人工智能领域呈井喷式发展,算力就是生 ...