2024“蜀道山” RE 部分题解

Map_maze

题目描述

真真假假真真,你能够寻找到最后的终点吗?

附件下载

迷宫生成

v5 是一个长度为 105 的数组,被用作 15x15 的二维网格

int __cdecl sub_4010D0(_DWORD *a1, _DWORD *a2)
{_DWORD *v2; // eax_DWORD *v3; // eaxint result; // eax_DWORD v5[105]; // [esp+0h] [ebp-424h] BYREF_DWORD v6[119]; // [esp+1A4h] [ebp-280h]_DWORD *v7; // [esp+380h] [ebp-A4h]int i28; // [esp+384h] [ebp-A0h]int i27; // [esp+388h] [ebp-9Ch]int i26; // [esp+38Ch] [ebp-98h]int i25; // [esp+390h] [ebp-94h]int i24; // [esp+394h] [ebp-90h]int i23; // [esp+398h] [ebp-8Ch]int i22; // [esp+39Ch] [ebp-88h]int i21; // [esp+3A0h] [ebp-84h]int i20; // [esp+3A4h] [ebp-80h]int i19; // [esp+3A8h] [ebp-7Ch]int i18; // [esp+3ACh] [ebp-78h]int i17; // [esp+3B0h] [ebp-74h]int i16; // [esp+3B4h] [ebp-70h]int i15; // [esp+3B8h] [ebp-6Ch]int i14; // [esp+3BCh] [ebp-68h]int i13; // [esp+3C0h] [ebp-64h]int i12; // [esp+3C4h] [ebp-60h]int i11; // [esp+3C8h] [ebp-5Ch]int i10; // [esp+3CCh] [ebp-58h]int i9; // [esp+3D0h] [ebp-54h]int i8; // [esp+3D4h] [ebp-50h]int i7; // [esp+3D8h] [ebp-4Ch]int i6; // [esp+3DCh] [ebp-48h]int i5; // [esp+3E0h] [ebp-44h]int i4; // [esp+3E4h] [ebp-40h]int i3; // [esp+3E8h] [ebp-3Ch]int i2; // [esp+3ECh] [ebp-38h]int i1; // [esp+3F0h] [ebp-34h]int nn; // [esp+3F4h] [ebp-30h]int mm; // [esp+3F8h] [ebp-2Ch]int kk; // [esp+3FCh] [ebp-28h]int jj; // [esp+400h] [ebp-24h]int ii; // [esp+404h] [ebp-20h]int n; // [esp+408h] [ebp-1Ch]int m; // [esp+40Ch] [ebp-18h]int k; // [esp+410h] [ebp-14h]int j; // [esp+414h] [ebp-10h]int i; // [esp+418h] [ebp-Ch]int i30; // [esp+41Ch] [ebp-8h]int i29; // [esp+420h] [ebp-4h]for ( i = 0; i < 15; ++i ){for ( j = 0; j < 15; ++j )v5[15 * i + j] = sub_401080(0);           // 用来分配并初始化表示节点的结构}for ( k = 1; k < 15; ++k )*(_DWORD *)v5[k] = 1;for ( m = 9; m < 15; ++m )*(_DWORD *)v5[m + 15] = 1;for ( n = 0; n < 2; ++n )*(_DWORD *)v5[n + 30] = 1;for ( ii = 3; ii < 8; ++ii )*(_DWORD *)v5[ii + 30] = 1;for ( jj = 9; jj < 15; ++jj )*(_DWORD *)v5[jj + 30] = 1;for ( kk = 0; kk < 2; ++kk )*(_DWORD *)v5[kk + 45] = 1;for ( mm = 3; mm < 8; ++mm )*(_DWORD *)v5[mm + 45] = 1;for ( nn = 12; nn < 15; ++nn )*(_DWORD *)v5[nn + 45] = 1;for ( i1 = 0; i1 < 2; ++i1 )*(_DWORD *)v5[i1 + 60] = 1;for ( i2 = 7; i2 < 10; ++i2 )*(_DWORD *)v5[i2 + 60] = 0;*(_DWORD *)v5[67] = 1;for ( i3 = 11; i3 < 15; ++i3 )*(_DWORD *)v5[i3 + 60] = 1;for ( i4 = 0; i4 < 2; ++i4 )*(_DWORD *)v5[i4 + 75] = 1;for ( i5 = 3; i5 < 6; ++i5 )*(_DWORD *)v5[i5 + 75] = 1;for ( i6 = 11; i6 < 15; ++i6 )*(_DWORD *)v5[i6 + 75] = 1;for ( i7 = 0; i7 < 2; ++i7 )*(_DWORD *)v5[i7 + 90] = 1;*(_DWORD *)v5[92] = 0;for ( i8 = 3; i8 < 6; ++i8 )*(_DWORD *)v5[i8 + 90] = 1;for ( i9 = 7; i9 < 10; ++i9 )*(_DWORD *)v5[i9 + 90] = 1;for ( i10 = 11; i10 < 15; ++i10 )*(_DWORD *)v5[i10 + 90] = 1;*(_DWORD *)v6[0] = 1;*(_DWORD *)v6[1] = 0;*(_DWORD *)v6[2] = 0;*(_DWORD *)v6[3] = 1;for ( i11 = 4; i11 < 6; ++i11 )*(_DWORD *)v6[i11] = 1;for ( i12 = 7; i12 < 10; ++i12 )*(_DWORD *)v6[i12] = 1;for ( i13 = 11; i13 < 15; ++i13 )*(_DWORD *)v6[i13] = 1;for ( i14 = 0; i14 < 2; ++i14 )*(_DWORD *)v6[i14 + 15] = 1;for ( i15 = 7; i15 < 10; ++i15 )*(_DWORD *)v6[i15 + 15] = 1;for ( i16 = 11; i16 < 15; ++i16 )*(_DWORD *)v6[i16 + 15] = 1;for ( i17 = 0; i17 < 6; ++i17 )*(_DWORD *)v6[i17 + 30] = 1;for ( i18 = 7; i18 < 10; ++i18 )*(_DWORD *)v6[i18 + 30] = 1;for ( i19 = 11; i19 < 15; ++i19 )*(_DWORD *)v6[i19 + 30] = 1;for ( i20 = 0; i20 < 6; ++i20 )*(_DWORD *)v6[i20 + 45] = 1;for ( i21 = 11; i21 < 15; ++i21 )*(_DWORD *)v6[i21 + 45] = 1;for ( i22 = 0; i22 < 9; ++i22 )*(_DWORD *)v6[i22 + 60] = 1;for ( i23 = 13; i23 < 15; ++i23 )*(_DWORD *)v6[i23 + 60] = 1;for ( i24 = 0; i24 < 9; ++i24 )*(_DWORD *)v6[i24 + 75] = 1;*(_DWORD *)v6[84] = 0;*(_DWORD *)v6[85] = 1;*(_DWORD *)v6[86] = 1;*(_DWORD *)v6[87] = 0;for ( i25 = 13; i25 < 15; ++i25 )*(_DWORD *)v6[i25 + 75] = 1;for ( i26 = 0; i26 < 9; ++i26 )*(_DWORD *)v6[i26 + 90] = 1;*(_DWORD *)v6[99] = 0;*(_DWORD *)v6[100] = 1;*(_DWORD *)v6[101] = 1;*(_DWORD *)v6[102] = 0;for ( i27 = 13; i27 < 15; ++i27 )*(_DWORD *)v6[i27 + 90] = 1;for ( i28 = 0; i28 < 12; ++i28 )*(_DWORD *)v6[i28 + 105] = 1;for ( i29 = 0; i29 < 15; ++i29 ){for ( i30 = 0; i30 < 15; ++i30 ){if ( i29 > 0 )*(_DWORD *)(v5[15 * i29 + i30] + 4) = v5[15 * i29 - 15 + i30];if ( i29 < 14 )*(_DWORD *)(v5[15 * i29 + i30] + 8) = v5[15 * i29 + 15 + i30];if ( i30 > 0 )*(_DWORD *)(v5[15 * i29 + i30] + 12) = v5[15 * i29 - 1 + i30];if ( i30 < 14 )*(_DWORD *)(v5[15 * i29 + i30] + 16) = v5[15 * i29 + 1 + i30];}}v2 = (_DWORD *)v5[0];*a1 = *(_DWORD *)v5[0];a1[1] = v2[1];a1[2] = v2[2];a1[3] = v2[3];a1[4] = v2[4];v3 = v7;*a2 = *v7;a2[1] = v3[1];a2[2] = v3[2];a2[3] = v3[3];result = v3[4];a2[4] = result;return result;
}

