【BUUCTF逆向题】[WUSTCTF2020]level3(魔改base64)

一.[WUSTCTF2020]level3

打开IDA反汇编,发现就是base64加密
这里rand就是与&搭配设置奇偶数2分随机
但是根据提示不是标准base64加密
在这里插入图片描述
首先想到魔改密码表,追踪进去,发现没有什么变化啊
尝试对Base64字符串解码也不对
追踪密码表Ctrl+X发现了猫腻,原来改标不在main函数啊,然后发现是交换,写脚本再解密就行了
补充:魔改不一定在主函数中,可能在Start阶段
脚本:

key0 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"
key = list(key0)
for i in range(10):key[i],key[19-i] = key[19-i],key[i]
print("".join(key))

解密:随波逐流,将新的密码表放在密钥,Base64解码
在这里插入图片描述
得到wctf2020{Base64_is_the_start_of_reverse}

补充:调试查看在Base加密时的密码表也可以知道密码表
ELF文件,IDA Linux远程调试,下断点
在这里插入图片描述
找到正确密码表
在这里插入图片描述

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

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

相关文章

有关Java中的接口

学习目标 掌握接口语法理解接口多态熟练使用接口了解接口新特性掌握final关键字了解lambda语法 1.接口语法 1.1 接口概念 从功能上看, 实现接口就意味着扩展了某些功能 接口与类之间不必满足is-a的关系结构 从抽象上看, 接口是特殊的抽象父类 从规则上看, 接口定义者和实…

鸿蒙(openharmony) 5.0 光感接口崩溃

