当前位置: 首页 > news >正文

BUU usualCrypt1

查壳,32bit,丢进ida32中进行反编译,简单的不多说,直接进main分析

简单分析,打上注释,没啥好看的,就一个加密函数,加密完后和一个字符串进行比较,由此可以逆推出加密前的字符串,也就是flag了,直接进入加密函数进行查看

小小base64加密,但其中还有两个加密函数,第一个函数是对码表进行了变化,第二个则是将大小写转换了一下,第二个我相信在看的各位都能看懂,我着重讲一下第一个加密函数(我也是理解了好一会儿)

这边看着似乎很简单,就是简单的换值,将字符串a开头的第六位往后九位和字符串k开头的第六位往后九位字符进行交换,这边有一个点,这两个字符串其实就是一个地址连在一块儿的大字符串也就是字符串ABCDEF GHIJKLMNO PQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/

这边看似是两个字符串的相互操作,其实就是这个字符串的内部操作,可以写如下代码


/*
#include<iostream>
using namespace std;
int main()
{char str2[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";char v1;for (int result = 6; result < 15; result++){v1 = str2[result + 10];str2[result + 10] = str2[result];str2[result] = v1;}puts(str2);return 0;
}*/

运行出的结果就是变化后的码表,这是第一种理解方式,还有第二种理解方式,但是这个较为麻烦,但应该很多人第一时间都会以第二种方式去理解,所以我详细讲一下,你们可能会写出如下代码


/*
#include<iostream>
using namespace std;
int main()
{char v1;char str1[] = "ABCDEF GHIJKLMNO PQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";char str2[] = "KLMNOP QRSTUVWXY Zabcdefghijklmnopqrstuvwxyz0123456789+/";for (int result = 6; result < 15; result++){v1 = str2[result ];str2[result ] = str1[result];str1[result] = v1;}puts(str1);return 0;
}*/

但是这么写就错了,因为此处虽然是两个字符串在操作,实际上确是对一个字符串进行操作,因为str2是str1的一部分,但这样硬写也能写出来,如下图

我们将两个数组单拿出来,首先是前六位不变,这个没有异议吧,接下来从第七位开始,往后九个字符被替换成了QRSTUVWXY,这个也没有问题吧,但接下来问题来了,我们看到数组2,是以字符k为开头的,在数组中KLMNO已经被替换成了UVWXY,但是还有个p没有被替换,那就把p加上去,这边直接看数组2,不看数组1了,为什么呢?因为,第一点,数组2本身就是数组1的一部分,第二点,数组2已经被改变了,但是数组1中的数组2部分并没有被改变,所以看数组1就没有意义了,看数组2即可,数组2的P后面九位被替换成了GHIJKLMNO,剩余的照抄,你就会发现,和代码1运行的结果是一样的,这个确实难理解,我也想了好一会儿,建议反复斟酌斟酌,最后嘛,也就没什么操作了,这边已经得到了变码表,然后把要比对的那个字符串,如下图

给他大小写转换一下,最后找个变码base64在线解密的网站,输入,即可得到flag

这道题,看似简单,实则简单,就当是多学了个知识点,若是两个相邻的字符串在互相操作,直接把他变成一个大字符串,然后在他的内部操作就行,注意偏移量即可,其他没啥了

相关文章:

BUU usualCrypt1

查壳&#xff0c;32bit&#xff0c;丢进ida32中进行反编译&#xff0c;简单的不多说&#xff0c;直接进main分析 简单分析&#xff0c;打上注释&#xff0c;没啥好看的&#xff0c;就一个加密函数&#xff0c;加密完后和一个字符串进行比较&#xff0c;由此可以逆推出加密前的字…...

第十七章 标准库特殊设施

17.1 tuple类型 当希望将一些数据合成单一对象&#xff0c;但又不想麻烦地定义一个新数据结构来表示这些数据时&#xff0c;tuple非常有用。tuple是类似pair的模板。 tuple<size_t, size_t, size_t> threeD; //三个成员都设置为0//为每个成员提供初始值 tuple<strin…...

【格言分享】程序员的经典名言解读

上一期文章我们分享了一些程序员的经典名言,每一句都蕴含着深刻的道理。 接下来就给大家一个一个分析一下 这些格言确实捕捉到了编程和软件开发的精髓,每一条都蕴含着丰富的经验和智慧。下面我将逐一解释这些格言,并分享一些我的看法。 C程序员永远不会灭亡。他们只是cast…...

SpringBoot接收LocalDateTime参数

一、通过RequestBody接收 方式1&#xff1a;实体类上加上 JsonFormat&#xff0c;并通过 pattern 属性指定时间格式 public class Time {JsonFormat(pattern "yyyy-MM-dd HH:mm:ss")LocalDateTime localDateTime;JsonFormat(pattern "yyyy-MM-dd")Loca…...

Typora配置GitHub图床--结合PicGo

【当前问题】Typora文档分享时 无法看到本地路径图片 【怎么解决】把文档中的图片设置为 公开链接 【准备工具】 Typora 官网https://typoraio.cn/&#xff08;购买 / 自寻破解法&#xff09;GitHub账号 https://github.com/PicGo https://github.com/Molunerfinn/PicGo/relea…...

