[ACTF新生赛2020]usualCrypt

news/2025/1/26 15:54:50/文章来源:https://www.cnblogs.com/murasame520/p/18508933

[ACTF新生赛2020]usualCrypt

总体分析

点进byte_40E0E4函数界面,大概就能猜到解密与base64解密有关了

image-20241027204832026

点进sub_401080()函数

image-20241027204927868

确实是常见的base64加密

但这里有两个自定义函数 sub_401000() sub_401030(a)

sub_401000()

int sub_401000()
{int i; // eaxchar v1; // clfor ( i = 6; i < 15; ++i ){v1 = key[i + 10];key[i + 10] = key[i];key[i] = v1;}return i;
}

我修改了一下变量名

这里主要是对加密表进行了简单的移位变换

key = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'
key_list = list(key)
for i in range(6, 15):v1 = key_list[i + 10]key_list[i + 10] = key_list[i]key_list[i] = v1
key = ''.join(key_list)

得到key = ABCDEFQRSTUVWXYPGHIJKLMNOZabcdefghijklmnopqrstuvwxyz0123456789+/

sub_401030(a)

int __cdecl sub_401030(const char *a1)
{__int64 v1; // raxchar v2; // alv1 = 0i64;if ( strlen(a1) ){do{v2 = a1[HIDWORD(v1)];if ( v2 < 'a' || v2 > 'z' ){if ( v2 < 'A' || v2 > 'Z' )goto LABEL_9;LOBYTE(v1) = v2 + 32;}else{LOBYTE(v1) = v2 - 32;}a1[HIDWORD(v1)] = v1;
LABEL_9:LODWORD(v1) = 0;++HIDWORD(v1);}while ( HIDWORD(v1) < strlen(a1) );}return v1;
}

这是对解密结果进行大小写替换

脚本实现

enc = 'zMXHz3TIgnxLxJhFAdtZn2fFk3lYCrtPC2l9'
enc2 = enc.swapcase()

得到enc2 = ZmxhZ3tiGNXlXjHfaDTzN2FfK3LycRTpc2L9

丢到base64解码软件就行

image-20241027205623500

flag{bAse64_h2s_a_Surprise}

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

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

相关文章

20222303 2024-2025-1 《网络与系统攻防技术》实验三实验报告

一、实验内容 1.正确使用msf编码器,使用msfvenom生成如jar之类的其他文件; 2.能够使用veil,加壳工具; 3.能够使用C + shellcode编程; 4.能够通过组合应用各种技术实现恶意代码免杀; 5.用另一电脑实测,在杀软开启的情况下,可运行并回连成功,注明电脑的杀软名称与版…

服务器和操作系统是什么关系

服务器是具有高性能、稳定性和安全性的硬件设备,用于托管网络应用并提供网络服务,而操作系统则是服务器上的软件部分,它管理和协调服务器硬件与软件资源的使用,提供用户和应用程序的接口,使得用户能够有效地使用和控制服务器。服务器硬件通常包括处理器、内存、硬盘等主要…

SaaS层的多租户和PaaS的多租户在实现技术上有什么区别

SaaS层的多租户和PaaS的多租户在实现技术上存在明显的区别。SaaS层多租户主要关注1、应用层的租户隔离,确保各租户的数据和应用逻辑分离;2、用户界面和体验的定制化;3、数据安全与合规性。而PaaS多租户则侧重于1、资源层的隔离和优化,确保平台上各租户的计算和存储资源分配…

2024-2025-1 20241327 《计算机基础与程序设计》第五周学习总结

作业信息 |2024-2025-1-计算机基础与程序设计)| |-- |- |2024-2025-1计算机基础与程序设计第五周作业)| |快速浏览一遍教材计算机科学概论(第七版),课本每章提出至少一个自己不懂的或最想解决的问题并在期末回答这些问题 |作业正文|https://www.cnblogs.com/shr060414/p/18…

项目管理需要注意哪些要素

项目管理涉及多个关键要素,包括:一、项目目标;二、项目范围;三、项目计划和进度;四、资源分配与管理;五、质量控制;六、风险管理;七、变更管理。其中,项目目标是项目的核心,必须明确、具体且与组织的战略目标相一致。一、项目目标 项目目标是项目存在的意义和预期成果…

充电宝电池容量和额定容量有什么区别

充电宝的电池容量和额定容量是两个经常被混淆的概念,但它们之间存在明显的差异:1.定义不同;2.测试标准与方法有异;3.对用户实际使用的影响;4.标识方式不同;5.如何选择合适的充电宝。了解两者的区别可以帮助消费者更明智地购买和使用充电宝。1、定义不同 电池容量,通常指…

什么是无代码开发平台

无代码开发平台是一种提供了可视化操作和拖拽式组件的软件开发平台,旨在使应用程序的开发变得更加简单和快速,无需编写传统的代码。这类平台的目标是让非技术背景的用户也能够通过简单的操作和配置来创建应用程序,降低了软件开发的门槛,加速了应用开发的速度。一、无代码开…

DRF-Parser解析器组件源码分析和应用

1. 解析器源码分析 注意:以下源码为了方便理解已进行简化,只保留了解析器相关的代码 # 视图函数: class MyView(APIView):def post(self, request):print(self.request.data) # 触发解析流程return Response("ok")解析并获取数据的源码分析:获取解析器的源码分析…

AI之旅-开篇:从云计算之路到AI之旅,从搬上阿里云到留在阿里云

2024年的金秋十月,刚刚被开发者救活的园子在杭州云栖小镇,又写了一篇小学生作文,在经过十一年之痒的纠结之后,做了一个重要决定——继续留在有巨多人使用的阿里云,基于阿里提供的AI服务,建设AI时代的新园子,开启AI之旅2012年的金秋十月,刚刚遭遇服务器硬件故障的园子在…

Linux练习题(四)

1、 修改系统的主机名为(姓名首字母+学号后两位:如张三学号01,则主机名为zs01)、在VMware虚拟网络配置中设计仅主机模式的网段为192.168.X.0/24网段(X为学号后两位取整),并关闭DHCP。更改虚拟机名称为server01,克隆一台redhat 7 虚拟机并命名为client01.两台主机的网络模…

陈彦吉的第二次作业

这个作业属于哪个课程 https://edu.cnblogs.com/campus/zjlg/rjjc这个作业的目标 实现一个命令行文本计数统计程序,能正确统计导入的txt文本中的字符数,单词数等数据姓名-学号 陈彦吉 2022329301139作业码云地址: https://gitee.com/BlueSky295/STFB第二次作业感悟 这学期正好…