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, 应用安全, 无后门, 编码转换, 解密辅助, 逆向工具