XYCTF2024 部分w

RE

1. 聪明的信使

基础爆破

#include<stdio.h>
#include<string.h>
int main()
{char enc[] = "oujp{H0d_TwXf_Lahyc0_14_e3ah_Rvy0ac@wc!}";char flag[41] = {0};int i, j;for (i = 0; i < strlen(enc); i++){for (j = 33; j < 127; j++){if ((j <= 96) || (j > 'z')){if ((j > '@') && (j <= 'Z')){if (((j + 9 - 65) % 26 + 65) == enc[i]){flag[i] = j;}};}else{if (((j + 9 - 97) % 26 + 97) == enc[i]) { flag[i] = j;}}}if(!flag[i]){flag[i] = enc[i];};}printf("%s", flag);
}

2. 喵喵喵的flag碎了一地

3. 你是真的大学生吗?

看汇编翻译一下

#大学生 wp
enc = [  0x76, 0x0E, 0x77, 0x14, 0x60, 0x06, 0x7D, 0x04, 0x6B, 0x1E, 0x41, 0x2A, 0x44, 0x2B, 0x5C, 0x03, 0x3B, 0x0B, 0x33, 0x05]
for i in range(len(enc)-1):enc[i] ^= enc[i+1]
flag = ''
for i in enc:flag += chr(i)
print(flag)
4. Debug

jadx动调直接出

5. trustme

看起来是个很简单的RC4

但是只得到用户名 admin

法一:猜Sql注入,直接万能密码

6. 今夕是何年

ubuntu上运行不成功,改kali装qemu就可以了

kail安装指令:

sudo apt updat

apt install qemu-user

然后直接运行即可

7. ez_cube

就是个解魔方算法

国际三阶魔方求解器- 最棒的在线免费app

分析一下四个字母的含义

U是上层顺时针90度,就不多分析了

u,r实际上是指U',R'

魔方弟_三阶魔方的各种术语及公式表示法

在线解魔方乱七八糟,可能有多解,多数不止涉及到RU,只能靠魔方经验做

这是一个三棱换,公式是R U' R U R U R U' R' U' R2

翻译一下就是RuRURURururr

flag{RuRURURururr}

8. baby unity

TMdll被加密了

工具使用参考,但是PC的unity逆向没有so文件,用的是GameAssembly.dll

【游戏开发进阶】教你使用IL2CppDumper从Unity il2cpp的二进制文件中获取类型、方法、字段等(反编译)-CSDN博客

dnspy看一下Assembly-CSharp.dll

可以查看到关键函数的地址

在IDA打开GameAssembly.dll跳转到相应地址

非常难看,尝试恢复一下符号表

[原创]IL2CPP 逆向初探-软件逆向-看雪-安全社区|安全招聘|kanxue.com

恢复了部分符号

注意这个Check$$OnClick函数

汇编能找到类似密文的东西

StringLiteral_4850也在最后的判断里出现了

扔给厨子是个好习惯,当然代码逻辑也能看

9. 砸核桃

xvlk秒脱壳

逻辑很简单,就是异或

#crack walnutes wp
enc = [   0x00000012, 0x00000004, 0x00000008, 0x00000014, 0x00000024, 0x0000005C, 0x0000004A, 0x0000003D, 0x00000056, 0x0000000A, 0x00000010, 0x00000067, 0x00000000, 0x00000041, 0x00000000, 0x00000001, 0x00000046, 0x0000005A, 0x00000044, 0x00000042, 0x0000006E, 0x0000000C, 0x00000044, 0x00000072, 0x0000000C, 0x0000000D, 0x00000040, 0x0000003E, 0x0000004B, 0x0000005F, 0x00000002, 0x00000001, 0x0000004C, 0x0000005E, 0x0000005B, 0x00000017, 0x0000006E, 0x0000000C, 0x00000016, 0x00000068, 0x0000005B, 0x00000012, 0x00000000, 0x00000000, 0x00000048]
key = 'this_is_not_flag'
flag = ''
for i in range(0,42):flag += chr(enc[i]^ord(key[i%16]))
print(flag)
#flag{59b8ed8f-af22-11e7-bb4a-3cf862d1ee75}

 

