A powerful iOS development toolkit integrating Mars/WeChat xlog log parsing, IPS crash analysis, iOS push testing, sandbox browsing, dSYM symbolication, LinkMap analysis, and iOS Code Obfuscation features.
- ✅ Batch Processing: Support folder and single file selection with smart file grouping
- ✅ Parallel Processing: Multi-threaded parsing for significant speed improvement
- ✅ Module Grouping: Auto-detect and group different modules (mars::stn, HY-Default, etc.)
- ✅ Advanced Filtering: Combine keyword, regex, time range, and log level filters
- ✅ Data Visualization: Pie charts, bar charts, time distribution graphs
- ✅ Lazy Loading: Optimized for large files, smooth display of millions of logs
- ✅ Export Functions: Export current view, module reports, filtered results
- ✅ IPS Crash Analysis: Parse iOS crash reports with symbolication support
- ✅ iOS Push Testing: APNS push testing tool for sandbox and production
- ✅ iOS Sandbox Browser: Browse iOS app sandbox file system with preview and export
- ✅ dSYM Symbolication: Auto-load dSYM files for crash address symbolication
- ✅ LinkMap Analysis: iOS binary size analysis for code optimization
- ✅ iOS Code Obfuscation 🆕: Professional code obfuscation tool for App Store review
- FATAL
- ERROR
- WARNING
- INFO
- DEBUG
- VERBOSE
- Full format:
YYYY-MM-DD HH:MM:SS - Time only:
HH:MM:SS(compares time portion only) - Date only:
YYYY-MM-DD(auto-expands to full day)
- macOS 10.12 or higher
- Python 3.6+
- ~100MB available disk space
- Windows 10/11
- Python 3.6+
- ~100MB available disk space
- Ubuntu 18.04+ / CentOS 7+
- Python 3.6+
- tkinter support
Mac/Linux:
# 1. Clone or download the project
git clone <repository-url>
cd mars-log-analyzer
# 2. Add execute permission
chmod +x run_analyzer.sh
# 3. Run (auto-installs dependencies)
./run_analyzer.shWindows:
# 1. Clone or download the project
git clone <repository-url>
cd mars-log-analyzer
# 2. Double-click run_analyzer.bat
# Or run in command line:
run_analyzer.batpython3 run_analyzer.pyProfessional iOS code obfuscation tool to help developers pass App Store machine review (4.3, 2.1, etc.). Supports both Objective-C and Swift code obfuscation.
- Symbol Obfuscation: Class names, method names, property names, protocol names, enum names, constant names
- Advanced Obfuscation: Garbage code generation, string encryption, method shuffling, resource modification
- Smart Whitelist: Built-in 500+ system API whitelist, auto-detect third-party libraries
- Deterministic Obfuscation: Support fixed seed for version consistency
- Incremental Obfuscation: Support incremental build, process only changed files
- Dual Interface: GUI and CLI support
- Launch main program:
./scripts/run_analyzer.sh - Switch to "iOS Code Obfuscation" tab
- Select project path and output directory
- Configure obfuscation options (use template or custom)
- Click "Start Obfuscation"
# Basic obfuscation (using standard template)
python -m gui.modules.obfuscation.obfuscation_cli \
--project /path/to/ios/project \
--output /path/to/obfuscated \
--template standard
# Custom obfuscation configuration
python -m gui.modules.obfuscation.obfuscation_cli \
--project /path/to/ios/project \
--output /path/to/obfuscated \
--class-names \
--method-names \
--property-names \
--insert-garbage-code \
--string-encryption \
--prefix "WHC" \
--seed "my_project_v1.0"
# Incremental obfuscation
python -m gui.modules.obfuscation.obfuscation_cli \
--project /path/to/ios/project \
--output /path/to/obfuscated \
--incremental \
--mapping /path/to/old_mapping.json
# Analyze only (no obfuscation)
python -m gui.modules.obfuscation.obfuscation_cli \
--project /path/to/ios/project \
--analyze-only \
--report /path/to/analysis_report.json- minimal: Minimal obfuscation (class and method names only)
- standard: Standard obfuscation (balanced strategy)
- aggressive: Aggressive obfuscation (maximum obfuscation)
- Backup Code: Always backup original code before obfuscation
- Test Thoroughly: Complete functional testing after obfuscation
- Save Mapping: Keep the name mapping file safe (for debugging and incremental builds)
- Whitelist Management: Customize whitelist based on project needs
For more details:
- Technical docs:
gui/modules/obfuscation/CLAUDE.md - Roadmap:
docs/technical/IOS_OBFUSCATION_ROADMAP.md
- Click "Select Folder" button
- Choose directory containing
.xlogfiles - System auto-scans and groups similar files
- Click "Select File" button
- Choose specific
.xlogfile to analyze
Click "Start Parsing":
- Progress bar shows parsing status
- Supports parallel processing
- Auto-loads first file group when complete
- Keyword Search: Support text and regex
- Time Range: Enter start and end times
- Log Level: Select levels to display
- Module Filter: Choose specific modules
Click "Apply Filter" for combined filtering.
Switch to "Module Grouping" tab:
- Left panel shows all modules
- Shows log count and error/warning stats
- Click module to view detailed logs
View charts and analytics:
- Log level distribution pie chart
- Module distribution statistics
- File parsing statistics
- Error/warning trends
- Export Current View: Export filtered logs
- Export Group Report: Export by modules
- Export Full Report: Export all analysis
- Export Current Module: Export selected module logs
- Export Filtered Results: Export filtered logs
- Export All Modules: Batch export to directory
- Enter time range:
10:00:00to11:00:00 - Select log level:
ERROR - Click "Apply Filter"
- Switch to "Module Grouping"
- Select problematic module (e.g.,
mars::stn) - Search keywords like "timeout" or "failed"
- Select
ERRORandFATALlevels - Apply filter
- Click "Export Current View"
Select "Regex" mode for complex pattern matching:
error.*timeout- Find lines with both error and timeout\d{3,}ms- Find response times over 100ms(failed|error|exception)- Find any of these keywords
2025-01-15 10:30:00- Exact timestamp10:30:00- Today at 10:302025-01-15- Full day's logs
Mac/Linux:
# Check Python version
python3 --version
# Install tkinter
# Mac: brew install python-tk
# Linux: sudo apt-get install python3-tkWindows:
- Ensure Python installation included "Add to PATH"
- Reinstall Python with "Install for all users" option
Possible causes:
- xlog file is encrypted (requires key)
- File is corrupted
- Unsupported format version
For very large files (>1GB):
- Close other programs to free memory
- Process files in batches
- Use filters to reduce displayed content
- Parse speed: ~50-100MB/sec (CPU dependent)
- Memory usage: ~2-3x file size
- Parallel processing: Up to 4 concurrent files
- UI response: Smooth display of millions of logs
MIT License - See LICENSE file for details
- Issues: GitHub Issues
- Email: your-email@example.com
Version: 2.2.0 Last Updated: October 14, 2025
- ✅ Core features 100% complete (9 core modules)
- ✅ P2 advanced features: Garbage code generation, string encryption, incremental build
- ✅ GUI and CLI dual interface support
- ✅ Complete test coverage and documentation
- ✅ Support for Objective-C and Swift obfuscation
- ✅ Built-in 500+ system API whitelist
- ✅ Three configuration templates (minimal/standard/aggressive)
- ✅ Deterministic and incremental obfuscation support