【书生.浦语实战营】——入门岛

【书生.浦语实战营】——入门岛_第一关_Linux基础 任务分布1. 本地vscode远程连接并进行端口映射端口映射What——何为端口映射How——怎么进行端口映射 2. Linux基础命令touch &#xff1a;创建文件mkdir &#xff1a;创建目录cd:进入 退出 目录pwd :确定当前所在目录cat:可以…...

WPF+MVVM案例实战(十四)- 封装一个自定义消息弹窗控件(下)

文章目录 1、案例效果2、弹窗控件使用1.引入用户控件2、按钮命令实现 3、总结4、源代码获取 1、案例效果 2、弹窗控件使用 1.引入用户控件 打开 Wpf_Examples 项目&#xff0c;在引用中添加用户控件库&#xff0c;在 MainWindow.xaml 界面引用控件库&#xff0c;代码如下&…...

嵌入式——STM32外设应用

STM32 微控制器以其高性能、低功耗和丰富的外设资源&#xff0c;在嵌入式系统设计中得到了广泛应用。以下将详细介绍 STM32 的主要外设及其典型应用&#xff0c;帮助开发者更好地理解和应用这些功能。 1. GPIO&#xff08;通用输入输出端口&#xff09; 功能&#xff1a;GPIO…...

HCIA(ACL)

第七节 ACL&#xff1a;访问控制列表 访问控制----在路由器的入或者出的接口上&#xff0c;匹配流量&#xff0c;之后产生动作---允许或拒绝 定义感兴趣流量-----帮助其他软件抓流量 匹配规则&#xff1a; 至上而下&#xff0c;逐一匹配&#xff0c;上调匹配按照上条执行…...

react基础之reactHooks

文章目录 React Hooks 使用指南常用 Hooks使用规则 小结 React Hooks 使用指南 React Hooks 是 React 16.8 引入的一种新特性&#xff0c;允许在函数组件中使用状态和其他 React 特性&#xff0c;而无需编写类组件。以下是一些基础的 Hooks 及其使用规则。 常用 Hooks useSta…...

Java基础0-Java概览

Java概览 一、Java的主要特性 Java 语言是简单的&#xff1a; Java 丢弃了 C 中很少使用的、很难理解的、令人迷惑的那些特性&#xff0c;如操作符重载、多继承、自动的强制类型转换。特别地&#xff0c;Java 语言不使用指针&#xff0c;而是引用。并提供了自动分配和回收内存…...

SW绘制曲面

20241031第一次学习 参考教程:SolidWorks视频教程SW实战营绘制一个布满球体的不规则曲面_哔哩哔哩_bilibili 过程概述: STEP 1:创建平面草图并拉伸 STEP 2:从侧面(拉伸出来的面)绘制样条曲线 样条曲线需要画到实例的底面(图中接下来是要向下变形)薄板两侧都要绘制...

css知识点梳理2

1. 选择器拓展 在 CSS 中&#xff0c;可以根据选择器的类型把选择器分为基础选择器和复合选择器&#xff0c;复合选择器是建立在基础选择器之上&#xff0c;对基本选择器进行组合形成的。 ​ 复合选择器是由两个或多个基础选择器&#xff0c;通过不同的方式组合而成的&#xf…...

攻防世界 MISC miao~详解

下载压缩包&#xff0c;但是尝试解压的时候提示错误&#xff0c;刚开始以为是伪加密之类的&#xff0c;但是尝试了一圈之后&#xff0c;发现并没有问题。后面用bandizip打开&#xff0c;得到了一张图片&#xff1a; 拖到010editor里面查看&#xff0c;没有发现什么 于是用随波逐…...

使用 `tracert [options] <目标地址>` 命令的详细介绍

使用 tracert [options] <目标地址> 命令的详细介绍 什么是 tracert 命令&#xff1f; tracert&#xff08;Trace Route&#xff09;是一个用于追踪数据包从一台计算机到达另一台计算机的网络工具。它通过发送特定的数据包&#xff0c;观察这些数据包经过的路由节点&…...

闲一品交易平台:SpringBoot技术的新境界

摘 要 随着科学技术的飞速发展&#xff0c;社会的方方面面、各行各业都在努力与现代的先进技术接轨&#xff0c;通过科技手段来提高自身的优势&#xff0c;闲一品交易平台当然也不能排除在外。闲一品交易平台是以实际运用为开发背景&#xff0c;运用软件工程原理和开发方法&…...

【深入浅出】深入浅出transformer(附面试题)

本文的目的是为了帮助大家面试transformer&#xff0c;会结合我的面试经历以及看法去讲解transformer&#xff0c;并非完整的技术细致讲解&#xff0c;介意请移步。 结构 提到transformer网络模型&#xff0c;大家脑海中是否有这张图呢&#xff1f; 这是网络结构中经典的编解…...

苹果重大更新,macOS与iOS同时推出更新!功能真好用