迷宫的判断

可以写个C脚本跑一下过程

#include<stdio.h>int maze[225]={0};int main() {int *v5 = maze;int *v6 = maze + 105;for (int k = 1; k < 15; ++k )v5[k] = 1;for (int m = 9; m < 15; ++m )v5[m + 15] = 1;for (int n = 0; n < 2; ++n )v5[n + 30] = 1;for (int ii = 3; ii < 8; ++ii )v5[ii + 30] = 1;for (int jj = 9; jj < 15; ++jj )v5[jj + 30] = 1;for (int kk = 0; kk < 2; ++kk )v5[kk + 45] = 1;for (int mm = 3; mm < 8; ++mm )v5[mm + 45] = 1;for (int nn = 12; nn < 15; ++nn )v5[nn + 45] = 1;for (int i1 = 0; i1 < 2; ++i1 )v5[i1 + 60] = 1;for (int i2 = 7; i2 < 10; ++i2 )v5[i2 + 60] = 0;v5[67] = 1;for (int i3 = 11; i3 < 15; ++i3 )v5[i3 + 60] = 1;for (int i4 = 0; i4 < 2; ++i4 )v5[i4 + 75] = 1;for (int i5 = 3; i5 < 6; ++i5 )v5[i5 + 75] = 1;for (int i6 = 11; i6 < 15; ++i6 )v5[i6 + 75] = 1;for (int i7 = 0; i7 < 2; ++i7 )v5[i7 + 90] = 1;v5[92] = 0;for (int i8 = 3; i8 < 6; ++i8 )v5[i8 + 90] = 1;for (int i9 = 7; i9 < 10; ++i9 )v5[i9 + 90] = 1;for (int i10 = 11; i10 < 15; ++i10 )v5[i10 + 90] = 1;v6[0] = 1;v6[1] = 0;v6[2] = 0;v6[3] = 1;for (int i11 = 4; i11 < 6; ++i11 )v6[i11] = 1;for (int i12 = 7; i12 < 10; ++i12 )v6[i12] = 1;for (int i13 = 11; i13 < 15; ++i13 )v6[i13] = 1;for (int i14 = 0; i14 < 2; ++i14 )v6[i14 + 15] = 1;for (int i15 = 7; i15 < 10; ++i15 )v6[i15 + 15] = 1;for (int i16 = 11; i16 < 15; ++i16 )v6[i16 + 15] = 1;for (int i17 = 0; i17 < 6; ++i17 )v6[i17 + 30] = 1;for (int i18 = 7; i18 < 10; ++i18 )v6[i18 + 30] = 1;for (int i19 = 11; i19 < 15; ++i19 )v6[i19 + 30] = 1;for (int i20 = 0; i20 < 6; ++i20 )v6[i20 + 45] = 1;for (int i21 = 11; i21 < 15; ++i21 )v6[i21 + 45] = 1;for (int i22 = 0; i22 < 9; ++i22 )v6[i22 + 60] = 1;for (int i23 = 13; i23 < 15; ++i23 )v6[i23 + 60] = 1;for (int i24 = 0; i24 < 9; ++i24 )v6[i24 + 75] = 1;v6[84] = 0;v6[85] = 1;v6[86] = 1;v6[87] = 0;for (int i25 = 13; i25 < 15; ++i25 )v6[i25 + 75] = 1;for (int i26 = 0; i26 < 9; ++i26 )v6[i26 + 90] = 1;v6[99] = 0;v6[100] = 1;v6[101] = 1;v6[102] = 0;for (int i27 = 13; i27 < 15; ++i27 )v6[i27 + 90] = 1;for (int i28 = 0; i28 < 12; ++i28 )v6[i28 + 105] = 1;for(int i=0;i<15;i++){for(int j=0;j<15;j++){printf(maze[i * 15 + j] ? "X" : " ");}printf("\n");}return 0;
}

