攻防世界testre做法(考点:base58)
在做这道题目之前,我们先来简单了解一下base64加密和base58加密,先来说一些预备知识,bit为1个位,即一个0或1,八个位组成一个字节,即八个二进制数。
base64编码原理:1,在使用base64加密前,通常会定义一个数组,数组内容大致为A~Z,a~z,0~9,以及字符/+= 2,将待转换的字符串每三个字节分为一个组,三个字节,即24个二进制数,此时再每6个二进制数分为一组,然后再在每组的首位添加上两个0,这样一组就变成8位了,也就是一个字节 3,最后根据base64编码对照表,获得相对应的值 这边就先不拓展两个字节和一个字节的情况了
如何根据代码判断是否是base64编码呢?首先,我们看代码中有没有定义字符串或者数组,其中包含0~9,A~Z,a~z,像这样的,可以直接预判这是base64编码了,然后再看代码中有没有>>8和<<6,若是有,也可以这么猜了。
base58编码原理:基本原理同base64差不多,只是少了+=/字符,例如1234的base58编码,先是对1234/58得到结果为21,模16,再是用21/58,得到结果0,模21,最后,对照base58的编码表,将21和16在表中先后对应起来,就得到两个字符,两个字符就是1234的base58编码
如何根据代码判断是否是base58编码呢?也是先看有没有数组的定义,再看有没有>>8 <<6以及log数,又或者是%58这种关键字样,直接大胆猜测啊,好了,来做题
首先,查壳,64bit,丢进ida64中,然后进入main函数,发现其中有两个函数
直接进入下面这个函数
大胆猜测这是base58加密
这些字符集为base58编码后的结果,连接起来,注意字符串连接的先后顺序,仔细看,要分清连接的先后顺序,最后放到base58解密的网站上去解密
就得到flag了
相关文章:
攻防世界testre做法(考点:base58)
在做这道题目之前,我们先来简单了解一下base64加密和base58加密,先来说一些预备知识,bit为1个位,即一个0或1,八个位组成一个字节,即八个二进制数。 base64编码原理:1,在使用base64加…...
计算机视觉与模式识别实验1-1 图像的直方图平衡
文章目录 🧡🧡实验流程🧡🧡1.读入图像‘rice.png’,在一个窗口中显示灰度级n64,128和256的图像直方图。2.调解图像灰度范围,观察变换后的图像及其直方图的变化。3.分别对图像‘pout.tif’和‘ti…...
【C++课程学习】:C++入门(函数重载)
🎁个人主页:我们的五年 🔍系列专栏:C课程学习 🎉欢迎大家点赞👍评论📝收藏⭐文章 目录 🌈函数重载: 🍉1.参数个数不同: 🍉2.参数…...
skywalking介绍及搭建
链路追踪框架比对: skywalking安装部署: 下载地址:Downloads | Apache SkyWalking 配置微服务与skywalking整合: copy agent/optional-plugins/apm-spring-cloud-getway-xx.jar到plugins,然后重启skywalking 监控界面…...
分析示例 | Simufact焊接工艺仿真变形精确预测汽车结构
导语 焊接是汽车制造过程中一个关键环节,白车身、发动机、底盘和变速箱等都离不开焊接工艺的应用,主要涉及气保焊、电阻点焊、激光焊、电子束焊等多种焊接工艺。由于汽车车型众多、成形结构复杂、汽车制造质量、效率、成本等方面的综合要求。如何高效、…...
模式识别选择题
影响K-均值聚类算法效果的主要因素之一是什么? A. 初始聚类中心的选取 B. 样本输入顺序 C. 模式相似性测度 D. 分类准则 答案:A支持向量机(SVM)在处理非线性问题时,通常使用什么方法? A. 引入核函数 B. 增加…...
【Java基础】线程方法
start():启动线程,使线程进入就绪状态。 run():线程执行的代码逻辑,需要重写该方法。 停止线程 void interrupt() 中断线程,让它重新去争抢cpu 如果目标线程长时间等待,则应该使用interrupt方法来中断等待…...
C++之动态数组
C给我们提供了一个叫Vector的类,这个Vector在std命名空间中。这个Vector有点像一个集合,一个不强制其实际元素具有唯一性的集合,和数组一样,但是和C普通的数组又不太一样,和标准的数组不同当你创建Vector时,…...
使用 image-combiner 开源项目实现对海报图片的生成
1:gitee 项目地址 image-combiner: ImageCombiner是一个专门用于Java服务端图片合成的工具,没有很复杂的功能,简单实用,从实际业务场景出发,提供简单的接口,几行代码即可实现图片拼合(当然用于…...
【缓存】框架层常见问题和对策
缓存是为了加快读写速度,再了解redis这类框架层的缓存应用之前,我们不妨先思考下操作系统层面的缓存解决方案,这样有助于我们更深的理解缓存,哪些是系统层面的,哪些是服务层面。 以下是一些常见的缓存问题及其解决方案…...
【FAS】《CN103106397B》
原文 CN103106397B-基于亮瞳效应的人脸活体检测方法-授权-2013.01.19 华南理工大学 方法 / 点评 核心方法用的是传统的形态学和模板匹配,亮点是双红外发射器做差分 差分:所述FPGA芯片控制两组红外光源(一近一远)交替亮灭&…...
3D按F3为什么显示不出模型?---模大狮模型网
对于3D建模软件的用户来说,按下F3键通常是用来显示或隐藏模型的功能之一。然而,有时当按下F3键时,却无法正确显示模型,这可能会让用户感到困惑。模大狮将探讨这种情况发生的可能原因以及解决方法,帮助设计师们更好地理…...
C++设计模式——Adapter适配器模式
一,适配器模式简介 适配器模式是一种结构型设计模式,用于将已有接口转换为调用者所期望的另一种接口。 适配器模式让特定的API接口可以适配多种场景。例如,现有一个名为"Reader()"的API接口只能解析txt格式的文件,给这…...
Python文本处理利器:jieba库全解析
文章目录 Python文本处理利器:jieba库全解析第一部分:背景和功能介绍第二部分:库的概述第三部分:安装方法第四部分:常用库函数介绍1. 精确模式分词2. 全模式分词3. 搜索引擎模式分词4. 添加自定义词典5. 关键词提取 第…...
【C/C++】C语言如何实现类似C++的智能指针?
在C中,智能指针是为了自动化资源管理而引入的工具。比如std::unique_ptr和std::shared_ptr等,它们管理着所持有对象的生命周期,可以在智能指针被销毁时自动释放其所持有的资源。在C语言中,虽然没有直接的智能指针概念,…...
九大微服务监控工具详解
Prometheus Prometheus 是一个开源的系统监控、和报警工具包,Prometheus 被设计用来监控“微服务架构”。 主要解决: 监控和告警:Prometheus 可以对系统、和应用程序进行实时监控,并在出现问题时发送告警;数据收集和…...
java aliyun oss上传和下载工具类
java aliyun oss上传和下载工具类 依赖 <dependency><groupId>com.aliyun.oss</groupId><artifactId>aliyun-sdk-oss</artifactId><version>3.8.0</version></dependency>工具类 import com.alibaba.fastjson.JSON; import c…...
P7 品牌管理
逆向生成页面 新增菜单—商品系统的品牌管理 —product/brand 在代码生成器得到的文件中, main-resources-src-views-modules-product brand.vue、brand-add-or-update.vue放到category.vue同级vue文件有新增、删除按钮,但页面未显示,是因…...
C语言详解(动态内存管理)1
Hi~!这里是奋斗的小羊,很荣幸您能阅读我的文章,诚请评论指点,欢迎欢迎 ~~ 💥💥个人主页:奋斗的小羊 💥💥所属专栏:C语言 🚀本系列文章为个人学习…...
106.网络游戏逆向分析与漏洞攻防-装备系统数据分析-在UI中显示装备与技能信息
免责声明:内容仅供学习参考,请合法利用知识,禁止进行违法犯罪活动! 如果看不懂、不知道现在做的什么,那就跟着做完看效果,代码看不懂是正常的,只要会抄就行,抄着抄着就能懂了 内容…...
RestClient
什么是RestClient RestClient 是 Elasticsearch 官方提供的 Java 低级 REST 客户端,它允许HTTP与Elasticsearch 集群通信,而无需处理 JSON 序列化/反序列化等底层细节。它是 Elasticsearch Java API 客户端的基础。 RestClient 主要特点 轻量级ÿ…...
Admin.Net中的消息通信SignalR解释
定义集线器接口 IOnlineUserHub public interface IOnlineUserHub {/// 在线用户列表Task OnlineUserList(OnlineUserList context);/// 强制下线Task ForceOffline(object context);/// 发布站内消息Task PublicNotice(SysNotice context);/// 接收消息Task ReceiveMessage(…...
mongodb源码分析session执行handleRequest命令find过程
mongo/transport/service_state_machine.cpp已经分析startSession创建ASIOSession过程,并且验证connection是否超过限制ASIOSession和connection是循环接受客户端命令,把数据流转换成Message,状态转变流程是:State::Created 》 St…...
《Playwright:微软的自动化测试工具详解》
Playwright 简介:声明内容来自网络,将内容拼接整理出来的文档 Playwright 是微软开发的自动化测试工具,支持 Chrome、Firefox、Safari 等主流浏览器,提供多语言 API(Python、JavaScript、Java、.NET)。它的特点包括&a…...
Auto-Coder使用GPT-4o完成:在用TabPFN这个模型构建一个预测未来3天涨跌的分类任务
通过akshare库,获取股票数据,并生成TabPFN这个模型 可以识别、处理的格式,写一个完整的预处理示例,并构建一个预测未来 3 天股价涨跌的分类任务 用TabPFN这个模型构建一个预测未来 3 天股价涨跌的分类任务,进行预测并输…...
【Go】3、Go语言进阶与依赖管理
前言 本系列文章参考自稀土掘金上的 【字节内部课】公开课,做自我学习总结整理。 Go语言并发编程 Go语言原生支持并发编程,它的核心机制是 Goroutine 协程、Channel 通道,并基于CSP(Communicating Sequential Processes࿰…...
Axios请求超时重发机制
Axios 超时重新请求实现方案 在 Axios 中实现超时重新请求可以通过以下几种方式: 1. 使用拦截器实现自动重试 import axios from axios;// 创建axios实例 const instance axios.create();// 设置超时时间 instance.defaults.timeout 5000;// 最大重试次数 cons…...
(转)什么是DockerCompose?它有什么作用?
一、什么是DockerCompose? DockerCompose可以基于Compose文件帮我们快速的部署分布式应用,而无需手动一个个创建和运行容器。 Compose文件是一个文本文件,通过指令定义集群中的每个容器如何运行。 DockerCompose就是把DockerFile转换成指令去运行。 …...
[Java恶补day16] 238.除自身以外数组的乘积
给你一个整数数组 nums,返回 数组 answer ,其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。 题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整数范围内。 请 不要使用除法,且在 O(n) 时间复杂度…...
C++.OpenGL (14/64)多光源(Multiple Lights)
多光源(Multiple Lights) 多光源渲染技术概览 #mermaid-svg-3L5e5gGn76TNh7Lq {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-3L5e5gGn76TNh7Lq .error-icon{fill:#552222;}#mermaid-svg-3L5e5gGn76TNh7Lq .erro…...
