subrat243/picoCTF_PWCracker2

GitHub: subrat243/picoCTF_PWCracker2

为 picoCTF 挑战开发的十六进制转 ASCII 转换工具,支持纯 hex 和 0x 前缀格式,辅助密码还原与 flag 解码。

Stars: 0 | Forks: 0

# Hex 到 ASCII 转换器 (CTF 工具集) 为解决 picoCTF 挑战(例如 PW Crack 2)而创建的工具集,在分析密码或 flag 时,需要将编码值(hex / 0x hex)转换为可读的 ASCII。 ## PW Crack 2 ### 描述 你能破解密码以获取 flag 吗? 下载密码检查器和加密的 flag 文件。这两个文件必须放置在同一目录下。 此挑战的目标是分析密码检查器脚本,了解密码是如何构建的,并恢复正确的密码以解密 flag。 ## 解决策略 1. **分析提供的脚本** 第一步是检查挑战中提供的密码检查器脚本。 仔细阅读代码,了解密码是如何验证的。 cat level2.py 2. **理解密码构建方式** 在分析脚本时,观察密码是如何生成的。 在这个挑战中,密码是使用带有十六进制值的 Python `chr()` 函数构建的。 示例模式: chr(0x33) + chr(0x39) + chr(0x63) + chr(0x65) 3. **将十六进制值转换为 ASCII** 每个 `chr()` 值代表一个 ASCII 字符。 转换它们即可显示出实际的密码字符串。 示例: 0x33 → 3 0x39 → 9 0x63 → c 0x65 → e 结果: 39ce 4. **自动化转换** 为了简化解码,在此仓库中创建了辅助脚本来转换: * 纯 hex → ASCII * `0x` 格式的 hex → ASCII 这些脚本允许在 CTF 分析期间进行快速解码。 5. **使用正确的密码** 重构密码后,使用恢复的值运行密码检查器。 如果密码正确,脚本将解密已加密的 flag。 ### 文件 ``` level2.py level2.flag.txt.enc ``` ### 使用的工具 * Python * Bash * Hex 到 ASCII 转换工具 * 基础脚本分析 ### 调试 / 说明 在分析过程中,可能需要将脚本内部的编码值从十六进制转换为 ASCII。可以使用本仓库中的辅助脚本快速解码这些值。 ## Hex 到 ASCII 转换器 用于将十六进制值转换为 ASCII 文本的简单工具。 ### 功能 * Python 和 Bash 实现 * 支持纯 hex 字符串 * 支持 `0x` 前缀的 hex 值 * 适用于 CTF 和密码/flag 解码 ## 用法 ### Python — 纯 Hex ``` python3 python/hex_to_ascii_plain.py ``` ### Python — 0x 格式 ``` python3 python/hex_to_ascii_0x.py ``` ### Bash — 纯 Hex ``` bash bash/hex_to_ascii_plain.sh ``` ### Bash — 0x 格式 ``` bash bash/hex_to_ascii_0x.sh ``` ## 单行命令 ### Python(纯 Hex) ``` python3 -c "print(bytes.fromhex(input().strip()).decode())" ``` ### Python(0x 格式) ``` python3 -c "import re;print(''.join(chr(int(x,16)) for x in re.findall(r'0x[0-9a-fA-F]+', input())))" ``` ### Bash(纯 Hex) ``` echo "48656c6c6f" | xxd -r -p ``` ### Bash(0x 格式) ``` echo "0x48 0x65 0x6c 0x6c 0x6f" | sed 's/0x//g' | tr -d ' ' | xxd -r -p ``` ## 许可证 MIT 许可证 - 详情请参阅 [LICENSE](LICENSE) 文件。 # 文件:bash/hex_to_ascii_plain.sh 赋予可执行权限: ``` chmod +x bash/hex_to_ascii_plain.sh ``` # 文件:bash/hex_to_ascii_0x.sh 赋予可执行权限: ``` chmod +x bash/hex_to_ascii_0x.sh ```
标签:Python, 应用安全, 无后门, 编码转换, 解密辅助, 逆向工具