迷宫有多解但是正确的flag只有一个

DRRDDDDDDDRRRRDDRRRDRRRDDDRR
LZSDS{1979869e0c4ef6c542e54ae5c48f63ec}

Super Panda Girl

题目描述

Super Panda girl go go

附件下载

Unity游戏逆向题

找到super panda girl\Super Panda Girl_Data\Managed文件夹下的Assembly-CSharp.dll拖dnspy

找到一个RC4加密

且密文密钥已知

再找一下主要逻辑

主要逻辑就是先对 text 进行 RC4加密(密文密钥已知),

然后取 text 偶数位拼起来再进行base64编码

exp

import codecsdef decrypt(encrypted_bytes, key):key_length = len(key)data_length = len(encrypted_bytes)key_bytes = key.encode('utf-8')# Initialize array with values 0-255array = list(range(256))# Key Scheduling Algorithm (KSA)num = 0for j in range(256):num = (num + array[j] + key_bytes[j % key_length]) % 256array[j], array[num] = array[num], array[j]# Pseudo-Random Generation Algorithm (PRGA)num2 = num3 = 0decrypted_bytes = bytearray(data_length)for k in range(data_length):num2 = (num2 + 1) % 256num3 = (num3 + array[num2]) % 256array[num2], array[num3] = array[num3], array[num2]b3 = (array[num2] + array[num3]) % 256decrypted_bytes[k] = encrypted_bytes[k] ^ b3# Decode the decrypted bytes to UTF-8 stringreturn decrypted_bytes.decode('utf-8')if __name__ == "__main__":encrypted_bytes = [57, 244, 117, 200, 213, 87, 194, 195, 164, 100, 103, 63, 19, 79,137, 70, 201, 24, 163, 129, 237, 210, 5, 19, 35, 21]key = "LZSDS"decrypted_text = decrypt(encrypted_bytes, key)print(decrypted_text)#put_this_in_the_true_brand

