#!/bin/bash
# Create comprehensive offline help system focused on tldr and cheat
# Removes navi complexity and ensures reliable offline operation
set -e
CHEAT_DIR="/opt/cheatsheets"
TLDR_CACHE="/home/remnux/.local/share/tldr"
TOOLS_DB="/opt/remnux-docs/tools.db"
echo "📚 Creating streamlined offline help system..."
# Create directories
mkdir -p "$CHEAT_DIR/personal" "$TLDR_CACHE/pages/common" "/opt/remnux-docs"
# Configure cheat properly for remnux user
mkdir -p /home/remnux/.config/cheat
cat > /home/remnux/.config/cheat/conf.yml << 'EOF'
---
cheatpaths:
- name: personal
path: /opt/cheatsheets/personal
tags: [personal]
readonly: false
EOF
# Download existing cheat sheets and place them correctly
echo "📥 Downloading existing cheat sheets..."
TOOLS=("tar" "7z" "unzip" "grep" "find" "awk" "sed")
for tool in "${TOOLS[@]}"; do
echo " • Downloading $tool cheat sheet..."
if curl -s "https://raw.githubusercontent.com/cheat/cheatsheets/master/$tool" -o "$CHEAT_DIR/personal/$tool" && [ -s "$CHEAT_DIR/personal/$tool" ]; then
echo " ✅ Downloaded $tool"
else
echo " ⚠ Failed to download $tool, creating basic version"
echo "# $tool" > "$CHEAT_DIR/personal/$tool"
echo "# Basic usage examples for $tool" >> "$CHEAT_DIR/personal/$tool"
fi
done
# Create comprehensive cheat sheets for your original analysis tools
echo "📋 Creating analysis-focused cheat sheets..."
# PDF Analysis cheat sheet
cat > "$CHEAT_DIR/personal/pdf-analysis" << 'EOF'
# PDF Analysis Workflow
# Quick PDF overview and suspicious element detection
pdfid.py document.pdf
# Detailed PDF structure analysis
pdf-parser.py document.pdf
# Interactive analysis with JavaScript detection
peepdf -i document.pdf
# Extract metadata
exiftool document.pdf
# Remove passwords for analysis
qpdf --password=PASSWORD --decrypt encrypted.pdf decrypted.pdf
# Flatten PDF to remove interactive elements (SECURITY)
pdftk suspicious.pdf output safe.pdf flatten
# Extract embedded files
pdf-parser.py --extract document.pdf
# Convert PDF to images for safe viewing
convert document.pdf[0-2] page-%02d.png
# OCR text from PDF images
convert document.pdf page.png && tesseract page.png output
# Check for embedded JavaScript
peepdf -s extract_js document.pdf
# Extract strings from PDF
strings document.pdf | grep -i "javascript\|openaction\|aa\|js"
# Hexdump analysis of PDF structure
hexdump -C document.pdf | head -50
EOF
# Individual tool cheat sheets
cat > "$CHEAT_DIR/personal/pdfid" << 'EOF'
# pdfid.py - PDF Analysis Tool
# Basic PDF analysis
pdfid.py document.pdf
# Verbose output with detailed object counts
pdfid.py -a document.pdf
# Scan all PDFs in directory
pdfid.py *.pdf
# Output in CSV format (requires plugins)
pdfid.py -c document.pdf
# Force analysis of potentially corrupted PDFs
pdfid.py -f document.pdf
EOF
cat > "$CHEAT_DIR/personal/pdf-parser" << 'EOF'
# pdf-parser.py - PDF Structure Analysis
# Parse PDF structure
pdf-parser.py document.pdf
# Extract specific object by number
pdf-parser.py -o 5 document.pdf
# Search for objects containing text
pdf-parser.py -s javascript document.pdf
# Extract and decode streams
pdf-parser.py -f document.pdf
# Dump raw object content
pdf-parser.py -d -o 5 document.pdf
# Generate statistics
pdf-parser.py -a document.pdf
# Extract all objects to files
pdf-parser.py --extract document.pdf
EOF
cat > "$CHEAT_DIR/personal/peepdf" << 'EOF'
# peepdf - Interactive PDF Analysis
# Interactive analysis mode
peepdf -i document.pdf
# Force mode for suspicious PDFs
peepdf -f document.pdf
# Load PDF with script
peepdf -s script.txt document.pdf
# Analyze with specific password
peepdf -p password document.pdf
# Generate XML report
peepdf -x document.pdf
# Update malicious URL database
peepdf -u
# Check for vulnerabilities
peepdf -C document.pdf
EOF
cat > "$CHEAT_DIR/personal/pdftk" << 'EOF'
# pdftk - PDF Manipulation
# Flatten PDF (remove JavaScript/forms) - SECURITY
pdftk suspicious.pdf output safe.pdf flatten
# Concatenate PDFs
pdftk file1.pdf file2.pdf cat output combined.pdf
# Extract specific pages
pdftk document.pdf cat 1-3 output pages1-3.pdf
# Split PDF into single pages
pdftk document.pdf burst
# Decrypt password-protected PDF
pdftk encrypted.pdf input_pw password output decrypted.pdf
# Add password to PDF
pdftk document.pdf output protected.pdf user_pw password
# Decompress PDF streams for analysis
pdftk compressed.pdf output uncompressed.pdf uncompress
EOF
# OLE document analysis (oledump)
cat > "$CHEAT_DIR/personal/oledump.py" << 'EOF'
# oledump.py - Analyze OLE files (Office documents)
# List all streams (basic overview)
oledump.py document.doc
# Dump the content of a specific stream (e.g., 8) to stdout
oledump.py -s 8 -d document.doc > stream8.bin
# Analyze a specific stream (e.g., 8) in detail
oledump.py -s 8 document.doc
EOF
# Provide alias without .py for convenience
cp "$CHEAT_DIR/personal/oledump.py" "$CHEAT_DIR/personal/oledump" 2>/dev/null || true
# Malware analysis cheat sheet
cat > "$CHEAT_DIR/personal/malware-analysis" << 'EOF'
# Malware Analysis Workflow
# File identification
file suspicious.exe
exiftool suspicious.exe
# String analysis
strings -n 8 malware.bin
strings -e l malware.bin # little-endian 16-bit
strings -e b malware.bin # big-endian 16-bit
# Capability detection
capa malware.exe
# JavaScript analysis
box-js --output-dir=/tmp/js_analysis suspicious.js
# Office document analysis
oledump.py document.doc
rtfdump.py document.rtf
emldump.py message.eml
# Base64 content extraction
base64dump.py document.txt
# Binary analysis
binwalk malware.bin
hexdump -C malware.exe | head -20
# File carving
foremost -t exe,dll,pdf -i disk.img
EOF
cat > "$CHEAT_DIR/personal/capa" << 'EOF'
# capa - Malware Capability Detection
# Basic capability analysis
capa malware.exe
# Verbose output with detailed explanations
capa -v malware.exe
# Output in JSON format
capa -j malware.exe
# Use custom rules directory
capa -r /path/to/rules malware.exe
# Show only specific capability tags
capa -t communication malware.exe
# Analyze shellcode
capa -f shellcode shellcode.bin
# Analyze with specific architecture
capa -a x64 malware.exe
EOF
# Create comprehensive TLDR pages
echo "📖 Creating TLDR pages for analysis tools..."
cat > "$TLDR_CACHE/pages/common/pdfid.py.md" << 'EOF'
# pdfid.py
> Analyze PDF files and identify potentially suspicious elements.
> Part of Didier Stevens' PDF analysis toolkit.
> More information: .
- Analyze a PDF file for suspicious elements:
`pdfid.py {{path/to/document.pdf}}`
- Show detailed analysis with object counts:
`pdfid.py {{-a|--all}} {{path/to/document.pdf}}`
- Analyze all PDF files in current directory:
`pdfid.py {{*.pdf}}`
- Output results in CSV format (requires plugins):
`pdfid.py {{-c|--csv}} {{path/to/document.pdf}}`
- Force analysis of potentially corrupted PDF:
`pdfid.py {{-f|--force}} {{path/to/document.pdf}}`
EOF
cat > "$TLDR_CACHE/pages/common/pdf-parser.py.md" << 'EOF'
# pdf-parser.py
> Parse and analyze PDF file structure, extract objects and streams.
> Part of Didier Stevens' PDF analysis toolkit.
> More information: .
- Parse PDF structure and show all objects:
`pdf-parser.py {{path/to/document.pdf}}`
- Extract a specific object by number:
`pdf-parser.py {{-o|--object}} {{object_number}} {{path/to/document.pdf}}`
- Search for objects containing specific text:
`pdf-parser.py {{-s|--search}} {{javascript}} {{path/to/document.pdf}}`
- Extract and decode streams:
`pdf-parser.py {{-f|--filter}} {{path/to/document.pdf}}`
- Dump raw object content to file:
`pdf-parser.py {{-d|--dump}} {{-o|--object}} {{object_number}} {{path/to/document.pdf}}`
- Generate statistics about PDF structure:
`pdf-parser.py {{-a|--stats}} {{path/to/document.pdf}}`
- Extract all objects to separate files:
`pdf-parser.py {{--extract}} {{path/to/document.pdf}}`
EOF
cat > "$TLDR_CACHE/pages/common/peepdf.md" << 'EOF'
# peepdf
> Interactive PDF analysis framework with JavaScript analysis capabilities.
> More information: .
- Analyze PDF file interactively:
`peepdf {{-i|--interactive}} {{path/to/document.pdf}}`
- Analyze PDF and force processing of suspicious elements:
`peepdf {{-f|--force-mode}} {{path/to/document.pdf}}`
- Load PDF and execute peepdf script:
`peepdf {{-s|--script}} {{script.txt}} {{path/to/document.pdf}}`
- Analyze PDF with specific password:
`peepdf {{-p|--password}} {{password}} {{path/to/document.pdf}}`
- Generate XML analysis report:
`peepdf {{-x|--xml}} {{path/to/document.pdf}}`
- Check for known vulnerabilities:
`peepdf {{-C|--check-vulns}} {{path/to/document.pdf}}`
- Update malicious URL database:
`peepdf {{-u|--update}}`
EOF
cat > "$TLDR_CACHE/pages/common/capa.md" << 'EOF'
# capa
> Detect malware capabilities using the MITRE ATT&CK framework.
> Analyzes executables and maps them to threat behaviors.
> More information: .
- Analyze an executable for capabilities:
`capa {{path/to/malware.exe}}`
- Show verbose analysis with detailed explanations:
`capa {{-v|--verbose}} {{path/to/malware.exe}}`
- Output results in JSON format:
`capa {{-j|--json}} {{path/to/malware.exe}}`
- Analyze with custom rules directory:
`capa {{-r|--rules}} {{path/to/rules}} {{path/to/malware.exe}}`
- Show only capabilities matching specific tag:
`capa {{-t|--tag}} {{communication}} {{path/to/malware.exe}}`
- Analyze shellcode instead of PE file:
`capa {{-f|--format}} {{shellcode}} {{path/to/shellcode.bin}}`
- Analyze with specific architecture:
`capa {{-a|--arch}} {{x64}} {{path/to/malware.exe}}`
EOF
cat > "$TLDR_CACHE/pages/common/box-js.md" << 'EOF'
# box-js
> JavaScript sandbox for malware analysis and deobfuscation.
> More information: .
- Analyze JavaScript file in sandbox:
`box-js {{suspicious.js}}`
- Analyze with custom output directory:
`box-js {{--output-dir}} {{/tmp/analysis}} {{suspicious.js}}`
- Enable verbose logging:
`box-js {{--verbose}} {{suspicious.js}}`
- Analyze with timeout (in seconds):
`box-js {{--timeout}} {{30}} {{suspicious.js}}`
- Download and analyze JavaScript from URL:
`box-js {{--download}} {{http://example.com/malicious.js}}`
- Analyze with custom user agent:
`box-js {{--user-agent}} {{"Custom Agent"}} {{suspicious.js}}`
EOF
# Create accurate tools database
cat > "$TOOLS_DB" << 'EOF'
# REMnux Analysis Tools Database
# Format: TOOL_NAME|DESCRIPTION|CATEGORY|USAGE_EXAMPLE
# PDF Analysis Tools (Your Original Focus)
pdfid.py|Identify suspicious elements in PDF files|pdf analysis|pdfid.py document.pdf
pdf-parser.py|Parse and analyze PDF structure and objects|pdf analysis|pdf-parser.py document.pdf
peepdf|Interactive PDF analysis framework with JavaScript detection|pdf analysis|peepdf -i malicious.pdf
pdftk|Manipulate PDF files (merge, split, flatten)|pdf analysis|pdftk input.pdf output output.pdf flatten
qpdf|PDF manipulation tool (decrypt, merge, convert)|pdf analysis|qpdf --decrypt encrypted.pdf output.pdf
# Malware Analysis Tools
capa|Detect malware capabilities using MITRE ATT&CK|malware analysis|capa malware.exe
box-js|JavaScript sandbox for malware analysis|malware analysis|box-js --output-dir=/tmp suspicious.js
oledump.py|Analyze OLE files (Office documents)|malware analysis|oledump.py document.xls
rtfdump.py|Analyze RTF documents|malware analysis|rtfdump.py document.rtf
emldump.py|Analyze EML email files|malware analysis|emldump.py message.eml
base64dump.py|Extract and decode base64 strings|malware analysis|base64dump.py document.txt
# File Analysis Tools
strings|Extract printable strings from files|file analysis|strings -n 10 binary.exe
hexdump|Display file content in hexadecimal|file analysis|hexdump -C binary.dat
file|Determine file type|file analysis|file suspicious.dat
exiftool|Extract metadata from files|file analysis|exiftool document.pdf
binwalk|Analyze and extract firmware/binary images|file analysis|binwalk firmware.bin
# Archive and Compression
7z|7-Zip archiver with high compression|utilities|7z x archive.7z
unzip|Extract ZIP archives|utilities|unzip archive.zip
tar|Archive files with compression|utilities|tar -xzf archive.tar.gz
# Text Processing and Search
grep|Search text using patterns|text processing|grep -r "pattern" directory/
find|Find files and directories|file search|find /path -name "*.pdf"
awk|Text processing and pattern scanning|text processing|awk '{print $1}' file.txt
sed|Stream editor for text manipulation|text processing|sed 's/old/new/g' file.txt
EOF
# Initialize tldr cache and ensure offline functionality
echo "🔄 Initializing tldr cache for offline use..."
export HOME=/home/remnux
su - remnux -c "tldr --update" 2>/dev/null || echo "⚠ TLDR update attempted"
# Set proper ownership
chown -R remnux:remnux /home/remnux/.config /home/remnux/.local "$CHEAT_DIR" 2>/dev/null || true
echo "✅ Streamlined offline help system created!"
echo ""
echo "📊 Summary:"
echo " 📁 Cheat sheets: $CHEAT_DIR/personal/"
echo " 📚 TLDR cache: $TLDR_CACHE/pages/common/"
echo " 🔍 Tools database: $TOOLS_DB"
echo ""
echo "Available help:"
echo " fhelp cheat pdf-analysis # PDF analysis workflow"
echo " fhelp cheat pdfid # pdfid.py examples"
echo " tldr pdfid.py # Quick pdfid.py reference"
echo " tldr capa # Quick capa reference"
echo ""
# Count resources
cheat_count=$(find "$CHEAT_DIR/personal" -type f 2>/dev/null | wc -l)
tldr_count=$(find "$TLDR_CACHE/pages/common" -name "*.md" 2>/dev/null | wc -l)
echo "📈 Resources: $cheat_count cheat sheets, $tldr_count TLDR pages"