GXYCTF2019:gakki

部署运行你感兴趣的模型镜像

把题目给的附件解压后给了张图片,顺带着瞟一眼属性,没有值得注意的

binwalk检测一手,看见有个rar压缩包

提取出来的压缩包是有密码的,但是题目并没有给出获取密码的途径,所以先爆破试试,用最常用的四位数爆破

果然是四位数密码的爆破,flag.txt里面是一大串的乱码

用python脚本进行字频统计

import collections

def count_characters(filename):
    with open(filename, 'r', encoding='utf-8') as file:
        content = file.read()
        counter = collections.Counter(content)
        return counter

def print_sorted_counts(counter):
    for char, count in counter.most_common():
        print(f"'{char}': {count}")

def main():
    filename = input("请输入文本文件的路径:")
    try:
        char_counts = count_characters(filename)
        print_sorted_counts(char_counts)
    except FileNotFoundError:
        print("文件未找到,请检查路径是否正确。")
    except Exception as e:
        print(f"发生错误:{e}")

if __name__ == "__main__":
    main()

flag:flag{gaki_IsMyw1fe}

您可能感兴趣的与本文相关的镜像

Python3.8

Python3.8

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

### BUUCTF Misc Gakki 题目解析 BUUCTF中的Misc(杂项)部分通常涉及多种类型的解题技巧,例如编码转换、隐写术、密码学基础等。对于题目“gakki”,其核心在于对摩尔斯电码的解密和进一步处理[^1]。 从提供的摩尔斯电码字符串中可以看出,这是一个经过编码的信息。通过解码工具或手动对照摩尔斯电码表,可以将其翻译为可读文本。以下是解码后的初步结果: ```plaintext THEFLAGISNOTHERE001224683579GAKKI ``` 此字符串包含明显的标志“The flag is not here”,这是CTF竞赛中常见的干扰信息设计。真正的Flag往往隐藏在后续处理步骤中。根据常见规则,可能需要对数字序列或字母进行额外操作,例如Base64解码、十六进制转换或其他编码形式。 以下是一个简单的Python脚本用于解码摩尔斯电码,并展示如何进一步处理得到的字符串: ```python morse_code_dict = { '.-': 'A', '-...': 'B', '-.-.': 'C', '-..': 'D', '.': 'E', '..-.': 'F', '--.': 'G', '....': 'H', '..': 'I', '.---': 'J', '-.-': 'K', '.-..': 'L', '--': 'M', '-.': 'N', '---': 'O', '.--.': 'P', '--.-': 'Q', '.-.': 'R', '...': 'S', '-': 'T', '..-': 'U', '...-': 'V', '.--': 'W', '-..-': 'X', '-.--': 'Y', '--..': 'Z', '-----': '0', '.----': '1', '..---': '2', '...--': '3', '....-': '4', '.....': '5', '-....': '6', '--...': '7', '---..': '8', '----.': '9' } def decode_morse(morse_code): morse_words = morse_code.split(' ') decoded_message = ''.join([morse_code_dict[char] if char in morse_code_dict else '' for char in morse_words]) return decoded_message morse_string = "...../-.../-.-./----./..---/...../-..../....-/----./-.-./-.../-----/.----/---../---../..-./...../..---/./-..../.----/--.../-../--.../-----/----./..---/----./.----/----./.----/-.-./" morse_parts = [part for part in morse_string.split('/') if part] decoded_result = ''.join(decode_morse(part) for part in morse_parts) print(decoded_result) ``` 运行上述代码将输出解码后的字符串。如果进一步分析,可能需要对数字或字母应用其他编码规则,例如ASCII转换或ROT加密算法。 最终答案通常以`flag{...}`格式呈现。对于此题,建议尝试对解码后的数字和字母组合进行多种编码测试,直至获得正确的Flag。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值