10. ez_enc

一个比较高级的爆破,因为存在多解和不满足条件的树,所以需要深度递归爆破

#ez_enc wp
enc = [  0x27, 0x24, 0x17, 0x0B, 0x50, 0x03, 0xC8, 0x0C, 0x1F, 0x17, 0x36, 0x55, 0xCB, 0x2D, 0xE9, 0x32, 0x0E, 0x11, 0x26, 0x02, 0x0C, 0x07, 0xFC, 0x27, 0x3D, 0x2D, 0xED, 0x35, 0x59, 0xEB, 0x3C, 0x3E, 0xE4, 0x7D] #34
flag = [0]*34
flag[33] = 0x7D
#print(flag)
key = 'IMouto'
def findflag(i, flag):if(i == -1):for k in flag:print(chr(k),end='')print("")for j in range(32,127):if enc[i] == ord(key[i%6]) ^ (flag[i+1]+j%20):flag[i] = jfindflag(i-1,flag)
findflag(32, flag)
'''
*lag{!_r3ea11y_w4nt_@_cu7e_s1$ter}
>lag{!_r3ea11y_w4nt_@_cu7e_s1$ter}
Rlag{!_r3ea11y_w4nt_@_cu7e_s1$ter}
flag{!_r3ea11y_w4nt_@_cu7e_s1$ter}
zlag{!_r3ea11y_w4nt_@_cu7e_s1$ter}
'''

最后手动筛选一下

11. ez_rand

随机数异或,就是要爆种子

我以为是文件时间戳,结果是从0开始爆……

#include<stdio.h>
#include<string.h>
int main()
{unsigned int seed;unsigned char enc[] ={0x5D, 0x0C, 0x6C, 0xEA, 0x46, 0x19, 0xFC, 0x34, 0xB2, 0x62,0x23, 0x07, 0x62, 0x22, 0x6E, 0xFB, 0xB4, 0xE8, 0xF2, 0xA9,0x91, 0x12, 0x21, 0x86, 0xDB, 0x8E, 0xE9, 0x43, 0x4D, 0x00,0x00, 0xFC, 0x31};unsigned char flag[33];int i,key;for (seed = 0; ; seed++){srand(seed);int right = 1;for (int i = 0; i <= 32; i++){key = rand() % 255;flag[i] = key ^ enc[i];switch (i){case 0:if (flag[i] != 'X'){right = 0;}break;case 1:if (flag[i] != 'Y'){right = 0;}break;case 2:if (flag[i] != 'C'){right = 0;}break;case 3:if (flag[i] != 'T'){right = 0;}break;case 4:if (flag[i] != 'F'){right = 0;}break;case 5:if (flag[i] != '{'){right = 0;}break;default:continue;}if (right == 0){break;}}if (right == 1){printf("%d\n", seed);printf("%s", flag);break;}else {printf("not %u\n", seed);}}
}
//21308
//XYCTF{R@nd_1s_S0_S0_S0_easy!}

Misc

1. TCPL

qemu起一个riscv64的虚拟进程

1换成0

FLAG{PLCT_An4_r0SCv_x0huann0}

Ubuntu的qemu安装方法参照

https://arcsin2.cloud/2023/03/03/Ubuntu-22-04-%E5%AE%89%E8%A3%85-QEMU-%E6%B5%81%E7%A8%8B/

版本改成最新的就行

https://download.qemu.org/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/4635.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Skill Check: Fundamentals of Large Language Models

Skill Check: Fundamentals of Large Language Models 完结&#xff01;

Vue项目中引入高德地图步骤详解,附示例代码

