【buuctf-gakki】

news2024/9/22 13:25:37

binwalk 查看图片,发现有 rar 文件,提取后如上图所示(flag.txt为已经解压后出来的)其中这个 rar 需要用 archpr爆破一下

打开后一个 flag.txt

一堆杂乱无章的字符,需要用到 python 脚本进行词频统计,我们采用两种输出法,见下图:

最后我们来详细分析一下这段代码

# 导入 Counter 类,用于统计字符频率
from collections import Counter

# 打开文件 'flag.txt' 以读取模式
with open('flag.txt', 'r') as file:
    
    # 读取文件内容
    text = file.read()
    
    # 使用 Counter 统计字符频率
    chars_count = Counter(text)
    
    # 对字符频率进行降序排序,得到一个包含元组的列表
    sorted_chars_desc = sorted(chars_count.items(), key=lambda x: x[1], reverse=True)
    
    # 遍历排序后的字符频率列表,输出字符和对应的次数
    for char, count in sorted_chars_desc:
        print(char, count)
    
    # 使用列表推导式将字符按照出现次数降序连接成一个字符串
    print_data = ''.join([char for char, count in sorted_chars_desc])
    
    # 输出按照字符出现次数降序排列的字符串
    print(print_data)

1.collections 模块中的 Counter 类是 Python 中用于计数可哈希对象(例如列表中的元素,字符串中的字符)出现次数的工具

2.chars_count=Count(text)的目的是使用 Counter 类统计字符串text中每个字符的出现次数,并将结果存储在 chars_count 变量中。举例来看,若text = "abracadabra",通过使用 Counter 类的构造函数,将字符串 text 传递给它,创建了一个 Counter 对象 chars_count。这个对象是一个字典,其中每个键是字符串中的一个字符,而对应的值是该字符在字符串中出现的次数。对于字符串 "abracadabra",chars_count 可能的值是 Counter({'a': 5, 'b': 2, 'r': 2, 'c': 1, 'd': 1})。这表示字符 'a' 出现了5次,字符 'b' 出现了2次,以此类推。

3.chars_count.items() 返回一个包含 Counter 对象中所有键值对的视图。例如,如果 chars_countCounter({'a': 3, 'b': 2, 'c': 1}),那么 chars_count.items() 返回的视图可能是 dict_items([('a', 3), ('b', 2), ('c', 1)])。每个键值对表示一个字符和它在字符串中出现的次数。sorted() 函数用于对可迭代对象进行排序。在这里,我们对 chars_count.items() 返回的键值对进行排序。参数 key=lambda x: x[1] 表示排序的关键是元组的第二个元素,即出现的次数。reverse=True 表示降序排序。

4.使用一个 for 循环遍历了 sorted_chars_desc 列表中的每个元组(每个元组都代表一个字符及其出现次数),然后在每次迭代中打印字符和对应的出现次数。

5.print_data一行,使用列表推导式和 join 方法将排序后的字符按照出现次数降序连接成一个字符串。列表推导式 [char for char, count in sorted_chars_desc] 从每个元组中取出字符,构成一个新的列表。''.join(...) 将这个列表中的字符连接成一个字符串,'' 中的空字符串表示连接时不使用分隔符。

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

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

相关文章

GPT4引领科研新时代:无限学习在AI领域的探索与实践

【最新增加谷歌Gemini模型讲解、自定义GPTs及AI领域中的集中大模型的最新技术】 2023年随着OpenAI开发者大会的召开,最重磅更新当属GPTs,多模态API,未来自定义专属的GPT。微软创始人比尔盖茨称ChatGPT的出现有着重大历史意义,不亚…

canvas坐标系统 webgl坐标系统 uv纹理坐标系统 原点

一、canvas原点在左上角,x轴正方向向右,y轴正方向向下,一个点对应一个像素 二、webgl原点在正中间,x轴正方向向右,y轴正方向向上,数据显示范围在[-1,1]之间,超过此范围不显示数据 三、uv原点在左…

【C++】用文件流的put和get成员函数读写文件

题目 编写一个mycopy程序,实现文件复制的功能。用法是在控制台输入: mycooy 源文件名 目标文件名 参数介绍 m a i n main main 函数的参数有两个,一个int类型参数和一个指针数组。 a r g c argc argc 表示参数的个数。参数为void时 a r g …

Jquery操作DOM对象

文章目录 目录 文章目录 本章目标 一.DOM操作分类 二.JQuery中的DOM操作 内容操作 属性值操作 节点操作 节点属性操作 节点遍历 总结 本章目标 使用Jquery操作网页元素使用JQuery操作文本与属性值内容使用JQuery操作DOM节点使用Jquery遍历DOM节点使用JQuery操作CSS-DOM 一…

linux下cmake的使用

linux下cmake的使用 总体测试代码 cmake是一个项目构建工具,帮助编译代码,生成可执行文件。 源代码到可执行文件需要经历的步骤: 总体 要使用cmake来编译项目,最重要的就是CmakeLists.txt文件的编写: ①不用链接其它…

计算机网络之传输层 + 应用层

