Buuctf之SimpleRev做法

embedded/2024/9/24 1:21:37/

首先,查个壳,64bit,那就丢进ida64中进行反编译进来之后,我们进入main函数,发现里面没什么东西,那就shift+f12搜索字符串,找到关键字符串,双击进入然后再选中该字符串,ctrl+x进入应用该字符串的函数,如下图然后,边分析,边在旁边打上注释,在阐述里面的逻辑之前,我们先了解一个小知识点,我们都知道,两个十六进制数,由1个字节构成,也就是8个01代码,通常类型为8位的,就是正向读取,而一般64位的或者更大的,都要进行逆向读取,此处的src和v9[0]就大于64位,要进行逆向读取,这段代码的主逻辑大概就是,先进行一些字符串的复制和连接,然后将key中的大写字母转换为小写字母,然后getchar读取字符(该字符的范围在a~z和A~Z之间),再根据输入的字符对某段字符串进行处理,最后比对一下,相同则正确, str2[v2] = (v1 - 39 - key[v3 % v5] + 97) % 26 + 97;  此处的str2为下方的text(已知),key也为已知,采取爆破遍历算法,得到v1,即为flag,上代码


#include<iostream>
#include<stdio.h>
using namespace std;
int main()
{char key[] = "adsfkndcls";char text[] = "killshadow";for (int i = 0; i < 10; i++)   //10代表的是key的长度{for (int j = 65; j <= 122; j++){//依次遍历爆破,把控好j的取值if (j >= 'A' && j <= 'Z' || j >= 'a' && j <= 'z'){if (text[i] == (j - 39 - key[i ] + 97) % 26 + 97){printf("%c", j);break;}}}}return 0;
}

得到结果flag{KLDQCUDFZO},提交即可


http://www.ppmy.cn/embedded/56741.html

相关文章

Java实现登录验证 -- JWT令牌实现

目录 1.实现登录验证的引出原因 2.JWT令牌2.1 使用JWT令牌时2.2 令牌的组成 3. JWT令牌&#xff08;token&#xff09;生成和校验3.1 引入JWT令牌的依赖3.2 使用Jar包中提供的API来实现JWT令牌的生成和校验3.3 使用JWT令牌验证登录3.4 令牌的优缺点 1.实现登录验证的引出 传统…

【面试题】Reactor模型

Reactor模型 定义 Reactor模型是一种事件驱动的设计模式&#xff0c;用于处理服务请求。它通过将事件处理逻辑与事件分发机制解耦&#xff0c;实现高性能、可扩展的并发处理。Reactor模型适用于高并发、事件驱动的程序设计&#xff0c;如网络服务器等。 特点 事件驱动&#…

拉格朗日插值法【python,算法】

拉格朗日插值是一种在数值分析中用来构建通过一系列已知数据点的多项式插值的方法。这种方法以 18 世纪的法国数学家约瑟夫拉格朗日命名。当给定一组离散的数据点(&#x1d465;_0,&#x1d466;_0),(&#x1d465;_1,&#x1d466;_1),...,(&#x1d465;_&#x1d45b;,&…

Perl语言入门指南

一、绪论 1.1 Perl语言概述 1.2 Perl的特色 1.3 Perl面临的问题 1.4 Perl语言的应用领域 二、Perl语言基础 2.1 Perl语言的历史发展 2.2 Perl语言的基本语法 2.3 Perl语言的数据类型 三、Perl语言控制结构 3.1 条件语句 3.2 循环结构 3.3 函数和子程序 四、Perl语…

SwinUnet详解

文章目录 摘要一. 编码端模块1. PatchEmbed2. SwinTransformerBlock2.1. Window_partition2.2. WindowAttention2.3. Window_reverse2.4. MLP 3. PatchMerging 二. 解码端模块三. 完整流程图 摘要 swinunet基本结构&#xff1a; swinunet采用编码器-解码器结构&#xff1a; 编…

[Vite]Vite插件生命周期了解

[Vite]Vite插件生命周期了解 Chunk和Bundle的概念 Chunk&#xff1a; 在 Vite 中&#xff0c;chunk 通常指的是应用程序中的一个代码片段&#xff0c;它是通过 Rollup 或其他打包工具在构建过程中生成的。每个 chunk 通常包含应用程序的一部分逻辑&#xff0c;可能是一个路由视…

5、MP4解复用---AAC+H264

MP4 MP4同样是一种容器格式&#xff0c;是由一个一个Box组成&#xff0c;每个Box又分为Header与Data&#xff0c;Data又包含很多子Box&#xff0c;具体的MP4文件结构也看过&#xff0c;内部Box结构比较复杂&#xff0c;一般不写MP4解释器的话&#xff0c;Box结构不用了解太细&a…

Ubuntu22.04使用/etc/rc.local开机启动程序

前言 因为在工作中&#xff0c;Ubuntu系统经常使用到开机启动&#xff0c;为了方便之后使用&#xff0c;特此介绍下如何使用/etc/rc.local来开机启动程序&#xff0c;步骤如下&#xff0c;针对Ubuntu20.04或Ubuntu22.04系统都有效。 使用root权限编辑/lib/systemd/system/rc-…