取text的偶数位:ptti_ntetu_rn

再取base64

LZSDS{cHR0aV9udGV0dV9ybg==}

Potato Toolkit

题目描述

土豆哥综合利用工具

附件下载

随便输入

shift E 找一下 "Compile Error"

定位到sub_7FF6EFED12E0函数

  • 通过检查用户输入的正确性,决定是否执行后续操作。
  • 模拟进度条更新。
  • 加密逻辑通过一组硬编码的字节和输入内容异或生成最终字符串v18

动调,分别输入字符串 "1wesa234" 和 "qwe123998244353"

注意这里循环结束后有退出

下断点的时候控制一下别直接退出去了

跟踪结果 v18

直接看到flag

LZSDS{@_v3ry_very_Ab3tr@ct_P0t@to_Guy}

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

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

相关文章

水库大坝安全监测之量水堰计应用

量水堰计是水库大坝安全监测系统中的一种关键设备&#xff0c;主要用于测量水库水位、流量等水力参数。以下是量水堰计在水库大坝安全监测中的应用及注意事项&#xff1a; 一、量水堰计的工作原理 量水堰计是一种专门用于测量水流流量的仪器&#xff0c;其工作原理主要基于水流…

vue基础之3:模板语法、数据绑定

欢迎来到“雪碧聊技术”CSDN博客&#xff01; 在这里&#xff0c;您将踏入一个专注于Java开发技术的知识殿堂。无论您是Java编程的初学者&#xff0c;还是具有一定经验的开发者&#xff0c;相信我的博客都能为您提供宝贵的学习资源和实用技巧。作为您的技术向导&#xff0c;我将…