前言 这几天&#xff0c;苹果更新了macOS和iOS的系统版本&#xff01;macOS Sequoia 版本号15.1 iOS版本号18.1 小白更新设备系统的时间已经算比较晚的了&#xff0c;但好在更新得很及时&#xff01;因为这次更新的功能很合小白的胃口啊&#xff01;咱们先来看看本次更新了什么…...

刘艳兵-DBA016-在您的数据库中,SALES表存在于SH用户中,并且启用了统一审计。作为DBA,您成功执行了以下指令:

在您的数据库中&#xff0c;SALES表存在于SH用户中&#xff0c;并且启用了统一审计。作为DBA&#xff0c;您成功执行了以下指令: SQL> CREATE AUDIT POLICY sales_pol ACTIONS select on sh.sales; SQL> AUDIT POLICY sales_pol; 关于SALES_POL审计策略&#xff0c;哪个陈…...

力扣题目解析--整数反转

题目 给你一个 32 位的有符号整数 x &#xff0c;返回将 x 中的数字部分反转后的结果。 如果反转后整数超过 32 位的有符号整数的范围 [−231, 231 − 1] &#xff0c;就返回 0。 假设环境不允许存储 64 位整数&#xff08;有符号或无符号&#xff09;。 示例 1&#xff1a…...

Python热重载工具Reloadium:原理、配置与实战避坑指南

1. 项目概述&#xff1a;重新定义Python热重载的开发体验如果你是一名Python开发者&#xff0c;无论是做Web后端、数据分析脚本还是机器学习模型训练&#xff0c;大概率都经历过这样的场景&#xff1a;修改了一行代码&#xff0c;保存文件&#xff0c;然后不得不手动停止当前运…...

工业级RS-485收发器自主设计:从电路原理到PCB布局的实战指南

1. 项目概述与核心价值 在工业自动化、楼宇控制、能源监控这些领域里&#xff0c;设备之间要“说话”&#xff0c;RS-485总线绝对是那个最可靠、最耐用的“方言”。你可能在PLC、变频器、智能电表或者一堆传感器上见过那两个标着A、B的端子&#xff0c;背后驱动它们的&#xff…...

HTML5中针对离线存储数据的自动清理与过期策略

...

信号净化实战:从基础平滑到智能去噪

1. 信号净化入门&#xff1a;为什么我们需要处理噪声&#xff1f; 第一次接触传感器数据时&#xff0c;我被现实狠狠上了一课——实验室里漂亮的平滑曲线在真实场景中根本不存在。记得去年处理工厂振动传感器数据时&#xff0c;原始信号看起来就像心电图叠加了摇滚乐节奏。这种…...

Dot自定义配置指南:调整模型参数满足个性化需求

Dot自定义配置指南&#xff1a;调整模型参数满足个性化需求 【免费下载链接】Dot Text-To-Speech, RAG, and LLMs. All local! 项目地址: https://gitcode.com/gh_mirrors/dot1/Dot Dot是一款功能强大的本地AI应用&#xff0c;支持文本转语音、RAG&#xff08;检索增强生…...

KafClaw:Apache Kafka增强型命令行客户端,提升数据操作与调试效率

1. 项目概述与核心价值最近在开源社区里&#xff0c;KafClaw 这个项目引起了不少关注。乍一看这个名字&#xff0c;你可能会联想到 Apache Kafka 和某种“爪子”&#xff08;Claw&#xff09;的结合&#xff0c;没错&#xff0c;这正是它的精髓所在。KafClaw 本质上是一个针对 …...

京东自动抢购工具完整指南:5分钟学会Python自动化购物

京东自动抢购工具完整指南&#xff1a;5分钟学会Python自动化购物 【免费下载链接】autobuy-jd 使用python语言的京东平台抢购脚本 项目地址: https://gitcode.com/gh_mirrors/au/autobuy-jd 还在为京东秒杀抢不到心仪商品而烦恼吗&#xff1f;想要在促销活动中轻松抢购…...

数据可视化:使用D3.js创建交互式图表

数据可视化&#xff1a;使用D3.js创建交互式图表 大家好&#xff0c;我是欧阳瑞&#xff08;Rich Own&#xff09;。今天想和大家聊聊数据可视化这个话题。作为一个全栈开发者&#xff0c;我经常需要将复杂的数据以直观的方式展示给用户。D3.js是一个功能强大的数据可视化库&am…...

智能车竞赛实战:从PID控制到图像识别的嵌入式系统开发全解析

1. 项目概述&#xff1a;一场硬核的嵌入式综合实战“飞思卡尔杯”智能车竞赛&#xff0c;这个名字对于很多电子、自动化、计算机相关专业的同学来说&#xff0c;绝对是一个如雷贯耳的存在。它不仅仅是一个比赛&#xff0c;更像是一个集机械、电子、控制、算法于一体的微型“工业…...

【职场】聪明人,从不在公司交朋友

聪明人&#xff0c;从不在公司交朋友“你以为你们是朋友。但有一天你会发现&#xff0c;你们之间站着一个共同的雇主。”一、那个"最懂你"的同事 你们一起骂过同一个领导。 一起在茶水间吐槽过公司文化。 一起在深夜加班时互相打气。 你告诉他你想离职&#xff0c;告…...