obfutil 3.4__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- obfutil-3.4/CHANGELOG.md +324 -0
- obfutil-3.4/LICENSE +21 -0
- obfutil-3.4/MANIFEST.in +6 -0
- obfutil-3.4/PKG-INFO +364 -0
- obfutil-3.4/README.md +341 -0
- obfutil-3.4/README.ru.md +341 -0
- obfutil-3.4/obfutil/__init__.py +7 -0
- obfutil-3.4/obfutil/config.py +109 -0
- obfutil-3.4/obfutil/core/__init__.py +3 -0
- obfutil-3.4/obfutil/core/api.py +705 -0
- obfutil-3.4/obfutil/crypto/__init__.py +0 -0
- obfutil-3.4/obfutil/crypto/encryption.py +323 -0
- obfutil-3.4/obfutil/crypto/integrity.py +149 -0
- obfutil-3.4/obfutil/obfuscation/__init__.py +3 -0
- obfutil-3.4/obfutil/obfuscation/core.py +167 -0
- obfutil-3.4/obfutil/ui/__init__.py +0 -0
- obfutil-3.4/obfutil/ui/cli/__init__.py +0 -0
- obfutil-3.4/obfutil/ui/cli/main.py +554 -0
- obfutil-3.4/obfutil/utils/__init__.py +0 -0
- obfutil-3.4/obfutil/utils/file_utils.py +31 -0
- obfutil-3.4/obfutil/utils/interface.py +298 -0
- obfutil-3.4/obfutil/utils/localization.py +836 -0
- obfutil-3.4/obfutil/utils/logger.py +54 -0
- obfutil-3.4/obfutil/vault/__init__.py +5 -0
- obfutil-3.4/obfutil/vault/commands.py +788 -0
- obfutil-3.4/obfutil/vault/container.py +805 -0
- obfutil-3.4/obfutil/vault/manager.py +782 -0
- obfutil-3.4/obfutil.egg-info/PKG-INFO +364 -0
- obfutil-3.4/obfutil.egg-info/SOURCES.txt +33 -0
- obfutil-3.4/obfutil.egg-info/dependency_links.txt +1 -0
- obfutil-3.4/obfutil.egg-info/entry_points.txt +2 -0
- obfutil-3.4/obfutil.egg-info/requires.txt +2 -0
- obfutil-3.4/obfutil.egg-info/top_level.txt +1 -0
- obfutil-3.4/pyproject.toml +42 -0
- obfutil-3.4/setup.cfg +4 -0
obfutil-3.4/CHANGELOG.md
ADDED
|
@@ -0,0 +1,324 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
All notable changes to ObfUtil will be documented in this file.
|
|
4
|
+
|
|
5
|
+
## V1.0
|
|
6
|
+
|
|
7
|
+
**Added**
|
|
8
|
+
- First release of obfuscator with limited usage
|
|
9
|
+
|
|
10
|
+
## V1.1
|
|
11
|
+
|
|
12
|
+
**Added**
|
|
13
|
+
- .exe executable tool
|
|
14
|
+
- Password hiding with "*" characters
|
|
15
|
+
- File replacement after encryption
|
|
16
|
+
- New console interface
|
|
17
|
+
|
|
18
|
+
**Changed**
|
|
19
|
+
- Almost fully recoded main.py
|
|
20
|
+
- Flag-based system instead of options
|
|
21
|
+
|
|
22
|
+
## V1.2
|
|
23
|
+
|
|
24
|
+
**Added**
|
|
25
|
+
- Raw README.md
|
|
26
|
+
- Python script obfuscation
|
|
27
|
+
- Double obfuscation with marshal
|
|
28
|
+
- Temp file editing with re-encryption
|
|
29
|
+
|
|
30
|
+
**Changed**
|
|
31
|
+
- Single main script architecture
|
|
32
|
+
|
|
33
|
+
**Fixed**
|
|
34
|
+
- Password hiding for Windows and Linux
|
|
35
|
+
- Password exception handling
|
|
36
|
+
- Interface invalid flags
|
|
37
|
+
- Reorganized main.py for cleaner code structure
|
|
38
|
+
- Recoded encryption/decryption functions
|
|
39
|
+
|
|
40
|
+
## V1.3
|
|
41
|
+
|
|
42
|
+
**Added**
|
|
43
|
+
- New UI with usage, commands, options and examples
|
|
44
|
+
- Configuration system in main script
|
|
45
|
+
- Russian language localization
|
|
46
|
+
- Argument parser for options
|
|
47
|
+
|
|
48
|
+
**Removed**
|
|
49
|
+
- requirements.txt
|
|
50
|
+
|
|
51
|
+
## V1.4
|
|
52
|
+
|
|
53
|
+
**Added**
|
|
54
|
+
- config.ini external configuration
|
|
55
|
+
- More usage examples
|
|
56
|
+
- -v, --version flag
|
|
57
|
+
|
|
58
|
+
**Changed**
|
|
59
|
+
- Separated config, localization and main files
|
|
60
|
+
|
|
61
|
+
**Removed**
|
|
62
|
+
- German language from selection
|
|
63
|
+
|
|
64
|
+
## V1.5
|
|
65
|
+
|
|
66
|
+
**Added**
|
|
67
|
+
- 12-character password generation
|
|
68
|
+
|
|
69
|
+
**Fixed**
|
|
70
|
+
- config.ini creation in main script
|
|
71
|
+
|
|
72
|
+
**Changed**
|
|
73
|
+
- Examples format (removed # symbols)
|
|
74
|
+
|
|
75
|
+
## V2.0-aes256
|
|
76
|
+
|
|
77
|
+
**Added**
|
|
78
|
+
- AES-256 encryption support
|
|
79
|
+
- aes.py for Python script obfuscation
|
|
80
|
+
|
|
81
|
+
**Changed**
|
|
82
|
+
- Project to modular structure
|
|
83
|
+
- Locales separated into JSON files
|
|
84
|
+
|
|
85
|
+
**Fixed**
|
|
86
|
+
- config.py to properly create config file
|
|
87
|
+
|
|
88
|
+
**Removed**
|
|
89
|
+
- Legacy code
|
|
90
|
+
|
|
91
|
+
## V2.0-release
|
|
92
|
+
|
|
93
|
+
**Added**
|
|
94
|
+
- Advanced Python obfuscation (import rewriter, self-mod code, CFG, junk code)
|
|
95
|
+
- Flexible password generation (>8 symbols)
|
|
96
|
+
|
|
97
|
+
**Changed**
|
|
98
|
+
- Examples to more compact format
|
|
99
|
+
- Name from CryptoObfuscator to ObfUtil
|
|
100
|
+
- Global reorganization of all code
|
|
101
|
+
|
|
102
|
+
**Fixed**
|
|
103
|
+
- Main function structure
|
|
104
|
+
|
|
105
|
+
## V2.1
|
|
106
|
+
|
|
107
|
+
**Added**
|
|
108
|
+
- "Nuclear" obfuscation method for Python scripts
|
|
109
|
+
|
|
110
|
+
## V2.2
|
|
111
|
+
|
|
112
|
+
**Added**
|
|
113
|
+
- Default language recognition
|
|
114
|
+
- Logging via .log file
|
|
115
|
+
- .gitignore
|
|
116
|
+
- Troubleshooting support
|
|
117
|
+
|
|
118
|
+
**Fixed**
|
|
119
|
+
- --lang flag functionality
|
|
120
|
+
- --gen-key and --gen-pass commands
|
|
121
|
+
- Encryption/decryption/view operations
|
|
122
|
+
- UI formatting and version display
|
|
123
|
+
|
|
124
|
+
**Changed**
|
|
125
|
+
- Rebranded as "advanced encryption tool"
|
|
126
|
+
|
|
127
|
+
## V2.3
|
|
128
|
+
|
|
129
|
+
**Added**
|
|
130
|
+
- HMAC support for tamper detection
|
|
131
|
+
- New commands: encrypt-integrity, decrypt-integrity, verify-integrity
|
|
132
|
+
- File integrity check system with SHA-256 hashing
|
|
133
|
+
- Modular architecture with int_check.py module
|
|
134
|
+
- --cmds command for complete usage examples
|
|
135
|
+
|
|
136
|
+
**Changed**
|
|
137
|
+
- Better user experience with compact menu
|
|
138
|
+
- Expanded localization with new translations
|
|
139
|
+
- Examples located in module examples.py
|
|
140
|
+
|
|
141
|
+
**Fixed**
|
|
142
|
+
- Incomplete error handling in file operations
|
|
143
|
+
- Function signature mismatches in main.py
|
|
144
|
+
|
|
145
|
+
## V3.0-global
|
|
146
|
+
|
|
147
|
+
**Added**
|
|
148
|
+
- Encrypted vault system for secure file containers
|
|
149
|
+
- Vault operations: create/list/info/add/extract/remove/delete
|
|
150
|
+
- File integrity verification system with HMAC and SHA-256
|
|
151
|
+
- --move option for vault file operations
|
|
152
|
+
- German language support (Deutsch)
|
|
153
|
+
- Real file data storage in vaults with proper offset management
|
|
154
|
+
- Hash verification for file integrity checking
|
|
155
|
+
- File table management with dynamic offset calculations
|
|
156
|
+
- Vault metadata system with creation time and size tracking
|
|
157
|
+
- API support framework for future extensions
|
|
158
|
+
- Comprehensive README.md documentation
|
|
159
|
+
- Password-based and key-file encryption options for vaults
|
|
160
|
+
- Automatic duplicate file name handling in vaults
|
|
161
|
+
- Exponential backoff for failed vault access attempts
|
|
162
|
+
- Vault status tracking (ACTIVE/MISSING/LOCKED)
|
|
163
|
+
- Advanced batch operations for multiple files
|
|
164
|
+
- System status and configuration management commands
|
|
165
|
+
- Structured help system with categorized examples
|
|
166
|
+
- Extended batch statistics with file sizes and processing speed
|
|
167
|
+
- Vault usage analysis with capacity monitoring
|
|
168
|
+
- Enhanced configuration with system environment info
|
|
169
|
+
- Batch operations progress tracking and performance metrics
|
|
170
|
+
- File type analysis for vault content categorization
|
|
171
|
+
- Largest file identification in vault analysis
|
|
172
|
+
|
|
173
|
+
**Changed**
|
|
174
|
+
- Complete CLI interface redesign with cleaner command structure
|
|
175
|
+
- Multi-language help system with comprehensive examples
|
|
176
|
+
- Improved error messages and user feedback
|
|
177
|
+
- New command-style menu layout with proper tabulation
|
|
178
|
+
- Status/Config/Vault help now use centered header format
|
|
179
|
+
- Examples organized by categories with descriptions
|
|
180
|
+
- Enhanced vault storage architecture with better encryption
|
|
181
|
+
- Enhanced configuration display with key file status
|
|
182
|
+
- Batch operations show detailed size and speed metrics
|
|
183
|
+
- Project structure reorganization for better maintainability
|
|
184
|
+
- Transition from .exe utility to pip-installable plugin
|
|
185
|
+
- Vault container format with optimized data storage
|
|
186
|
+
- Logger integration throughout all modules
|
|
187
|
+
- Updated version to 3.1 in configuration system
|
|
188
|
+
|
|
189
|
+
**Fixed**
|
|
190
|
+
- File extraction now returns actual file data with integrity checks
|
|
191
|
+
- Hash calculation and verification for vault operations
|
|
192
|
+
- Language selection across all commands and subcommands
|
|
193
|
+
- Argument parsing for complex vault operations
|
|
194
|
+
- File offset management in vault container system
|
|
195
|
+
- Vault info command authentication and data display
|
|
196
|
+
- Used space calculation in KB for better visibility
|
|
197
|
+
- Vault list command formatting and information display
|
|
198
|
+
- Duplicate import conflicts in main.py
|
|
199
|
+
- API reference errors in status and config commands
|
|
200
|
+
- Inconsistent menu formatting and alignment issues
|
|
201
|
+
- Language switching bugs in vault commands
|
|
202
|
+
- Configuration file parsing errors with supported languages
|
|
203
|
+
- Batch operation statistics calculation methods
|
|
204
|
+
|
|
205
|
+
**Removed**
|
|
206
|
+
- Placeholder file extraction implementation
|
|
207
|
+
- Old vault command format and legacy syntax
|
|
208
|
+
- Unused localization entries and deprecated functions
|
|
209
|
+
- Unsecure temporary file handling methods
|
|
210
|
+
|
|
211
|
+
## V3.1
|
|
212
|
+
|
|
213
|
+
**Added**
|
|
214
|
+
- Consistent logger usage replacing print statements for operational messages
|
|
215
|
+
|
|
216
|
+
**Changed**
|
|
217
|
+
- Print statements to logger calls for system messages
|
|
218
|
+
- Debug prints to appropriate logger levels (INFO, WARNING, ERROR)
|
|
219
|
+
- Function documentation from Russian to English
|
|
220
|
+
|
|
221
|
+
**Fixed**
|
|
222
|
+
- Duplicate _save_config method in VaultManager class
|
|
223
|
+
- Redundant derive_hmac_key_from_password function in integrity.py
|
|
224
|
+
|
|
225
|
+
**Removed**
|
|
226
|
+
- Unnecessary debug print statements from encryption operations
|
|
227
|
+
- Redundant logging messages that duplicated functionality
|
|
228
|
+
- Direct console output for system events in favor of logger
|
|
229
|
+
- Excessive file operation logging in vault management
|
|
230
|
+
|
|
231
|
+
- Duplicate code in password input handling
|
|
232
|
+
|
|
233
|
+
## V3.2
|
|
234
|
+
|
|
235
|
+
**Added**
|
|
236
|
+
- Secure memory management with automatic zeroization for sensitive data
|
|
237
|
+
- Quick vault preview command for metadata access without full data loading
|
|
238
|
+
- Vault integrity verification system with deep and quick check modes
|
|
239
|
+
- Vault health status monitoring command
|
|
240
|
+
- Storage usage analysis command for vault capacity tracking
|
|
241
|
+
- Secure vault deletion with guaranteed memory cleanup
|
|
242
|
+
- Enhanced vault listing with health status and file count information
|
|
243
|
+
|
|
244
|
+
**Changed**
|
|
245
|
+
- Vault container operations to use secure memory management
|
|
246
|
+
- Vault open/close procedures to include automatic memory cleanup
|
|
247
|
+
- Integrity verification to focus on header and file table consistency
|
|
248
|
+
- Configuration display to show all system paths and directory status
|
|
249
|
+
- File integrity verification output to include clear conclusion messages
|
|
250
|
+
|
|
251
|
+
**Fixed**
|
|
252
|
+
- Quick vault verification status display and messaging
|
|
253
|
+
- Configuration path display in system information
|
|
254
|
+
- Integrity check conclusion reporting for encrypted files
|
|
255
|
+
- Vault health status calculation in listing operations
|
|
256
|
+
|
|
257
|
+
**Removed**
|
|
258
|
+
- File hash verification from integrity checks (deferred to V3.3)
|
|
259
|
+
- Secure header HMAC implementation (deferred to V3.3)
|
|
260
|
+
- Redundant memory buffers in vault operations
|
|
261
|
+
|
|
262
|
+
**Security**
|
|
263
|
+
- Implemented secure memory wiping for all decrypted data
|
|
264
|
+
- Added protection against memory forensic analysis
|
|
265
|
+
- Enhanced vault access controls with exponential backoff
|
|
266
|
+
- Improved sensitive data handling throughout operations
|
|
267
|
+
|
|
268
|
+
**Performance**
|
|
269
|
+
- Optimized vault preview with metadata-only loading
|
|
270
|
+
- Reduced memory footprint for large vault operations
|
|
271
|
+
- Improved response time for vault health checks
|
|
272
|
+
- Streamlined file addition process
|
|
273
|
+
|
|
274
|
+
|
|
275
|
+
## V3.3-fix
|
|
276
|
+
|
|
277
|
+
**Changed**
|
|
278
|
+
- vault secure-delete renamed to delete
|
|
279
|
+
|
|
280
|
+
**Fixed**
|
|
281
|
+
- Some duplicates of functions
|
|
282
|
+
- Some interface explanations were incorrect or not complete
|
|
283
|
+
|
|
284
|
+
**Removed**
|
|
285
|
+
- Health method due to its malfunction
|
|
286
|
+
- Delete method due to its uselesness
|
|
287
|
+
|
|
288
|
+
## [V3.4] - 2026-03-23
|
|
289
|
+
|
|
290
|
+
### Added
|
|
291
|
+
- **New vault commands**:
|
|
292
|
+
- `vault stats` - Detailed vault statistics (file types, sizes, largest files)
|
|
293
|
+
- `vault du` - Disk usage by folder inside vault
|
|
294
|
+
- `vault search` - Search files by pattern, extension, or substring
|
|
295
|
+
- `vault rename` - Rename files inside vault without re-encryption
|
|
296
|
+
- **`--force` flag** for `vault add` to overwrite existing files
|
|
297
|
+
- **Space check** before adding files to vault (previns "vault full" errors)
|
|
298
|
+
- **Search filters**: `--min-size`, `--max-size`, `--case`, `--type`
|
|
299
|
+
- **Progress indicator** for large file extraction (>10MB)
|
|
300
|
+
- **Stored credentials** in open vault for subsequent operations
|
|
301
|
+
|
|
302
|
+
### Changed
|
|
303
|
+
- `vault delete` now shows file count and size before confirmation
|
|
304
|
+
- Improved error messages with actionable suggestions
|
|
305
|
+
- Better hash verification during rename operations
|
|
306
|
+
- Enhanced `vault info` with fallback date from filesystem
|
|
307
|
+
- `vault preview` now shows formatted file sizes (KB, MB)
|
|
308
|
+
|
|
309
|
+
### Fixed
|
|
310
|
+
- File hash verification after rename operation
|
|
311
|
+
- `vault stats` now correctly displays file sizes
|
|
312
|
+
- `vault search` with `--min-size` now properly filters files
|
|
313
|
+
- `config --lang` command now works correctly
|
|
314
|
+
- Duplicate `_get_auth_method` in commands.py
|
|
315
|
+
- `deep_integrity_check` duplication in container.py
|
|
316
|
+
|
|
317
|
+
### Security
|
|
318
|
+
- Store passwords/keys in memory only while vault is open
|
|
319
|
+
- Secure memory cleanup on vault close
|
|
320
|
+
- Proper credential handling for rename/remove operations
|
|
321
|
+
|
|
322
|
+
### Removed
|
|
323
|
+
- `vault files` (use `vault preview`)
|
|
324
|
+
- `vault health` (non-functional, use `vault verify`)
|
obfutil-3.4/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2025 fearvbs
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
obfutil-3.4/MANIFEST.in
ADDED
obfutil-3.4/PKG-INFO
ADDED
|
@@ -0,0 +1,364 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: obfutil
|
|
3
|
+
Version: 3.4
|
|
4
|
+
Summary: Advanced encryption and obfuscation tool with secure vaults
|
|
5
|
+
Author-email: ObfUtil Team <obfutil@example.com>
|
|
6
|
+
License: MIT
|
|
7
|
+
Project-URL: Homepage, https://github.com/fearvbs/obfutil
|
|
8
|
+
Project-URL: Repository, https://github.com/fearvbs/obfutil
|
|
9
|
+
Project-URL: Issues, https://github.com/fearvbs/obfutil/issues
|
|
10
|
+
Classifier: Development Status :: 4 - Beta
|
|
11
|
+
Classifier: Intended Audience :: Developers
|
|
12
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
13
|
+
Classifier: Programming Language :: Python :: 3
|
|
14
|
+
Classifier: Programming Language :: Python :: 3.9
|
|
15
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
16
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
17
|
+
Requires-Python: >=3.9
|
|
18
|
+
Description-Content-Type: text/markdown
|
|
19
|
+
License-File: LICENSE
|
|
20
|
+
Requires-Dist: cryptography>=3.4
|
|
21
|
+
Requires-Dist: astor>=0.8
|
|
22
|
+
Dynamic: license-file
|
|
23
|
+
|
|
24
|
+
## README.md (English Version)
|
|
25
|
+
|
|
26
|
+
# ObfUtil - Advanced File Encryption & Obfuscation Tool
|
|
27
|
+
|
|
28
|
+

|
|
29
|
+

|
|
30
|
+

|
|
31
|
+

|
|
32
|
+
|
|
33
|
+
[Features](#-features) • [Installation](#-installation) • [Quick Start](#-quick-start) • [Vault Commands](#-vault-commands) • [API](#-python-api) • [Changelog](CHANGELOG.md)
|
|
34
|
+
|
|
35
|
+
## 📖 Table of Contents
|
|
36
|
+
|
|
37
|
+
- [Features](#-features)
|
|
38
|
+
- [Installation](#-installation)
|
|
39
|
+
- [Quick Start](#-quick-start)
|
|
40
|
+
- [Encryption Commands](#-encryption-commands)
|
|
41
|
+
- [Vault Commands](#-vault-commands)
|
|
42
|
+
- [Integrity Protection](#-integrity-protection)
|
|
43
|
+
- [Code Obfuscation](#-code-obfuscation)
|
|
44
|
+
- [Python API](#-python-api)
|
|
45
|
+
- [Configuration](#-configuration)
|
|
46
|
+
- [Contributing](#-contributing)
|
|
47
|
+
- [License](#-license)
|
|
48
|
+
|
|
49
|
+
## ✨ Features
|
|
50
|
+
|
|
51
|
+
| Category | Features |
|
|
52
|
+
|----------|----------|
|
|
53
|
+
| **Encryption** | AES-256 encryption, Password/Key file support, HMAC integrity verification |
|
|
54
|
+
| **Vaults** | Encrypted containers, File organization, Storage statistics, Disk usage by folder |
|
|
55
|
+
| **Search** | Pattern matching, Extension search, Size filters, Case sensitivity |
|
|
56
|
+
| **Obfuscation** | AST-based obfuscation, Variable renaming, String encryption, Anti-tamper |
|
|
57
|
+
| **Batch Operations** | Multi-file encryption, Progress tracking, Speed statistics |
|
|
58
|
+
| **Multi-language** | English, Russian, German |
|
|
59
|
+
| **Security** | Secure memory cleanup, Brute force protection, Hash verification |
|
|
60
|
+
|
|
61
|
+
## 📦 Installation
|
|
62
|
+
|
|
63
|
+
### From GitHub (Recommended)
|
|
64
|
+
|
|
65
|
+
```bash
|
|
66
|
+
# Clone the repository
|
|
67
|
+
git clone https://github.com/fearvbs/obfutil.git
|
|
68
|
+
cd obfutil
|
|
69
|
+
|
|
70
|
+
# Install in development mode
|
|
71
|
+
pip install -e .
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
### From PyPI
|
|
75
|
+
|
|
76
|
+
```bash
|
|
77
|
+
pip install obfutil
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
### Verify Installation
|
|
81
|
+
|
|
82
|
+
```bash
|
|
83
|
+
obfutil --help
|
|
84
|
+
obfutil vault --help
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
## 🚀 Quick Start
|
|
88
|
+
|
|
89
|
+
### Basic Encryption
|
|
90
|
+
|
|
91
|
+
```bash
|
|
92
|
+
# Encrypt with password
|
|
93
|
+
obfutil encrypt secret.txt --password
|
|
94
|
+
|
|
95
|
+
# Decrypt and edit
|
|
96
|
+
obfutil decrypt secret.txt.enc --password
|
|
97
|
+
|
|
98
|
+
# View encrypted content
|
|
99
|
+
obfutil view secret.txt.enc --password
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
### Vault Operations
|
|
103
|
+
|
|
104
|
+
```bash
|
|
105
|
+
# Create a vault
|
|
106
|
+
obfutil vault create mydocs --size 100 --password
|
|
107
|
+
|
|
108
|
+
# Add files
|
|
109
|
+
obfutil vault add mydocs document.pdf --password
|
|
110
|
+
|
|
111
|
+
# List contents
|
|
112
|
+
obfutil vault preview mydocs --password
|
|
113
|
+
|
|
114
|
+
# Extract file
|
|
115
|
+
obfutil vault extract mydocs document.pdf ./output.pdf --password
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
## 🔐 Encryption Commands
|
|
119
|
+
|
|
120
|
+
### Password-Based Encryption
|
|
121
|
+
|
|
122
|
+
```bash
|
|
123
|
+
# Encrypt
|
|
124
|
+
obfutil encrypt file.txt --password
|
|
125
|
+
|
|
126
|
+
# Decrypt with editing
|
|
127
|
+
obfutil decrypt file.txt.enc --password
|
|
128
|
+
|
|
129
|
+
# View only
|
|
130
|
+
obfutil view file.txt.enc --password
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
### Key File Encryption
|
|
134
|
+
|
|
135
|
+
```bash
|
|
136
|
+
# Generate key file
|
|
137
|
+
obfutil --gen-key
|
|
138
|
+
|
|
139
|
+
# Encrypt with key
|
|
140
|
+
obfutil encrypt file.txt --key-file
|
|
141
|
+
|
|
142
|
+
# Decrypt with key
|
|
143
|
+
obfutil decrypt file.txt.enc --key-file
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
### Batch Operations
|
|
147
|
+
|
|
148
|
+
```bash
|
|
149
|
+
# Encrypt all text files
|
|
150
|
+
obfutil batch-encrypt *.txt --password
|
|
151
|
+
|
|
152
|
+
# Decrypt all encrypted files
|
|
153
|
+
obfutil batch-decrypt *.enc --password
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
## 📁 Vault Commands
|
|
157
|
+
|
|
158
|
+
Vaults are encrypted containers that store multiple files with unified access control.
|
|
159
|
+
|
|
160
|
+
### Vault Management
|
|
161
|
+
|
|
162
|
+
| Command | Description | Example |
|
|
163
|
+
|---------|-------------|---------|
|
|
164
|
+
| `create` | Create new vault | `obfutil vault create myvault --size 100 --password` |
|
|
165
|
+
| `list` | List all vaults | `obfutil vault list` |
|
|
166
|
+
| `info` | Vault information | `obfutil vault info myvault --password` |
|
|
167
|
+
| `delete` | Securely delete vault | `obfutil vault delete myvault` |
|
|
168
|
+
|
|
169
|
+
### File Operations
|
|
170
|
+
|
|
171
|
+
| Command | Description | Example |
|
|
172
|
+
|---------|-------------|---------|
|
|
173
|
+
| `add` | Add file to vault | `obfutil vault add myvault file.txt --password` |
|
|
174
|
+
| `extract` | Extract file from vault | `obfutil vault extract myvault file.txt ./out.txt --password` |
|
|
175
|
+
| `remove` | Remove file from vault | `obfutil vault remove myvault file.txt --password` |
|
|
176
|
+
| `rename` | Rename file in vault | `obfutil vault rename myvault old.txt new.txt --password` |
|
|
177
|
+
|
|
178
|
+
### Advanced Commands (New in 3.4)
|
|
179
|
+
|
|
180
|
+
| Command | Description | Example |
|
|
181
|
+
|---------|-------------|---------|
|
|
182
|
+
| `stats` | Detailed statistics | `obfutil vault stats myvault --password` |
|
|
183
|
+
| `du` | Disk usage by folder | `obfutil vault du myvault --password` |
|
|
184
|
+
| `search` | Search files | `obfutil vault search myvault "*.pdf" --password` |
|
|
185
|
+
| `preview` | Quick file list | `obfutil vault preview myvault --password` |
|
|
186
|
+
| `verify` | Integrity check | `obfutil vault verify myvault --deep --password` |
|
|
187
|
+
| `storage` | Storage usage | `obfutil vault storage myvault --password` |
|
|
188
|
+
|
|
189
|
+
### Add Command Options
|
|
190
|
+
|
|
191
|
+
```bash
|
|
192
|
+
# Add with custom internal path
|
|
193
|
+
obfutil vault add myvault file.txt docs/file.txt --password
|
|
194
|
+
|
|
195
|
+
# Add and delete original (move)
|
|
196
|
+
obfutil vault add myvault file.txt --password --move
|
|
197
|
+
|
|
198
|
+
# Overwrite existing file
|
|
199
|
+
obfutil vault add myvault file.txt --password --force
|
|
200
|
+
```
|
|
201
|
+
|
|
202
|
+
### Search Filters
|
|
203
|
+
|
|
204
|
+
```bash
|
|
205
|
+
# Search by pattern
|
|
206
|
+
obfutil vault search myvault "*.pdf" --password
|
|
207
|
+
|
|
208
|
+
# Search by extension
|
|
209
|
+
obfutil vault search myvault "jpg" --type ext --password
|
|
210
|
+
|
|
211
|
+
# Search by substring
|
|
212
|
+
obfutil vault search myvault "secret" --type contains --password
|
|
213
|
+
|
|
214
|
+
# Search with size filters
|
|
215
|
+
obfutil vault search myvault "*.mp4" --min-size 10 --max-size 100 --password
|
|
216
|
+
|
|
217
|
+
# Case-sensitive search
|
|
218
|
+
obfutil vault search myvault "README" --case --password
|
|
219
|
+
```
|
|
220
|
+
|
|
221
|
+
### Statistics Output Example
|
|
222
|
+
|
|
223
|
+
```
|
|
224
|
+
=== Vault Statistics: myvault ===
|
|
225
|
+
==================================================
|
|
226
|
+
Total Files: 47
|
|
227
|
+
Total Size: 128.5 MB
|
|
228
|
+
Average Size: 2.7 MB
|
|
229
|
+
|
|
230
|
+
Largest File: video.mp4 (45.2 MB)
|
|
231
|
+
Oldest File: config.ini (2024-01-15)
|
|
232
|
+
Newest File: report.pdf (2026-03-23)
|
|
233
|
+
|
|
234
|
+
File Types:
|
|
235
|
+
.pdf 12 files 45.2 MB ████████████████░░░░░░░░░░░░░░
|
|
236
|
+
.jpg 8 files 32.1 MB ████████████░░░░░░░░░░░░░░░░░░
|
|
237
|
+
.txt 15 files 0.8 MB ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
|
|
238
|
+
.mp4 1 file 45.2 MB ████████████████░░░░░░░░░░░░░░
|
|
239
|
+
```
|
|
240
|
+
|
|
241
|
+
## 🛡️ Integrity Protection
|
|
242
|
+
|
|
243
|
+
```bash
|
|
244
|
+
# Encrypt with integrity check
|
|
245
|
+
obfutil encrypt-int sensitive.doc --password
|
|
246
|
+
|
|
247
|
+
# Verify file integrity
|
|
248
|
+
obfutil verify-int sensitive.doc.enc --password
|
|
249
|
+
|
|
250
|
+
# Decrypt with integrity verification
|
|
251
|
+
obfutil decrypt-int sensitive.doc.enc --password
|
|
252
|
+
```
|
|
253
|
+
|
|
254
|
+
## 🔧 Code Obfuscation
|
|
255
|
+
|
|
256
|
+
```bash
|
|
257
|
+
# Obfuscate Python script
|
|
258
|
+
obfutil obfuscate script.py
|
|
259
|
+
|
|
260
|
+
# Output: script_obf.py
|
|
261
|
+
```
|
|
262
|
+
|
|
263
|
+
Obfuscation features:
|
|
264
|
+
- Variable name randomization
|
|
265
|
+
- String encryption
|
|
266
|
+
- Code shredding
|
|
267
|
+
- Anti-tamper protection
|
|
268
|
+
- Junk code injection
|
|
269
|
+
|
|
270
|
+
## 🐍 Python API
|
|
271
|
+
|
|
272
|
+
```python
|
|
273
|
+
from obfutil.core.api import api
|
|
274
|
+
|
|
275
|
+
# File encryption
|
|
276
|
+
result = api.encrypt_file("document.txt", password="secret")
|
|
277
|
+
if result['success']:
|
|
278
|
+
print(f"Encrypted: {result['output_path']}")
|
|
279
|
+
|
|
280
|
+
# Vault operations
|
|
281
|
+
api.create_vault("myvault", size_mb=100, password="vaultpass")
|
|
282
|
+
api.add_file_to_vault("myvault", "file.txt", password="vaultpass")
|
|
283
|
+
|
|
284
|
+
# Get statistics
|
|
285
|
+
stats = api.get_vault_statistics("myvault", password="vaultpass")
|
|
286
|
+
print(f"Files: {stats['total_files']}, Size: {stats['total_size_mb']} MB")
|
|
287
|
+
|
|
288
|
+
# Search files
|
|
289
|
+
files = api.search_files_in_vault("myvault", "*.pdf", password="vaultpass")
|
|
290
|
+
for file in files:
|
|
291
|
+
print(f"Found: {file['path']} ({file['size_kb']} KB)")
|
|
292
|
+
|
|
293
|
+
# Batch operations
|
|
294
|
+
result = api.encrypt_files_batch(["file1.txt", "file2.txt"], password="secret")
|
|
295
|
+
print(f"Processed: {result['successful']}/{result['processed']} files")
|
|
296
|
+
```
|
|
297
|
+
|
|
298
|
+
## ⚙️ Configuration
|
|
299
|
+
|
|
300
|
+
All data is stored in `~/.obfutil/`:
|
|
301
|
+
|
|
302
|
+
```
|
|
303
|
+
~/.obfutil/
|
|
304
|
+
├── config.ini # User configuration
|
|
305
|
+
├── vaults/ # Encrypted vault files
|
|
306
|
+
│ ├── myvault.obfvault
|
|
307
|
+
│ └── vaults.json # Vault registry
|
|
308
|
+
├── logs/ # Operation logs
|
|
309
|
+
│ └── program.log
|
|
310
|
+
└── secret.key # Encryption key (if generated)
|
|
311
|
+
```
|
|
312
|
+
|
|
313
|
+
### Configuration Commands
|
|
314
|
+
|
|
315
|
+
```bash
|
|
316
|
+
# Show current configuration
|
|
317
|
+
obfutil config --show
|
|
318
|
+
|
|
319
|
+
# Change language
|
|
320
|
+
obfutil config --lang ru # Russian
|
|
321
|
+
obfutil config --lang de # German
|
|
322
|
+
obfutil config --lang en # English
|
|
323
|
+
|
|
324
|
+
# Generate password
|
|
325
|
+
obfutil --gen-pass 16
|
|
326
|
+
|
|
327
|
+
# Generate key file
|
|
328
|
+
obfutil --gen-key
|
|
329
|
+
```
|
|
330
|
+
|
|
331
|
+
## 🖥️ System Requirements
|
|
332
|
+
|
|
333
|
+
- **Python**: 3.9 or higher
|
|
334
|
+
- **Dependencies**: cryptography, astor
|
|
335
|
+
- **Platform**: Windows, Linux, macOS
|
|
336
|
+
- **Storage**: ~/.obfutil/ directory with write permissions
|
|
337
|
+
|
|
338
|
+
## 🤝 Contributing
|
|
339
|
+
|
|
340
|
+
1. Fork the repository
|
|
341
|
+
2. Create feature branch (`git checkout -b feature/amazing-feature`)
|
|
342
|
+
3. Commit changes (`git commit -m 'Add amazing feature'`)
|
|
343
|
+
4. Push to branch (`git push origin feature/amazing-feature`)
|
|
344
|
+
5. Open Pull Request
|
|
345
|
+
|
|
346
|
+
## 📄 License
|
|
347
|
+
|
|
348
|
+
MIT License - see [LICENSE](LICENSE) file for details.
|
|
349
|
+
|
|
350
|
+
---
|
|
351
|
+
|
|
352
|
+
## 🌟 Version 3.4 Highlights
|
|
353
|
+
|
|
354
|
+
- 📊 **`vault stats`** - Detailed file statistics and type distribution
|
|
355
|
+
- 🔍 **`vault search`** - Powerful search with size and type filters
|
|
356
|
+
- 📁 **`vault du`** - Disk usage analysis by folder
|
|
357
|
+
- ✏️ **`vault rename`** - Rename files inside vaults
|
|
358
|
+
- ⚡ **`--force`** - Overwrite existing files
|
|
359
|
+
- 🛡️ **Improved hash verification** - Fixed after rename operations
|
|
360
|
+
- 🌐 **Better error messages** - Actionable suggestions
|
|
361
|
+
|
|
362
|
+
---
|
|
363
|
+
|
|
364
|
+
*For full changelog, see [CHANGELOG.md](CHANGELOG.md)*
|