【动态规划】股票市场交易策略优化

文章目录 一、问题描述二、解决思路状态转移初始化最终结果 三、代码实现执行流程解析时间和空间复杂度 一、问题描述 我们要解决的是一个关于股票买卖的问题&#xff1a;给定一个股票价格数组 stocks&#xff0c;每一天的价格为数组中的一个元素。我们可以通过买入和卖出的操…

SVL-Adapter: Self-Supervised Adapter for Vision-Language Pretrained Models

当前的问题 CLIP和CLIP-Adapter等方法的一个主要局限性是&#xff0c;它们没有对视觉编码器所编码的底层表示进行显著的修改。原因很简单&#xff1a;微调大型模型需要大量的监督&#xff0c;这在低监督学习设置中是很难获得的。如果下游分类任务的图像来自与互联网常见图像相…

Rust SQLx CLI 同步迁移数据库

上文我们介绍了SQLx及SQLite&#xff0c;并介绍了如何使用代码同步迁移数据库。本文介绍Sqlx cli 命令行工具&#xff0c;介绍如何安装、使用&#xff0c;利用其提供的命令实现数据表同步迁移。Java生态中有flyway, sqlx cli 功能类似&#xff0c;利用命令行工具可以和其他语言…

丹摩|丹摩智算平台使用教学指南

本指南旨在为新用户提供一个详细的操作步骤和实用的入门指导&#xff0c;帮助大家快速上手丹摩智算平台。 一、平台简介 丹摩智算平台是一款强大的数据分析和计算平台&#xff0c;支持多种编程语言&#xff0c;提供丰富的数据处理和机器学习工具。无论您是数据分析师、开发者…

代码美学:MATLAB制作渐变色

输入颜色个数n&#xff0c;颜色类型&#xff1a; n 2; % 输入颜色个数 colors {[1, 0, 0], [0, 0, 1]}; createGradientHeatmap(n, colors); 调用函数&#xff1a; function createGradientHeatmap(n, colors)% 输入检查if length(colors) ~ nerror(输入的颜色数量与n不一…

【大数据学习 | Spark调优篇】常用的shuffle优化

shuffle是一个涉及到CPU&#xff08;序列化反序列化&#xff09;、网络IO&#xff08;跨节点数据传输&#xff09;以及磁盘IO&#xff08;shuffle中间结果落盘&#xff09;的操作。 优化思路&#xff1a; 减少shuffle的数据量&#xff0c;减少shuffle的次数。 具体方式&…

Spring中每次访问数据库都要创建SqlSession吗?

一、SqlSession是什么二、源码分析1&#xff09;mybatis获取Mapper流程2&#xff09;Spring创建Mapper接口的代理对象流程3&#xff09;MapperFactoryBean#getObject调用时机4&#xff09;SqlSessionTemplate创建流程5&#xff09;SqlSessionInterceptor拦截逻辑6&#xff09;开…

娱乐API:快速生成藏头诗、藏尾诗和藏中诗

引言 诗歌是中国传统文化的重要组成部分&#xff0c;其中藏头诗、藏尾诗和藏中诗因其独特的形式而备受喜爱。为了满足广大文学爱好者的需求&#xff0c;我们推出了一款娱乐API&#xff0c;支持快速生成藏头诗、藏尾诗和藏中诗。本文将详细介绍该API的功能、使用方法以及如何将…

以达梦为数据库底座时部署的微服务页面报乱码,调整兼容模式

