misc-tools
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseMiscellaneous CTF Tools
各类CTF杂项工具
When to Use
适用场景
Load this skill when:
- Solving programming or algorithm challenges
- Decoding esoteric languages (Brainfuck, Malbolge, etc.)
- Scanning QR codes or barcodes
- Analyzing audio/video files
- Working with unconventional challenge types
在以下场景加载此技能:
- 解决编程或算法挑战
- 解码小众编程语言(Brainfuck、Malbolge等)
- 扫描二维码或条形码
- 分析音视频文件
- 处理非常规类型的挑战
Programming Challenges
编程挑战
Fast Input Parsing
快速输入解析
python
#!/usr/bin/env python3
"""Template for fast I/O in programming challenges"""
import sys
def fast_input():
"""Read all input at once (faster than input())"""
return sys.stdin.read().strip().split('\n')
def solve():
"""Main solution"""
lines = fast_input()
n = int(lines[0])
for i in range(1, n + 1):
# Process each line
data = list(map(int, lines[i].split()))
result = process(data)
print(result)
def process(data):
"""Process logic here"""
return sum(data)
if __name__ == "__main__":
solve()python
#!/usr/bin/env python3
"""Template for fast I/O in programming challenges"""
import sys
def fast_input():
"""Read all input at once (faster than input())"""
return sys.stdin.read().strip().split('\n')
def solve():
"""Main solution"""
lines = fast_input()
n = int(lines[0])
for i in range(1, n + 1):
# Process each line
data = list(map(int, lines[i].split()))
result = process(data)
print(result)
def process(data):
"""Process logic here"""
return sum(data)
if __name__ == "__main__":
solve()Common Algorithms
常用算法
python
undefinedpython
undefinedBinary Search
Binary Search
def binary_search(arr, target):
left, right = 0, len(arr) - 1
while left <= right:
mid = (left + right) // 2
if arr[mid] == target:
return mid
elif arr[mid] < target:
left = mid + 1
else:
right = mid - 1
return -1
def binary_search(arr, target):
left, right = 0, len(arr) - 1
while left <= right:
mid = (left + right) // 2
if arr[mid] == target:
return mid
elif arr[mid] < target:
left = mid + 1
else:
right = mid - 1
return -1
GCD (Greatest Common Divisor)
GCD (Greatest Common Divisor)
def gcd(a, b):
while b:
a, b = b, a % b
return a
def gcd(a, b):
while b:
a, b = b, a % b
return a
LCM (Least Common Multiple)
LCM (Least Common Multiple)
def lcm(a, b):
return abs(a * b) // gcd(a, b)
def lcm(a, b):
return abs(a * b) // gcd(a, b)
Prime Check
Prime Check
def is_prime(n):
if n < 2:
return False
if n == 2:
return True
if n % 2 == 0:
return False
for i in range(3, int(n**0.5) + 1, 2):
if n % i == 0:
return False
return True
def is_prime(n):
if n < 2:
return False
if n == 2:
return True
if n % 2 == 0:
return False
for i in range(3, int(n**0.5) + 1, 2):
if n % i == 0:
return False
return True
Factorial with memoization
Factorial with memoization
from functools import lru_cache
@lru_cache(maxsize=None)
def factorial(n):
if n <= 1:
return 1
return n * factorial(n - 1)
undefinedfrom functools import lru_cache
@lru_cache(maxsize=None)
def factorial(n):
if n <= 1:
return 1
return n * factorial(n - 1)
undefinedEsoteric Languages
小众编程语言
Brainfuck Interpreter
Brainfuck解释器
python
#!/usr/bin/env python3
"""Brainfuck interpreter"""
def brainfuck(code, input_data=""):
"""Execute Brainfuck code"""
# Initialize
tape = [0] * 30000
ptr = 0
code_ptr = 0
output = []
input_ptr = 0
# Match brackets
brackets = {}
stack = []
for i, cmd in enumerate(code):
if cmd == '[':
stack.append(i)
elif cmd == ']':
if stack:
left = stack.pop()
brackets[left] = i
brackets[i] = left
# Execute
while code_ptr < len(code):
cmd = code[code_ptr]
if cmd == '>':
ptr += 1
elif cmd == '<':
ptr -= 1
elif cmd == '+':
tape[ptr] = (tape[ptr] + 1) % 256
elif cmd == '-':
tape[ptr] = (tape[ptr] - 1) % 256
elif cmd == '.':
output.append(chr(tape[ptr]))
elif cmd == ',':
if input_ptr < len(input_data):
tape[ptr] = ord(input_data[input_ptr])
input_ptr += 1
elif cmd == '[':
if tape[ptr] == 0:
code_ptr = brackets[code_ptr]
elif cmd == ']':
if tape[ptr] != 0:
code_ptr = brackets[code_ptr]
code_ptr += 1
return ''.join(output)python
#!/usr/bin/env python3
"""Brainfuck interpreter"""
def brainfuck(code, input_data=""):
"""Execute Brainfuck code"""
# Initialize
tape = [0] * 30000
ptr = 0
code_ptr = 0
output = []
input_ptr = 0
# Match brackets
brackets = {}
stack = []
for i, cmd in enumerate(code):
if cmd == '[':
stack.append(i)
elif cmd == ']':
if stack:
left = stack.pop()
brackets[left] = i
brackets[i] = left
# Execute
while code_ptr < len(code):
cmd = code[code_ptr]
if cmd == '>':
ptr += 1
elif cmd == '<':
ptr -= 1
elif cmd == '+':
tape[ptr] = (tape[ptr] + 1) % 256
elif cmd == '-':
tape[ptr] = (tape[ptr] - 1) % 256
elif cmd == '.':
output.append(chr(tape[ptr]))
elif cmd == ',':
if input_ptr < len(input_data):
tape[ptr] = ord(input_data[input_ptr])
input_ptr += 1
elif cmd == '[':
if tape[ptr] == 0:
code_ptr = brackets[code_ptr]
elif cmd == ']':
if tape[ptr] != 0:
code_ptr = brackets[code_ptr]
code_ptr += 1
return ''.join(output)Example
Example
code = "++++++++[>++++[>++>+++>+++>+<<<<-]>+>+>->>+[<]<-]>>.>---.+++++++..+++.>>.<-.<.+++.------.--------.>>+.>++."
print(brainfuck(code)) # Output: "Hello World!\n"
undefinedcode = "++++++++[>++++[>++>+++>+++>+<<<<-]>+>+>->>+[<]<-]>>.>---.+++++++..+++.>>.<-.<.+++.------.--------.>>+.>++."
print(brainfuck(code)) # Output: "Hello World!\n"
undefinedCommon Esoteric Language Patterns
常见小众编程语言特征
| Language | Detection | Tool |
|---|---|---|
| Brainfuck | | |
| Malbolge | Base-85 printable ASCII | Online interpreter |
| Whitespace | Only spaces, tabs, newlines | Online interpreter |
| JSFuck | | Browser console |
| Ook! | | Online interpreter |
| Piet | Colorful bitmap image | npiet compiler |
| 语言 | 检测特征 | 工具 |
|---|---|---|
| Brainfuck | 仅包含 | |
| Malbolge | Base-85可打印ASCII字符 | 在线解释器 |
| Whitespace | 仅包含空格、制表符、换行符 | 在线解释器 |
| JSFuck | 仅包含 | 浏览器控制台 |
| Ook! | | 在线解释器 |
| Piet | 彩色位图图像 | npiet编译器 |
Online Interpreters
在线解释器
bash
undefinedbash
undefinedTry44 - Multi-language online interpreter
Try44 - Multi-language online interpreter
Esoteric.codes
Esoteric.codes
undefinedundefinedQR Codes and Barcodes
二维码与条形码
Scan QR Codes
扫描二维码
bash
undefinedbash
undefinedInstall zbar tools
Install zbar tools
sudo apt install zbar-tools
sudo apt install zbar-tools
Scan single QR code
Scan single QR code
zbarimg qrcode.png
zbarimg qrcode.png
Scan multiple QR codes
Scan multiple QR codes
zbarimg qr1.png qr2.png qr3.png
zbarimg qr1.png qr2.png qr3.png
Output to file
Output to file
zbarimg qrcode.png > output.txt
undefinedzbarimg qrcode.png > output.txt
undefinedScan All QR Codes in Directory
扫描目录中所有二维码
bash
#!/bin/bashbash
#!/bin/bashScan all images in directory for QR/barcodes
Scan all images in directory for QR/barcodes
for file in *.png *.jpg *.jpeg; do
if [ -f "$file" ]; then
echo "=== $file ==="
zbarimg "$file" 2>/dev/null || echo "No code found"
echo
fi
done
undefinedfor file in *.png *.jpg *.jpeg; do
if [ -f "$file" ]; then
echo "=== $file ==="
zbarimg "$file" 2>/dev/null || echo "No code found"
echo
fi
done
undefinedGenerate QR Code
生成二维码
bash
undefinedbash
undefinedInstall qrencode
Install qrencode
sudo apt install qrencode
sudo apt install qrencode
Generate QR code
Generate QR code
qrencode -o output.png "Your text here"
qrencode -o output.png "Your text here"
Generate with error correction
Generate with error correction
qrencode -l H -o output.png "Your text here"
qrencode -l H -o output.png "Your text here"
Levels: L (7%), M (15%), Q (25%), H (30%)
Levels: L (7%), M (15%), Q (25%), H (30%)
undefinedundefinedPython QR Code
Python二维码处理
python
from PIL import Image
import subprocess
def scan_qr(image_path):
"""Scan QR code from image"""
result = subprocess.run(
['zbarimg', '--quiet', '--raw', image_path],
capture_output=True, text=True
)
return result.stdout.strip()python
from PIL import Image
import subprocess
def scan_qr(image_path):
"""Scan QR code from image"""
result = subprocess.run(
['zbarimg', '--quiet', '--raw', image_path],
capture_output=True, text=True
)
return result.stdout.strip()Usage
Usage
data = scan_qr('qrcode.png')
print(f"QR Code data: {data}")
undefineddata = scan_qr('qrcode.png')
print(f"QR Code data: {data}")
undefinedAudio and Video Analysis
音视频分析
Audio Spectrogram
音频频谱图
bash
undefinedbash
undefinedGenerate spectrogram with Sox
Generate spectrogram with Sox
sox audio.wav -n spectrogram -o spectrogram.png
sox audio.wav -n spectrogram -o spectrogram.png
With higher resolution
With higher resolution
sox audio.wav -n spectrogram -x 3000 -y 513 -z 120 -w Kaiser -o spectrogram.png
sox audio.wav -n spectrogram -x 3000 -y 513 -z 120 -w Kaiser -o spectrogram.png
Extract specific frequency range
Extract specific frequency range
sox audio.wav -n spectrogram -o spec.png trim 0 10 # First 10 seconds
undefinedsox audio.wav -n spectrogram -o spec.png trim 0 10 # First 10 seconds
undefinedAudio Metadata
音频元数据
bash
undefinedbash
undefinedExtract metadata
Extract metadata
exiftool audio.mp3
ffprobe audio.mp3
exiftool audio.mp3
ffprobe audio.mp3
Extract hidden data from LSB
Extract hidden data from LSB
python3 helpers/audio_lsb.py audio.wav
undefinedpython3 helpers/audio_lsb.py audio.wav
undefinedVideo Frame Extraction
视频帧提取
bash
undefinedbash
undefinedExtract all frames
Extract all frames
ffmpeg -i video.mp4 frames/frame_%04d.png
ffmpeg -i video.mp4 frames/frame_%04d.png
Extract every 10th frame
Extract every 10th frame
ffmpeg -i video.mp4 -vf "select='not(mod(n,10))'" -vsync 0 frames/frame_%04d.png
ffmpeg -i video.mp4 -vf "select='not(mod(n,10))'" -vsync 0 frames/frame_%04d.png
Extract frame at specific time
Extract frame at specific time
ffmpeg -i video.mp4 -ss 00:01:30 -vframes 1 frame.png
undefinedffmpeg -i video.mp4 -ss 00:01:30 -vframes 1 frame.png
undefinedDTMF Tone Decoding
DTMF音频解码
bash
undefinedbash
undefinedInstall multimon-ng
Install multimon-ng
sudo apt install multimon-ng
sudo apt install multimon-ng
Decode DTMF tones from audio
Decode DTMF tones from audio
sox audio.wav -t raw -r 22050 -e signed -b 16 -c 1 - | multimon-ng -t raw -a DTMF /dev/stdin
undefinedsox audio.wav -t raw -r 22050 -e signed -b 16 -c 1 - | multimon-ng -t raw -a DTMF /dev/stdin
undefinedEncoding and Decoding
编码与解码
Common Encodings
常见编码格式
python
import base64
import codecspython
import base64
import codecsBase64
Base64
data = base64.b64decode('SGVsbG8gV29ybGQ=')
data = base64.b64decode('SGVsbG8gV29ybGQ=')
Base32
Base32
data = base64.b32decode('JBSWY3DPEBLW64TMMQ======')
data = base64.b32decode('JBSWY3DPEBLW64TMMQ======')
Base85
Base85
data = base64.b85decode(b'BOu!rD]j7BEbo7')
data = base64.b85decode(b'BOu!rD]j7BEbo7')
Hex
Hex
data = bytes.fromhex('48656c6c6f')
data = bytes.fromhex('48656c6c6f')
ROT13
ROT13
data = codecs.decode('Uryyb Jbeyq', 'rot_13')
data = codecs.decode('Uryyb Jbeyq', 'rot_13')
URL encoding
URL encoding
from urllib.parse import unquote
data = unquote('Hello%20World')
undefinedfrom urllib.parse import unquote
data = unquote('Hello%20World')
undefinedMulti-Layer Decoding
多层自动解码
python
def auto_decode(data):
"""Try common decodings recursively"""
import base64
import binascii
if isinstance(data, bytes):
try:
data = data.decode('utf-8')
except:
return data
# Try base64
try:
decoded = base64.b64decode(data)
if decoded != data.encode():
print("[+] Base64 decoded")
return auto_decode(decoded)
except:
pass
# Try hex
try:
decoded = bytes.fromhex(data)
print("[+] Hex decoded")
return auto_decode(decoded)
except:
pass
return datapython
def auto_decode(data):
"""Try common decodings recursively"""
import base64
import binascii
if isinstance(data, bytes):
try:
data = data.decode('utf-8')
except:
return data
# Try base64
try:
decoded = base64.b64decode(data)
if decoded != data.encode():
print("[+] Base64 decoded")
return auto_decode(decoded)
except:
pass
# Try hex
try:
decoded = bytes.fromhex(data)
print("[+] Hex decoded")
return auto_decode(decoded)
except:
pass
return dataUsage
Usage
result = auto_decode("NGE2MTY3N2I2MjYxNzM2NTM2MzQ1Zjc0Njg2OTcyNzQ3OTVmNzQ3Nzc2")
print(result)
undefinedresult = auto_decode("NGE2MTY3N2I2MjYxNzM2NTM2MzQ1Zjc0Njg2OTcyNzQ3OTVmNzQ3Nzc2")
print(result)
undefinedQuick Reference
速查表
| Challenge Type | Tool | Command |
|---|---|---|
| Brainfuck | Python | |
| QR Code | zbar | |
| Barcode | zbar | |
| Spectrogram | sox | |
| DTMF | multimon-ng | |
| Video frames | ffmpeg | |
| Base64 | base64 | |
| Hex | xxd | |
| 挑战类型 | 工具 | 命令 |
|---|---|---|
| Brainfuck | Python | |
| 二维码 | zbar | |
| 条形码 | zbar | |
| 频谱图 | sox | |
| DTMF | multimon-ng | |
| 视频帧 | ffmpeg | |
| Base64 | base64 | |
| 十六进制 | xxd | |
Bundled Resources
配套资源
Programming
编程相关
- - Fast I/O template for competitive programming
programming/fast_parse.py - - Common algorithms (GCD, LCM, primes)
programming/algorithms.py
- - 竞技编程中的快速I/O模板
programming/fast_parse.py - - 常用算法(GCD、LCM、素数判断)
programming/algorithms.py
Esoteric Languages
小众编程语言相关
- - Brainfuck interpreter
esolang/bf_decode.py - - Malbolge reference
esolang/malbolge_helper.md
- - Brainfuck解释器
esolang/bf_decode.py - - Malbolge参考文档
esolang/malbolge_helper.md
QR and Barcodes
二维码与条形码相关
- - Batch QR code scanner
qr_barcodes/qr_scan_all.sh - - QR code generator wrapper
qr_barcodes/qr_generate.sh
- - 批量二维码扫描脚本
qr_barcodes/qr_scan_all.sh - - 二维码生成器封装脚本
qr_barcodes/qr_generate.sh
Audio and Video
音视频相关
- - Generate audio spectrogram
audio_video/spectrogram.sh - - Extract video frames
audio_video/extract_frames.sh - - Audio LSB steganography
audio_video/audio_lsb.py
- - 音频频谱图生成脚本
audio_video/spectrogram.sh - - 视频帧提取脚本
audio_video/extract_frames.sh - - 音频LSB隐写分析工具
audio_video/audio_lsb.py
External Tools
外部工具安装
bash
undefinedbash
undefinedEsoteric language interpreters
Esoteric language interpreters
pip install bf # Brainfuck
pip install bf # Brainfuck
QR/Barcode tools
QR/Barcode tools
sudo apt install zbar-tools qrencode
sudo apt install zbar-tools qrencode
Audio/Video tools
Audio/Video tools
sudo apt install sox ffmpeg multimon-ng audacity
sudo apt install sox ffmpeg multimon-ng audacity
Python libraries
Python libraries
pip install qrcode pillow pydub
undefinedpip install qrcode pillow pydub
undefinedKeywords
关键词
miscellaneous, misc, programming, algorithms, esoteric languages, brainfuck, esolang, QR code, barcode, zbar, audio analysis, spectrogram, DTMF, video analysis, frame extraction, ffmpeg, sox, encoding, decoding, base64, hex, multi-layer decoding, competitive programming
杂项, 编程, 算法, 小众编程语言, Brainfuck, 小众语言, 二维码, 条形码, zbar, 音频分析, 频谱图, DTMF, 视频分析, 帧提取, ffmpeg, sox, 编码, 解码, base64, 十六进制, 多层解码, 竞技编程