vue中如何使用高德地图&#xff0c;下面为您详解。 步骤一&#xff1a;安装高德地图的JavaScript API 在Vue项目的根目录下打开终端&#xff0c;执行以下命令安装高德地图的JavaScript API&#xff1a; npm install amap/amap-jsapi-loader --save 步骤二&#xff1a;创建地…

什么?你还不懂文件系统和软硬链接?

文章目录 序言认识磁盘磁盘在系统中的管理熟悉磁盘各个分区 软硬链接软链接硬链接 序言 首先熟悉一下一些专有名词(了解即可,但必须有一个概念认识) 固态:SSD,笔记本中常装的,台式机中也可以装,常见的对应接口M.2和SATA接口 磁盘:90年代常用的数据存储设备,或是现在企业级数据…

IPv4 NAT(含Cisco配置)

IPv4 NAT&#xff08;含Cisco配置&#xff09; IPv4私有空间地址 类RFC 1918 内部地址范围前缀A10.0.0.0 - 10.255.255.25510.0.0.0/8B172.16.0.0 - 172.31.255.255172.16.0.0/12C192.168.0.0 - 192.168.255.255192.168.0.0/16 这些私有地址可在企业或站点内使用&#xff0c…

从零开始的软件测试学习之旅(四)web项目工作流程介绍

WEB手工项目 项目介绍项目技术分析项目学习准备工作如何快速熟悉项目举例熟悉TPshop项目 总体系统项目介绍项目与数据库测试流程什么是软件需求需求评审 测试计划测试方案测试计划和测试方案的区别 项目介绍 满足经典三层架构:前端 后端 数据库 前端:运行在用户端的浏览器和客…

同仁堂医养拟赴港上市,养老产业的盈利难题有了答案?

提及银发经济&#xff0c;大众可能最先想到的就是养老产业&#xff0c;在市场需求推动下&#xff0c;这一细分赛道的增长已势不可挡。单从入局者的积极性就可以把握到赛道前景之广阔。 天眼查专业版数据显示&#xff0c;截至目前&#xff0c;我国拥有养老相关企业36.2万家&…

线上办理离婚快速离婚,无需双方见面异地可办

现在离婚有两种方式 一种是协议离婚&#xff0c;双方都同意的情况下&#xff0c;可以去民政局协议离婚&#xff0c;有30天冷静期&#xff0c;冷静期过后需要双方再次去民政局办理离婚手续。 另一种是诉讼离婚&#xff0c;一方不同意离婚&#xff0c;可以选择诉讼离婚。可以全…

【PPT设计】颜色对比、渐变填充、简化框线、放大镜效果、渐变形状配图、线条的使用

目录 图表颜色对比、渐变填充、简化框线放大镜效果渐变形状配图 线条的使用区分标题与说明信息区分标题与正文,区分不同含义的内容**聚焦****引导****注解****装饰** 图表 颜色对比、渐变填充、简化框线 小米汽车正式亮相&#xff01;你们都在讨论价格&#xff0c;我全程只关…

jackson.dataformat.xml 反序列化 对象中包含泛型

重点&#xff1a; JacksonXmlProperty localName 指定本地名称 JacksonXmlRootElement localName 指定root的根路径的名称&#xff0c;默认值为类名 JsonIgnoreProperties(ignoreUnknown true) 这个注解写在类上&#xff0c;用来忽略在xml中有的属性但是在类中没有的情况 Jack…

python_django农产品物流信息服务系统6m344

Python 中存在众多的 Web 开发框架&#xff1a;Flask、Django、Tornado、Webpy、Web2py、Bottle、Pyramid、Zope2 等。近几年较为流行的&#xff0c;大概也就是 Flask 和 Django 了 Flask 是一个轻量级的 Web 框架&#xff0c;使用 Python 语言编写&#xff0c;较其他同类型框…

Eclipse C++ 无法debug 问题