.1 UDP与TCP IP中的检验和只检验IP数据报的首部, 但UDP的检验和检验 伪首部 首部 数据TCP的交互单位是数据块, 但仍说TCP是面向字节流的, 因为TCP仅把应用层传下来的数据看成无结构的字节流, 根据当时的网络环境组装成大小不一的报文段.10秒内有1秒用于发送端发送数据, 信道…

【一】【算法分析与设计】基础测试

排列式 题目描述 7254是一个不寻常的数,因为它可以表示为7254 39 x 186,这个式子中1~9每个数字正好出现一次 输出所有这样的不同的式子(乘数交换被认为是相同的式子) 结果小的先输出;结果相同的,较小的乘…

rust学习(tokio协程分析二)

例子: 我们如果使用new_current_thread来创建tokio的协程运行runtime时, let rt tokio::runtime::Builder::new_current_thread().enable_all().build().unwrap(); 发现只有调用rt.block_on(...)才能触发。这里我们分析一下为何在new_current_thread…

【C++初识】语句

文章目录 1.注释 变量 常量 关键字 标识符命名规则 数据类型 sizeof关键字 数据的输入 运算符2.程序流程结构2.1选择结构2.2循环结构2.21while{循环条件}{循环语句};//满足循环条件,执行循环语句2.22do{循环语句}while{循环条件};//do....whi…

你不可不知的数据安全词汇都在这!

关注公众号,回复关键词 “数据安全”,即可获取报告完整版 随着数字化时代的快速发展,数据安全已成为全球企业和组织面临的一项重大挑战。在这一背景下,我们深感需要有一个统一的、全面的数据安全术语基础,以便行业从业…

c++函数指针 回调函数

目录 函数指针 ​编辑 实例 函数指针作为某个函数的参数 实例 std::function轻松实现回调函数 绑定一个函数 作为回调函数 作为函数入参 函数指针 函数指针是指向函数的指针变量。 通常我们说的指针变量是指向一个整型、字符型或数组等变量,而函数指针是指向…

基于SpringBoot的综合小区管理系统的设计与实现

文章目录 项目介绍主要功能截图:部分代码展示设计总结项目获取方式 🍅 作者主页:超级无敌暴龙战士塔塔开 🍅 简介:Java领域优质创作者🏆、 简历模板、学习资料、面试题库【关注我,都给你】 &…

【前端素材】推荐优质后台管理系统 Greeva平台模板(附源码)

一、需求分析 1、系统定义 后台管理系统是一种用于管理网站、应用程序或系统的管理界面,通常由管理员和工作人员使用。它提供了访问和控制网站或应用程序后台功能的工具和界面,使其能够管理用户、内容、数据和其他各种功能。 2、功能需求 后台管理系…

vulhub中JBoss 5.x/6.x 反序列化漏洞复现(CVE-2017-12149)

该漏洞为 Java反序列化错误类型,存在于 Jboss 的 HttpInvoker 组件中的 ReadOnlyAccessFilter 过滤器中。该过滤器在没有进行任何安全检查的情况下尝试将来自客户端的数据流进行反序列化,从而导致了漏洞。 漏洞复现 利用攻击进行漏洞利用yunxu1/jboss-_…

xsslabs第七关

源码 <!DOCTYPE html><!--STATUS OK--><html> <head> <meta http-equiv"content-type" content"text/html;charsetutf-8"> <script> window.alert function() { confirm("完成的不错&#xff01;"…

DSP软件架构

&#x1f3ac;个人简介&#xff1a;一个全栈工程师的升级之路&#xff01; &#x1f4cb;个人专栏&#xff1a;计算机杂记 &#x1f380;CSDN主页 发狂的小花 &#x1f304;人生秘诀&#xff1a;学习的本质就是极致重复! 目录 一 数字信号处理基本运算 二 DSP软件架构 1 哈…

nginx如何配置命令启动

我安装好nginx后&#xff0c;发现不能使用systemctl start nginx或者systemctl stop nginx来控制启停 解决方法如下 首先要建一个nginx.pid的文件 一般是建在 /var/run/这个路径下面 sudo touch /var/run/nginx.pid 添加权限 sudo chmod 644 /var/run/nginx.pid可以进入到…

136.乐理基础-旋律音程、和声音程、自然音程、变化音程

内存参考于&#xff1a;三分钟音乐社 上一个内容&#xff1a;135.乐理基础-半音是小二度吗&#xff1f;全音是大二度吗&#xff1f;三全音-CSDN博客 上一个内容里练习的答案&#xff1a; 旋律音程 旋律音程指的是音程中两个音&#xff0c;一前一后&#xff0c;有先后顺序依次…

Linux调试器-gdb使用与冯诺依曼体系结构

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言 Linux调试器-gdb使用 1. 背景 2. 开始使用 冯诺依曼体系结构 总结 前言 世上有两种耀眼的光芒&#xff0c;一种是正在升起的太阳&#xff0c;一种是正在努力学…

java009 - Java调试debugger

1、debugger概述 程序的调试工具&#xff0c;用于查看追踪程序的执行流程&#xff0c;也可以调试程序。 2、debugger调试流程 2.1 如何加断点 2.2 如何运行加了断点的程序 在代码区域右键---->debugger执行 2.3 看哪里 看console窗口 2.4 点哪里 点step into(F7)这个箭…