misc-tools

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

Miscellaneous 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
undefined
python
undefined

Binary 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)
undefined
from functools import lru_cache
@lru_cache(maxsize=None) def factorial(n): if n <= 1: return 1 return n * factorial(n - 1)
undefined

Esoteric 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"
undefined
code = "++++++++[>++++[>++>+++>+++>+<<<<-]>+>+>->>+[<]<-]>>.>---.+++++++..+++.>>.<-.<.+++.------.--------.>>+.>++." print(brainfuck(code)) # Output: "Hello World!\n"
undefined

Common Esoteric Language Patterns

常见小众编程语言特征

LanguageDetectionTool
Brainfuck
+-<>[].,
characters only
esolang/bf_decode.py
MalbolgeBase-85 printable ASCIIOnline interpreter
WhitespaceOnly spaces, tabs, newlinesOnline interpreter
JSFuck
[]()!+
characters only
Browser console
Ook!
Ook. Ook? Ook!
Online interpreter
PietColorful bitmap imagenpiet compiler
语言检测特征工具
Brainfuck仅包含
+-<>[].,
字符
esolang/bf_decode.py
MalbolgeBase-85可打印ASCII字符在线解释器
Whitespace仅包含空格、制表符、换行符在线解释器
JSFuck仅包含
[]()!+
字符
浏览器控制台
Ook!
Ook. Ook? Ook!
在线解释器
Piet彩色位图图像npiet编译器

Online Interpreters

在线解释器

bash
undefined
bash
undefined

Try44 - Multi-language online interpreter

Try44 - Multi-language online interpreter

Esoteric.codes

Esoteric.codes

QR Codes and Barcodes

二维码与条形码

Scan QR Codes

扫描二维码

bash
undefined
bash
undefined

Install 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
undefined
zbarimg qrcode.png > output.txt
undefined

Scan All QR Codes in Directory

扫描目录中所有二维码

bash
#!/bin/bash
bash
#!/bin/bash

Scan 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
undefined
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
undefined

Generate QR Code

生成二维码

bash
undefined
bash
undefined

Install 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%)

undefined
undefined

Python 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}")
undefined
data = scan_qr('qrcode.png') print(f"QR Code data: {data}")
undefined

Audio and Video Analysis

音视频分析

Audio Spectrogram

音频频谱图

bash
undefined
bash
undefined

Generate 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
undefined
sox audio.wav -n spectrogram -o spec.png trim 0 10 # First 10 seconds
undefined

Audio Metadata

音频元数据

bash
undefined
bash
undefined

Extract 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
undefined
python3 helpers/audio_lsb.py audio.wav
undefined

Video Frame Extraction

视频帧提取

bash
undefined
bash
undefined

Extract 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
undefined
ffmpeg -i video.mp4 -ss 00:01:30 -vframes 1 frame.png
undefined

DTMF Tone Decoding

DTMF音频解码

bash
undefined
bash
undefined

Install 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
undefined
sox audio.wav -t raw -r 22050 -e signed -b 16 -c 1 - | multimon-ng -t raw -a DTMF /dev/stdin
undefined

Encoding and Decoding

编码与解码

Common Encodings

常见编码格式

python
import base64
import codecs
python
import base64
import codecs

Base64

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')
undefined
from urllib.parse import unquote data = unquote('Hello%20World')
undefined

Multi-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 data
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 data

Usage

Usage

result = auto_decode("NGE2MTY3N2I2MjYxNzM2NTM2MzQ1Zjc0Njg2OTcyNzQ3OTVmNzQ3Nzc2") print(result)
undefined
result = auto_decode("NGE2MTY3N2I2MjYxNzM2NTM2MzQ1Zjc0Njg2OTcyNzQ3OTVmNzQ3Nzc2") print(result)
undefined

Quick Reference

速查表

Challenge TypeToolCommand
BrainfuckPython
python3 esolang/bf_decode.py code.bf
QR Codezbar
zbarimg qrcode.png
Barcodezbar
zbarimg barcode.jpg
Spectrogramsox
sox audio.wav -n spectrogram -o spec.png
DTMFmultimon-ng
multimon-ng -a DTMF audio.wav
Video framesffmpeg
ffmpeg -i video.mp4 frames/frame_%04d.png
Base64base64
base64 -d <<< "SGVsbG8="
Hexxxd
xxd -r -p hex.txt output.bin
挑战类型工具命令
BrainfuckPython
python3 esolang/bf_decode.py code.bf
二维码zbar
zbarimg qrcode.png
条形码zbar
zbarimg barcode.jpg
频谱图sox
sox audio.wav -n spectrogram -o spec.png
DTMFmultimon-ng
multimon-ng -a DTMF audio.wav
视频帧ffmpeg
ffmpeg -i video.mp4 frames/frame_%04d.png
Base64base64
base64 -d <<< "SGVsbG8="
十六进制xxd
xxd -r -p hex.txt output.bin

Bundled Resources

配套资源

Programming

编程相关

  • programming/fast_parse.py
    - Fast I/O template for competitive programming
  • programming/algorithms.py
    - Common algorithms (GCD, LCM, primes)
  • programming/fast_parse.py
    - 竞技编程中的快速I/O模板
  • programming/algorithms.py
    - 常用算法(GCD、LCM、素数判断)

Esoteric Languages

小众编程语言相关

  • esolang/bf_decode.py
    - Brainfuck interpreter
  • esolang/malbolge_helper.md
    - Malbolge reference
  • esolang/bf_decode.py
    - Brainfuck解释器
  • esolang/malbolge_helper.md
    - Malbolge参考文档

QR and Barcodes

二维码与条形码相关

  • qr_barcodes/qr_scan_all.sh
    - Batch QR code scanner
  • qr_barcodes/qr_generate.sh
    - QR code generator wrapper
  • qr_barcodes/qr_scan_all.sh
    - 批量二维码扫描脚本
  • qr_barcodes/qr_generate.sh
    - 二维码生成器封装脚本

Audio and Video

音视频相关

  • audio_video/spectrogram.sh
    - Generate audio spectrogram
  • audio_video/extract_frames.sh
    - Extract video frames
  • audio_video/audio_lsb.py
    - Audio LSB steganography
  • audio_video/spectrogram.sh
    - 音频频谱图生成脚本
  • audio_video/extract_frames.sh
    - 视频帧提取脚本
  • audio_video/audio_lsb.py
    - 音频LSB隐写分析工具

External Tools

外部工具安装

bash
undefined
bash
undefined

Esoteric 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
undefined
pip install qrcode pillow pydub
undefined

Keywords

关键词

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, 十六进制, 多层解码, 竞技编程