小端序题目——[LitCTF 2023]debase64

news/2025/1/21 2:53:53/文章来源:https://www.cnblogs.com/demo41/p/18238612

还挺有价值的,记录一下

题目

DIE

PE文件在Windows操作系统下默认使用小端序

IDA

main函数

绿框:输入长度要20

红框:base64加密

黄框:加密后的结果要与关键数据相等

 

 获取数据,我一般喜欢调试看栈,这样就少一次翻转了

 取出15个数据:0x46, 0xED, 0x18, 0x96, 0x56, 0x9E, 0xD2, 0x72, 0xB2, 0xB3, 0x80, 0x70, 0xFF, 0x00, 0x00

根据 base64 加密规则,输入数据的字节数必须是 3 的倍数

输入如果是12个,加密后16个

12*8=96
96/6=16

输入如果是15个,加密后20个

15*8=120
120/6=20

综上,关键数据12个:

0x46, 0xED, 0x18, 0x96, 0x56, 0x9E, 0xD2, 0x72, 0xB2, 0xB3, 0x80, 0x70

base64加密后: Ru0Yllae0nKys4Bw 

 因为这是 32 位程序及小端序,故每 4 个字节倒一次顺序,得到

 Y0uReallyKn0wB4s

根据题目提示,后面还有3个’=‘,输入需要20位,已经得出19位,还差1位

可以根据MD5爆破

EXP

1 import hashlib
2 en_flag = 'Y0uReallyKn0wB4s'
3 for i in range(32,127):
4     end = en_flag + chr(i) + '==='
5     if hashlib.md5(end.encode()).hexdigest() == '5a3ebb487ad0046e52db00570339aace':
6         print(end)
7         exit()

flag

Y0uReallyKn0wB4s3===

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

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

相关文章

【闲话】高考集训之训什么

写的有些杂,凑活看吧好像高考语文作文被学校和《意林》押中题了,主题是“人工智能”,大势所趋。 贴一张奥奇海报(找不到具体来源了)来高考助力吧。本文来自博客园,作者:hzoi_Shadow,原文链接:https://www.cnblogs.com/The-Shadow-Dragon/p/18238551,未经允许严禁转载…

C++文件/流

C++文件读写(文本文件/二进制文件) 一、前言 常见的文件类型可分为两种:文本文件和二进制文件。 文本文件的阅读相对容易,可以使用记事本/Notepad++/VS Code等应用程序直接打开阅览;然而二进制文件由0/1序列组成,直接打卡二进制文件通常是乱码状态。如果需要读取二进制文…

SpringAMQP使用管理RabbitMQ的五种消息模型

使用SpringAMQ实现五种消息队列模型1.普通队列 2.工作队列(WorkQueue) 发布订阅=>根据交换机的不同分为三种 3.订阅模型之Fanout(广播) 4.订阅模型之Direct(路由) 5.订阅模型之Topic(话题) 使用前导: 1.在生产者和消费者项目上分别导入RabbitMQ依赖<!--AMQP依赖,包含Rab…

树开下拉列表数据源生成

改自这位兄台的一段代码 https://www.cnblogs.com/xiayang/archive/2010/07/19/1780566.html1 /// <summary>2 /// 生成一个树形的表样,3 /// </summary>4 /// <param name="dtNodeSets">菜单记录数据所在的表</param>5 …

玄机应急响应-第二章

日志分析-apache日志分析 一,提交当天访问次数最多的IP,即黑客IP:129 ::16555 192.168.200.21 192.168.200.2115 192.168.200.381 192.168.200.48$ cat access.log.1|awk -F {print $1}|sort|uniq -cflag{192.168.200.2}二,黑客使用的浏览器指纹是什么,提交指纹的md5:12 …

C#异步编程是怎么回事(番外)

在上一篇通信协议碰到了多线程,阻塞、非阻塞、锁、信号量...,会碰到很多问题。因此我感觉很有必要研究多线程与异步编程。 首先以一个例子开始我说明一下这个例子。 这是一个演示异步编程的例子。输入job [name],在一个同步的Main方法中,以一发即忘的方式调用异步方法Start…

【日记】遇到了一个 “不愿睁眼看世界也没受过社会毒打” 的逆天群友(464 字)

正文今天坐在柜台玩了一天手机…… 手机都玩没电了快。下午在劝一个群友睁眼看世界,实在劝不动。他真的太逆天了,我不清楚这么高学历的人,怎么能说出这么天真的话。逆天又离谱。晚上的时间几乎全在做家务。平时晚上都是跳舞来着,没时间也不想动。意外地花了挺长时间。扫了地…

友链

Blogroll 友链愿我如星君如月,夜夜流光相皎洁。

Linux 中date命令

date主要用于显示日期,若是不以加号作为开头,则表示要设定时间,而时间格式为 MMDDhhmm[[CC]YY][.ss],其中 MM 为月份,DD 为日,hh 为小时,mm 为分钟,CC 为年份前两位数字,YY 为年份后两位数字,ss 为秒数。 001、最基本的用法[root@PC1 test2]# date ## 输出日…

Linux 中date

date主要用于显示日期,若是不以加号作为开头,则表示要设定时间,而时间格式为 MMDDhhmm[[CC]YY][.ss],其中 MM 为月份,DD 为日,hh 为小时,mm 为分钟,CC 为年份前两位数字,YY 为年份后两位数字,ss 为秒数。 001、最基本的用法[root@PC1 test2]# date ## 输出日…

类加载器

双亲委派机制类加载器中的核心方法 loadClass protected Class<?> loadClass(String name, boolean resolve) throws ClassNotFoundException { synchronized (getClassLoadingLock(name)) { // First, check if the class has already been loaded Class<?&g…

IceRPC之依赖注入快乐的RPC

作者引言很高兴啊,我们来到了IceRPC之依赖注入>快乐的RPC,基础引导,打好基础,才能让自已不在迷茫,快乐的畅游世界。依赖注入和IceRPC了解 IceRPC (C#) 如何为依赖注入(DI)提供支持。DI作为可选功能 DI的第一条规则是:不要引入对DI的依赖。 IceRPC (C#) 将此规则放首要…