环境&#xff1a; ubuntu20.04 Eclipse CDT&#xff08;x86_64) 工程&#xff0c;使用的是默认的CMake Project 现象&#xff1a; 1. 使用Eclipse&#xff0c; 加了断点后&#xff0c;debug 无法停在断点&#xff1b;step over 执行后是从main 直接执行到exit &#xff…

poi-tl自定义渲染策略学习

文章目录 实现逻辑参考代码注意点 实现逻辑 自定义渲染策略实现逻辑&#xff1a; 找到模板中的表格标签render方法接收java中对应模板表格标签的所有list数据执行自定义渲染逻辑 参考代码 word模板如下&#xff1a; 实体类&#xff1a; Data public class GksxRowData {/…

Linux多进程(二)进程通信方式三 共享内存

共享内存提供了一个在多个进程间共享数据的方式&#xff0c;它们可以直接访问同一块内存区域&#xff0c;因此比使用管道或消息队列等通信机制更高效。在多进程程序中&#xff0c;共享内存通常与信号量一起使用&#xff0c;以确保对共享内存的访问是线程安全的。 一、打开/创建…

07_for循环返回值while循环

文章目录 1.循环返回值2.yield接收for返回值3.scala调用yield方法创建线程对象4.scala中的while循环5.scala中的流程控制 1.循环返回值 for循环返回值是Unit 原因是防止产生歧义&#xff1b; 2.yield接收for返回值 // 2.yield关键字打破循环&#xff0c;可以使for循环输出…

webpack面试题(持续汇总ing。。。)

webpack的编译过程 初始化 此阶段&#xff0c;webpack会将CLI参数、配置文件、默认配置进行融合&#xff0c;形成一个最终的配置对象。对配置的处理过程是依托一个第三方库 yargs 完成的。此阶段相对比较简单&#xff0c;主要是为接下来的编译阶段做必要的准备目前&#xff0c;…

LLaMA 3:大模型之战的新序幕

作者 | 符尧 OneFlow编译 翻译&#xff5c;杨婷、宛子琳、张雪聃 本文要点概览&#xff1a; 文本数据的扩展可能已经达到了极限&#xff0c;因为易于获取的网络文本资源&#xff08;如Common Crawl、GitHub、ArXiv等&#xff09;已基本被充分利用。 尽管如此&#xff0c;通过更…

数据结构 - C/C++ - 数组

目录 结构特性 内存布局 结构样式 结构拓展 数据初始 元素访问 插入元素 删除元素 查找元素 修改元素 结构设计 成员变量 构造函数 功能函数 示例代码 结构特性 长度固定&#xff1a;数组的长度在创建时已经被确定&#xff0c;如果需要动态改变数组的长度&#…

C++面向对象程序设计 - 多继承,以及基类与派生类转换

单继承是一个类是从另一个基类派生类而来的&#xff0c;多继承则是一个派生类是同两个或多个基类&#xff0c;派生类从两人或多个基类中继承所需的属性。 声明多重继承的方法&#xff1a; class D: public A, private B, protected C { 类D新增加的成员 } 一、多重继承派生类的…

Vue---组件

Vue—组件 目录 Vue---组件定义组件全局组件局部组件 组件通讯***重点***父子通信之父传子&#xff08;props&#xff09;父子通信之子传父&#xff08;$emit&#xff09;ref属性&#xff08;$refs&#xff09; 动态组件插槽命名插槽 定义组件 全局组件 vue2中template只能传…

浏览器渲染机制:重排(Reflow)与重绘(Repaint)以及Vue优化策略

浏览器渲染机制是一个复杂但有序的过程&#xff0c;其目的是将HTML、CSS和JavaScript代码转化为用户可以看到和交互的视觉界面。重排&#xff08;Reflow&#xff09;与重绘&#xff08;Repaint&#xff09;是浏览器渲染过程中对页面元素进行更新的两个重要步骤&#xff0c;理解…