1.问题描述 部署微服务&#xff0c;文件、代码是延用的mysql类型的&#xff0c;部署前做了部分适配&#xff0c;但是在使用dm数据库进行安装的服务在页面上查询出的数据却都是乱码 2.查询官网&#xff0c;注意到一个参数COMPATIBLE_MODE兼容模式的配置 考虑是延用mysql&…

个人博客接入github issue风格的评论,utteranc,gitment

在做个人博客的时候&#xff0c;如果你需要评论功能&#xff0c;但是又不想构建用户体系和评论模块&#xff0c;那么可以直接使用github的issue提供的接口&#xff0c;对应的开源项目有utteranc和gitment&#xff0c;尤其是前者。 它们的原理是一样的&#xff1a;在博客文章下…

二,[ACTF2020 新生赛]Include1感谢 Y1ng 师傅供题。

进入靶场后&#xff0c;发现tips可以点击 点击后进入此页面 猜测此为文件包含漏洞,构造payload&#xff0c;并成功得到base64编码后的源码 详解payload&#xff1a; php://filter/readconvert.base64-encode/resourceflag.php 1.php://filter是PHP中的一个流封装协议&#xf…

vue3.0 根据富文本html页面生成压缩包(含视频在线地址、图片在线地址、前端截图、前端文档)

vue3.0生成压缩包&#xff08;含在线地址、前端截图、前端文档&#xff09; 需求描述效果开始下载插件包基本代码构造 点击下载按钮1.截图content元素&#xff0c;并转化为pdfcanvas putImageData、getImageDatagetImageData 获取指定矩形区域的像素信息putImageData 将这些数据…

单细胞细胞通讯全流程分析教程,代做分析和辅导

0. 分析参数文件和细胞通讯的演示数据 0.1 细胞通讯分析总的参数文件&#xff0c;后面部分细胞通讯分析模块会用到 分析参数文件 参数文件名称&#xff1a;total_analysis_params_demo.xlsx &#xff0c;很多分析模块都是这个总的参数文件&#xff0c;我的这个总的参数文件如…

C++趣味编程:基于树莓派Pico的模拟沙漏-倾斜开关与LED的互动实现

沙漏,作为一种古老的计时工具,利用重力让沙子通过狭小通道,形成了计时效果。在现代,我们可以通过电子元件模拟沙漏的工作原理。本项目利用树莓派Pico、倾斜开关和LED,实现了一个电子沙漏。以下是项目的详细技术解析与C++代码实现。 一、项目概述 1. 项目目标 通过倾斜开关…

RAG (Retrieval Augmented Generation) 检索增强和生成

1 RAG技术简介 1.1 RAG技术概述 RAG&#xff08;Retrieval Augmented Generation&#xff09; 是一种结合了检索&#xff08;Retrieval&#xff09;和生成&#xff08;Generation&#xff09;的技术&#xff0c;旨在通过利用外部知识库来增强大型语言模型&#xff08;LLMs&am…

DIY-Tomcat part 3 实现对动态资源的请求

实现ServletRequest package connector;import javax.servlet.RequestDispatcher; import javax.servlet.ServletInputStream; import javax.servlet.ServletRequest; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.i…

黑马程序员Java笔记整理(day05)

1.面向对象编程 2.用法 3.对象是什么 4.对象在计算机中是啥 5.无参与有参构造器 小结: 6.this的作用 7.小结 8.封装 9.小结 10.实体类 11.小结 12.static 13.小结 14.static修饰方法 15.static应用前景 16.几个注意事项 17.java中可以直接用类的名字创建数组&#xff0c;如: M…

Perforce SAST专家详解:自动驾驶汽车的安全与技术挑战,Klocwork、Helix QAC等静态代码分析成必备合规性工具

自动驾驶汽车安全吗&#xff1f;现代汽车的软件包含1亿多行代码&#xff0c;支持许多不同的功能&#xff0c;如巡航控制、速度辅助和泊车摄像头。而且&#xff0c;这些嵌入式系统中的代码只会越来越复杂。 随着未来汽车的互联程度越来越高&#xff0c;这一趋势还将继续。汽车越…