目录 1.背景 2.解决方案 1.背景 使用OpenHarmony 5.0调用光感接口崩溃,返回的值是undefined,接口如下: sensor.on(sensor.SensorId.AMBIENT_LIGHT, (data) => {if (data == null || data == undefined || data.intensity == null || data.intensity == undefined) {ret…

git用法(简易版)

介绍 git是一个版本管理工具 使用方法 建立仓库 第一步 git init:初始化仓库 第二步 git add .:将代码添加到暂存区 第三步 git commit -m "first":为修改添加备注 第四步 git remote add origin 你的url 第五步 git pus…

【C++八股】内存泄漏

内存泄漏(Memory Leak)是指程序在动态分配内存后,未能及时释放已分配的内存,导致这些内存无法被再次使用,从而造成系统内存的浪费。随着时间的推移,内存泄漏可能导致程序性能下降,甚至系统崩溃。…

sqli-labs时间盲注和布尔盲注

1、时间盲注和布尔盲注 在SQL注入攻击中,时间盲注(Time-Based Blind SQL Injection)和布尔盲注(Boolean-Based Blind SQL Injection)是两种常见的技术,用于在无法直接获取数据的情况下推断数据库信息。 2…

数据库脚本MySQL8转MySQL5

由于生产服务器版本上部署的是MySQL5,而开发手里的脚本代码是MySQL8。所以只能降版本了… 升级版本与降级版本脚本转换逻辑一样 MySQL5与MySQL8版本SQL脚本区别 大多数无需调整、主要是字符集与排序规则 MySQL5与MySQL8版本SQL字符集与排序规则 主要操作&…

Flutter 双屏双引擎通信插件加入 GitCode:解锁双屏开发新潜能

在双屏设备应用场景日益丰富的当下,移动应用开发领域迎来了新的机遇与挑战。如何高效利用双屏设备优势,为用户打造更优质的交互体验,成为开发者们关注的焦点。近日,一款名为 Flutter 双屏双引擎通信插件的创新项目正式入驻 GitCod…

Mysql进阶篇(mysqlcheck - 表维护程序)

mysqlcheck的作用 mysqlcheck客户端用于执行表维护,可以对表进行:分析、检查、优化或修复操作。 (1)分析的作用是查看表的关键字分布,能够让 sql 生成正确的执行计划(支持 InnoDB,MyISAM&#x…

如何使用qt开发一个xml发票浏览器,实现按发票样式显示

使用Qt开发一个按发票样式显示的XML发票浏览器,如下图所示样式: 一、需求: 1、按税务发票样式显示。 2、拖入即可显示。 3、正确解析xml文件。 二、实现 可以按照以下步骤进行: 1. 创建Qt项目 打开Qt Creator,创…

Docker上安装Zabbix-server-mysql报错

创建新的zabbix server (mysql)容易,最后一条日志报错 cannot usedatabase"zabbix": its "users" table is empty (is this the Zabbix proxy database?) 往前还有一条关键报错信息 ERROR 1153 (08S01): Got a packe…

树和二叉树_13

树和二叉树_13 一、HZOJ-245二、题解1.引库2.代码 一、HZOJ-245 货仓选址 ​ 在一条数轴上有 N 家商店,他们的坐标分别为 A[1]−A[N]。现在需要在数轴上建立一家货仓,每天清晨,从货仓到每家商店都要运送一车商品。为了提高效率,求…

AI Agent有哪些痛点问题

AI Agent有哪些痛点问题 AI Agent领域有哪些知名的论文 目录 AI Agent有哪些痛点问题AI Agent领域有哪些知名的论文难以将自然语言与程序语言结合,跨平台兼容性差,缺乏有效的生产级干预机制具身 AI 在实现快速知识传播方面存在困难,难以从人类和 AI 专家中快速学习并实时模…

c++TinML转html

cTinML转html 前言解析解释转译html类定义开头html 结果这是最终效果(部分): ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/6cf6c3e3c821446a84ae542bcc2652d4.png) 前言 在python.tkinter设计标记语言(转译2-html)中提到了将Ti…

阿里云OSS创建,及修改读写权限为公共读。

1、创建Bucket 2、创建时需要注意点 〇 名字区域等略过不讲 ①默认为同城冗余,但计费标准更高,如果对数据安全性要求不严格,可以改为本地。 ②如果想开启公共读,会发现创建时改不了,暂时先不改,完成创建…

深入解析A2DP v1.4协议:蓝牙高质量音频传输的技术与实现

1. A2DP概述 A2DP(Advanced Audio Distribution Profile)是一种高质量音频流媒体协议,旨在实现高质量音频内容的分发,通常用于通过蓝牙设备传输音频数据,例如将音乐从便携式播放器传输到耳机或扬声器。与传统的蓝牙语…

Vulhub靶机 ActiveMQ 反序列化漏洞(CVE-2015-5254)(渗透测试详解)

一、开启vulhub环境 docker-compose up -d 启动 docker ps 查看开放的端口 漏洞版本:Apache ActiveMQ 5.x ~ Apache ActiveMQ 5.13.0 二、访问靶机IP 8161端口 默认账户密码 admin/admin,登录 此时qucues事件为空 1、使用jmet-0.1.0-all.jar工具将…

JVM——垃圾回收器

目录 垃圾回收器 垃圾回收器的组合关系: 年轻代-Serial垃圾回收器: 老年代-SerialOld垃圾回收器: 年轻代-ParNew垃圾回收器: 老年代-CMS垃圾回收器: 年轻代-Parallel Scavenge:【JDK8默认】 老年代…

数据库第三次作业

第一题: 学生表:Student (Sno, Sname, Ssex , Sage, Sdept) 学号,姓名,性别,年龄,所在系 Sno为主键 课程表:Course (Cno, Cname,) 课程号,课程名 Cno为主键 学生选课表:S…

类与对象(OOP)

类(Class) 类是对象的模板或蓝图,用来描述对象的属性和行为。 动态与静态是同一张图像,最终效果也是相同 类的组成分别由: 属性(成员变量):描述对象的状态。 方法(成员方法):描述对象的行为。 构造函数:用于创建对象…

C++ 的 get 和 get_if

1 std::get() 1.1 用于 std::pair 和 std::tuple ​ 在介绍 std::pair 和 std::tuple 的时候已经介绍过如何用 std::get() 获取对应位置上的值&#xff0c;用法大致如此&#xff1a; std::pair<int, double> p(42, 5.1); assert(std::get<0>(p) p.first); std:…