pentool 0.1.0__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.
Files changed (138) hide show
  1. pentool-0.1.0/LICENSE +34 -0
  2. pentool-0.1.0/PKG-INFO +231 -0
  3. pentool-0.1.0/README.md +188 -0
  4. pentool-0.1.0/pentool/__init__.py +4 -0
  5. pentool-0.1.0/pentool/__main__.py +16 -0
  6. pentool-0.1.0/pentool/api/__init__.py +41 -0
  7. pentool-0.1.0/pentool/api/base_api.py +48 -0
  8. pentool-0.1.0/pentool/api/comparer_api.py +19 -0
  9. pentool-0.1.0/pentool/api/decoder_api.py +24 -0
  10. pentool-0.1.0/pentool/api/intruder_api.py +171 -0
  11. pentool-0.1.0/pentool/api/proxy_api.py +210 -0
  12. pentool-0.1.0/pentool/api/repeater_api.py +57 -0
  13. pentool-0.1.0/pentool/api/scanner_api.py +266 -0
  14. pentool-0.1.0/pentool/api/sequencer_api.py +17 -0
  15. pentool-0.1.0/pentool/api/spider_api.py +106 -0
  16. pentool-0.1.0/pentool/api/target_api.py +87 -0
  17. pentool-0.1.0/pentool/cli/__init__.py +1 -0
  18. pentool-0.1.0/pentool/cli/main.py +98 -0
  19. pentool-0.1.0/pentool/cli/project.py +88 -0
  20. pentool-0.1.0/pentool/cli/proxy.py +173 -0
  21. pentool-0.1.0/pentool/cli/scan.py +115 -0
  22. pentool-0.1.0/pentool/core/__init__.py +1 -0
  23. pentool-0.1.0/pentool/core/config.py +171 -0
  24. pentool-0.1.0/pentool/core/crash_reporter.py +75 -0
  25. pentool-0.1.0/pentool/core/database.py +139 -0
  26. pentool-0.1.0/pentool/core/event_bus.py +207 -0
  27. pentool-0.1.0/pentool/core/events.py +160 -0
  28. pentool-0.1.0/pentool/core/features.py +373 -0
  29. pentool-0.1.0/pentool/core/license.py +274 -0
  30. pentool-0.1.0/pentool/core/logging.py +54 -0
  31. pentool-0.1.0/pentool/core/plugin_manager.py +312 -0
  32. pentool-0.1.0/pentool/core/project.py +31 -0
  33. pentool-0.1.0/pentool/core/storage_interface.py +307 -0
  34. pentool-0.1.0/pentool/core/updater.py +96 -0
  35. pentool-0.1.0/pentool/core/utils.py +36 -0
  36. pentool-0.1.0/pentool/modules/__init__.py +1 -0
  37. pentool-0.1.0/pentool/modules/comparer.py +177 -0
  38. pentool-0.1.0/pentool/modules/decoder.py +281 -0
  39. pentool-0.1.0/pentool/modules/intruder.py +428 -0
  40. pentool-0.1.0/pentool/modules/intruder_turbo.py +176 -0
  41. pentool-0.1.0/pentool/modules/match_replace.py +142 -0
  42. pentool-0.1.0/pentool/modules/proxy.py +797 -0
  43. pentool-0.1.0/pentool/modules/repeater.py +195 -0
  44. pentool-0.1.0/pentool/modules/sequencer.py +492 -0
  45. pentool-0.1.0/pentool/modules/spider.py +679 -0
  46. pentool-0.1.0/pentool/modules/target.py +185 -0
  47. pentool-0.1.0/pentool/modules/websocket_handler.py +249 -0
  48. pentool-0.1.0/pentool/plugins/__init__.py +1 -0
  49. pentool-0.1.0/pentool/plugins/builtin/__init__.py +1 -0
  50. pentool-0.1.0/pentool/plugins/builtin/payloads_pro.py +381 -0
  51. pentool-0.1.0/pentool/plugins/builtin/reports_pro.py +436 -0
  52. pentool-0.1.0/pentool/plugins/builtin/scanner_pro.py +291 -0
  53. pentool-0.1.0/pentool/plugins/example_plugin.py +39 -0
  54. pentool-0.1.0/pentool/services/__init__.py +1 -0
  55. pentool-0.1.0/pentool/services/base_service.py +60 -0
  56. pentool-0.1.0/pentool/services/intruder_service.py +94 -0
  57. pentool-0.1.0/pentool/services/proxy_service.py +178 -0
  58. pentool-0.1.0/pentool/services/repeater_service.py +85 -0
  59. pentool-0.1.0/pentool/services/scan_service.py +330 -0
  60. pentool-0.1.0/pentool/storage/__init__.py +0 -0
  61. pentool-0.1.0/pentool/storage/http_storage.py +506 -0
  62. pentool-0.1.0/pentool/storage/large_body_handler.py +50 -0
  63. pentool-0.1.0/pentool/storage/lru_cache.py +45 -0
  64. pentool-0.1.0/pentool/t.py +213 -0
  65. pentool-0.1.0/pentool/tui/__init__.py +1 -0
  66. pentool-0.1.0/pentool/tui/app.py +1429 -0
  67. pentool-0.1.0/pentool/tui/constants.py +79 -0
  68. pentool-0.1.0/pentool/tui/dialogs/__init__.py +0 -0
  69. pentool-0.1.0/pentool/tui/dialogs/cert_dialog.py +81 -0
  70. pentool-0.1.0/pentool/tui/dialogs/file_selector.py +226 -0
  71. pentool-0.1.0/pentool/tui/dialogs/load_from_proxy.py +125 -0
  72. pentool-0.1.0/pentool/tui/dialogs/match_replace_dialog.py +229 -0
  73. pentool-0.1.0/pentool/tui/dialogs/project_dialog.py +82 -0
  74. pentool-0.1.0/pentool/tui/dialogs/scope_dialog.py +224 -0
  75. pentool-0.1.0/pentool/tui/messages.py +103 -0
  76. pentool-0.1.0/pentool/tui/mixins/__init__.py +0 -0
  77. pentool-0.1.0/pentool/tui/mixins/app_mixin.py +59 -0
  78. pentool-0.1.0/pentool/tui/mixins/dialog_cancel.py +21 -0
  79. pentool-0.1.0/pentool/tui/mixins/request_context_menu.py +247 -0
  80. pentool-0.1.0/pentool/tui/mixins/tab_rename.py +89 -0
  81. pentool-0.1.0/pentool/tui/screens/__init__.py +31 -0
  82. pentool-0.1.0/pentool/tui/screens/comparer/__init__.py +3 -0
  83. pentool-0.1.0/pentool/tui/screens/comparer/screen.py +229 -0
  84. pentool-0.1.0/pentool/tui/screens/dashboard/__init__.py +2 -0
  85. pentool-0.1.0/pentool/tui/screens/dashboard/live_dashboard.py +730 -0
  86. pentool-0.1.0/pentool/tui/screens/dashboard/screen.py +771 -0
  87. pentool-0.1.0/pentool/tui/screens/decoder/__init__.py +3 -0
  88. pentool-0.1.0/pentool/tui/screens/decoder/screen.py +306 -0
  89. pentool-0.1.0/pentool/tui/screens/extensions/__init__.py +3 -0
  90. pentool-0.1.0/pentool/tui/screens/extensions/screen.py +24 -0
  91. pentool-0.1.0/pentool/tui/screens/intruder/__init__.py +3 -0
  92. pentool-0.1.0/pentool/tui/screens/intruder/screen.py +1356 -0
  93. pentool-0.1.0/pentool/tui/screens/proxy/__init__.py +3 -0
  94. pentool-0.1.0/pentool/tui/screens/proxy/screen.py +1554 -0
  95. pentool-0.1.0/pentool/tui/screens/repeater/__init__.py +3 -0
  96. pentool-0.1.0/pentool/tui/screens/repeater/screen.py +621 -0
  97. pentool-0.1.0/pentool/tui/screens/scanner/__init__.py +3 -0
  98. pentool-0.1.0/pentool/tui/screens/scanner/screen.py +1956 -0
  99. pentool-0.1.0/pentool/tui/screens/sequencer/__init__.py +3 -0
  100. pentool-0.1.0/pentool/tui/screens/sequencer/screen.py +516 -0
  101. pentool-0.1.0/pentool/tui/screens/settings/__init__.py +5 -0
  102. pentool-0.1.0/pentool/tui/screens/settings/hotkeys.py +134 -0
  103. pentool-0.1.0/pentool/tui/screens/settings/screen.py +540 -0
  104. pentool-0.1.0/pentool/tui/screens/spider/__init__.py +3 -0
  105. pentool-0.1.0/pentool/tui/screens/spider/screen.py +380 -0
  106. pentool-0.1.0/pentool/tui/screens/target/__init__.py +4 -0
  107. pentool-0.1.0/pentool/tui/screens/target/screen.py +358 -0
  108. pentool-0.1.0/pentool/tui/screens/terminal/__init__.py +5 -0
  109. pentool-0.1.0/pentool/tui/screens/terminal/screen.py +179 -0
  110. pentool-0.1.0/pentool/tui/widgets/__init__.py +1 -0
  111. pentool-0.1.0/pentool/tui/widgets/context_menu.py +148 -0
  112. pentool-0.1.0/pentool/tui/widgets/filter_bar.py +204 -0
  113. pentool-0.1.0/pentool/tui/widgets/inspector_panel.py +111 -0
  114. pentool-0.1.0/pentool/tui/widgets/menu.py +86 -0
  115. pentool-0.1.0/pentool/tui/widgets/menu_bar.py +238 -0
  116. pentool-0.1.0/pentool/tui/widgets/module_tabs.py +68 -0
  117. pentool-0.1.0/pentool/tui/widgets/payload_drop_zone.py +65 -0
  118. pentool-0.1.0/pentool/tui/widgets/request_editor.py +495 -0
  119. pentool-0.1.0/pentool/tui/widgets/resize_handle.py +116 -0
  120. pentool-0.1.0/pentool/tui/widgets/search_bar.py +112 -0
  121. pentool-0.1.0/pentool/tui/widgets/statusbar.py +96 -0
  122. pentool-0.1.0/pentool/tui/widgets/toolbar_button.py +68 -0
  123. pentool-0.1.0/pentool/utils/__init__.py +1 -0
  124. pentool-0.1.0/pentool/utils/cert.py +314 -0
  125. pentool-0.1.0/pentool/utils/coder.py +170 -0
  126. pentool-0.1.0/pentool/utils/copy_as.py +250 -0
  127. pentool-0.1.0/pentool/utils/diff.py +82 -0
  128. pentool-0.1.0/pentool/utils/http_client.py +145 -0
  129. pentool-0.1.0/pentool/utils/parser.py +227 -0
  130. pentool-0.1.0/pentool/utils/terminal_check.py +31 -0
  131. pentool-0.1.0/pentool.egg-info/PKG-INFO +231 -0
  132. pentool-0.1.0/pentool.egg-info/SOURCES.txt +136 -0
  133. pentool-0.1.0/pentool.egg-info/dependency_links.txt +1 -0
  134. pentool-0.1.0/pentool.egg-info/entry_points.txt +2 -0
  135. pentool-0.1.0/pentool.egg-info/requires.txt +17 -0
  136. pentool-0.1.0/pentool.egg-info/top_level.txt +1 -0
  137. pentool-0.1.0/pyproject.toml +108 -0
  138. pentool-0.1.0/setup.cfg +4 -0
pentool-0.1.0/LICENSE ADDED
@@ -0,0 +1,34 @@
1
+ GNU AFFERO GENERAL PUBLIC LICENSE
2
+ Version 3, 19 November 2007
3
+
4
+ Copyright (C) 2026 Pentool Project
5
+
6
+ This program is free software: you can redistribute it and/or modify
7
+ it under the terms of the GNU Affero General Public License as published
8
+ by the Free Software Foundation, either version 3 of the License, or
9
+ (at your option) any later version.
10
+
11
+ This program is distributed in the hope that it will be useful,
12
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
13
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14
+ GNU Affero General Public License for more details.
15
+
16
+ You should have received a copy of the GNU Affero General Public License
17
+ along with this program. If not, see <https://www.gnu.org/licenses/>.
18
+
19
+ ---
20
+
21
+ Additional Terms:
22
+
23
+ This software is dual-licensed:
24
+
25
+ 1. Community Edition: AGPL-3.0 (this license)
26
+ - Free for personal and open-source use
27
+ - Source code modifications must be shared
28
+
29
+ 2. Commercial/PRO Edition: Commercial License
30
+ - Contact: sales@pentool.dev
31
+ - For proprietary/closed-source use
32
+ - Includes enterprise features and support
33
+
34
+ For commercial licensing inquiries, please contact: sales@pentool.dev
pentool-0.1.0/PKG-INFO ADDED
@@ -0,0 +1,231 @@
1
+ Metadata-Version: 2.4
2
+ Name: pentool
3
+ Version: 0.1.0
4
+ Summary: Modern Web Pentesting TUI - Professional security testing tool
5
+ Author-email: Pentool Team <dev@pentool.dev>
6
+ License: AGPL-3.0
7
+ Project-URL: Homepage, https://github.com/docxqwerty/pentool
8
+ Project-URL: Repository, https://github.com/docxqwerty/pentool
9
+ Project-URL: Issues, https://github.com/docxqwerty/pentool/issues
10
+ Project-URL: Changelog, https://github.com/docxqwerty/pentool/blob/main/CHANGELOG.md
11
+ Keywords: pentesting,security,burp,proxy,scanner,intruder
12
+ Classifier: Development Status :: 3 - Alpha
13
+ Classifier: Intended Audience :: Developers
14
+ Classifier: Intended Audience :: Information Technology
15
+ Classifier: Topic :: Security
16
+ Classifier: License :: OSI Approved :: GNU Affero General Public License v3
17
+ Classifier: Programming Language :: Python :: 3
18
+ Classifier: Programming Language :: Python :: 3.10
19
+ Classifier: Programming Language :: Python :: 3.11
20
+ Classifier: Programming Language :: Python :: 3.12
21
+ Classifier: Operating System :: OS Independent
22
+ Classifier: Environment :: Console
23
+ Requires-Python: >=3.10
24
+ Description-Content-Type: text/markdown
25
+ License-File: LICENSE
26
+ Requires-Dist: textual>=0.40.0
27
+ Requires-Dist: aiohttp>=3.9.0
28
+ Requires-Dist: aiosqlite>=0.19.0
29
+ Requires-Dist: beautifulsoup4>=4.12.0
30
+ Requires-Dist: click>=8.1.0
31
+ Requires-Dist: cryptography>=41.0.0
32
+ Requires-Dist: pyyaml>=6.0
33
+ Requires-Dist: rich>=13.0.0
34
+ Provides-Extra: dev
35
+ Requires-Dist: pytest>=7.4.0; extra == "dev"
36
+ Requires-Dist: pytest-asyncio>=0.21.0; extra == "dev"
37
+ Requires-Dist: pytest-cov>=4.1.0; extra == "dev"
38
+ Requires-Dist: pytest-timeout>=2.1.0; extra == "dev"
39
+ Requires-Dist: ruff>=0.1.0; extra == "dev"
40
+ Requires-Dist: mypy>=1.5.0; extra == "dev"
41
+ Requires-Dist: pre-commit>=3.4.0; extra == "dev"
42
+ Dynamic: license-file
43
+
44
+ # 🔐 PENTOOL — Modern Web Pentesting TUI
45
+
46
+ **Версия:** 1.0 (Pre-release)
47
+ **Статус:** 87% готовности к релизу
48
+ **Автор:** @sudores (DoctorX)
49
+
50
+ Современный инструмент для тестирования безопасности веб-приложений с интуитивным TUI интерфейсом.
51
+
52
+ ---
53
+
54
+ ## 🚀 Быстрый старт
55
+
56
+ ```bash
57
+ # Установка
58
+ pip install pentool
59
+
60
+ # Запуск
61
+ pentool
62
+
63
+ # Или из исходников
64
+ git clone https://github.com/pentool/pentool.git
65
+ cd pentool
66
+ pip install -e .
67
+ pentool
68
+ ```
69
+
70
+ ---
71
+
72
+ ## ✨ Ключевые возможности
73
+
74
+ ### Основные инструменты (Free)
75
+ - **Proxy** — HTTP/HTTPS перехват с SSL
76
+ - **Repeater** — модификация и повтор запросов
77
+ - **Intruder** — автоматизированные атаки с payloads
78
+ - **Decoder** — кодирование/декодирование
79
+ - **Comparer** — сравнение запросов/ответов
80
+ - **HTTPQL** — мощная фильтрация истории
81
+
82
+ ### PRO возможности
83
+ - **Turbo Mode Intruder** 🚀 — 10x ускорение (100-200 req/sec)
84
+ - **Scanner** — автоматическое обнаружение уязвимостей (23 проверки)
85
+ - **Spider** — автоматическое сканирование сайтов
86
+ - **WebSocket** — перехват и модификация WS трафика
87
+ - **AI Analysis** — анализ уязвимостей с помощью GPT-4
88
+ - **Plugins** — система расширений
89
+
90
+ ---
91
+
92
+ ## 📦 Установка
93
+
94
+ ### Требования
95
+ - Python 3.10+
96
+ - Linux / macOS / Windows
97
+
98
+ ### Из PyPI
99
+ ```bash
100
+ pip install pentool
101
+ ```
102
+
103
+ ### Из исходников
104
+ ```bash
105
+ git clone https://github.com/pentool/pentool.git
106
+ cd pentool
107
+ python -m venv venv
108
+ source venv/bin/activate # или venv\Scripts\activate на Windows
109
+ pip install -e ".[dev]"
110
+ ```
111
+
112
+ ---
113
+
114
+ ## 📖 Документация
115
+
116
+ - **Quick Start:** `docs/QUICKSTART.md`
117
+ - **User Guide:** `docs/user/`
118
+ - **API Reference:** `docs/API_CONTRACTS.md`
119
+ - **Architecture:** `docs/ARCHITECTURE_AUDIT.md`
120
+
121
+ ---
122
+
123
+ ## 🧪 Тестирование
124
+
125
+ ```bash
126
+ # Запустить все тесты
127
+ pytest tests/
128
+
129
+ # С coverage
130
+ pytest tests/ --cov=pentool --cov-report=html
131
+
132
+ # Только unit-тесты
133
+ pytest tests/unit/ -v
134
+ ```
135
+
136
+ **Текущий статус:**
137
+ - Unit-тесты: 1348/1360 PASSED (99.1%)
138
+ - Coverage: 29%
139
+ - Integration: требуют отладки
140
+
141
+ ---
142
+
143
+ ## 🏗️ Архитектура
144
+
145
+ ```
146
+ pentool/
147
+ ├── core/ # Ядро: EventBus, license, features
148
+ ├── modules/ # Логика: proxy, scanner, intruder
149
+ ├── api/ # API фасады для модулей
150
+ ├── services/ # Оркестрация бизнес-логики
151
+ ├── storage/ # База данных (SQLite)
152
+ ├── tui/ # TUI интерфейс (Textual)
153
+ ├── cli/ # CLI команды
154
+ ├── plugins/ # Система плагинов
155
+ └── utils/ # Вспомогательные утилиты
156
+ ```
157
+
158
+ ---
159
+
160
+ ## 💰 Тарифные планы
161
+
162
+ | Plan | Цена | Инструменты | Лимиты |
163
+ |------|------|-------------|--------|
164
+ | **Free** | $0 | Proxy, Repeater, Intruder Basic, Decoder | 500 записей истории, 10 потоков |
165
+ | **Lite** | $29/мес | + Scanner, Spider, Match&Replace | 5K истории, 20 потоков |
166
+ | **Medium** | $99/мес | + WebSocket, Plugins, Turbo Mode | 50K истории, 50 потоков |
167
+ | **Full** | $299/мес | + AI Analysis, PRO Reports, API | Unlimited |
168
+
169
+ ---
170
+
171
+ ## 🚀 Killer Features
172
+
173
+ ### Turbo Mode Intruder
174
+ 10x ускорение через HTTP Keep-Alive и connection pooling:
175
+ - Обычный режим: ~10-20 req/sec
176
+ - Turbo режим: ~100-200 req/sec
177
+
178
+ ```python
179
+ from pentool.api.intruder_api import IntruderAPI
180
+
181
+ api = IntruderAPI()
182
+ await api.start_attack(config, turbo_mode=True) # 🚀
183
+ ```
184
+
185
+ ### Коммерческие планы
186
+ 4 тарифа с автоматической проверкой лимитов:
187
+ ```python
188
+ from pentool.core.features import has_feature, get_limit
189
+
190
+ if has_feature("turbo_mode", plan):
191
+ max_threads = get_limit("intruder_max_threads", plan)
192
+ ```
193
+
194
+ ---
195
+
196
+ ## 🤝 Contributing
197
+
198
+ Contributions приветствуются! Перед началом:
199
+ 1. Прочитай `docs/ARCHITECTURE_AUDIT.md`
200
+ 2. Проверь `MYPLANS/MASTER_PLAN.md` для актуальных задач
201
+ 3. Запусти тесты перед PR
202
+
203
+ ---
204
+
205
+ ## 📄 License
206
+
207
+ - **Community Edition:** AGPL-3.0
208
+ - **PRO Edition:** Commercial license
209
+
210
+ ---
211
+
212
+ ## 🔗 Ссылки
213
+
214
+ - **GitHub:** https://github.com/pentool/pentool
215
+ - **Docs:** https://pentool.dev/docs
216
+ - **Discord:** https://discord.gg/pentool
217
+
218
+ ---
219
+
220
+ ## 📊 Статус проекта
221
+
222
+ - **Готовность:** 87%
223
+ - **Последнее обновление:** 2026-07-22
224
+ - **Тесты:** 99.1% проходят
225
+ - **Прогноз релиза:** 1-8 августа 2026
226
+
227
+ **Проект в активной разработке. Релиз 1.0 скоро!** 🚀
228
+
229
+ ---
230
+
231
+ *Создано с помощью Claude Opus 4.8*
@@ -0,0 +1,188 @@
1
+ # 🔐 PENTOOL — Modern Web Pentesting TUI
2
+
3
+ **Версия:** 1.0 (Pre-release)
4
+ **Статус:** 87% готовности к релизу
5
+ **Автор:** @sudores (DoctorX)
6
+
7
+ Современный инструмент для тестирования безопасности веб-приложений с интуитивным TUI интерфейсом.
8
+
9
+ ---
10
+
11
+ ## 🚀 Быстрый старт
12
+
13
+ ```bash
14
+ # Установка
15
+ pip install pentool
16
+
17
+ # Запуск
18
+ pentool
19
+
20
+ # Или из исходников
21
+ git clone https://github.com/pentool/pentool.git
22
+ cd pentool
23
+ pip install -e .
24
+ pentool
25
+ ```
26
+
27
+ ---
28
+
29
+ ## ✨ Ключевые возможности
30
+
31
+ ### Основные инструменты (Free)
32
+ - **Proxy** — HTTP/HTTPS перехват с SSL
33
+ - **Repeater** — модификация и повтор запросов
34
+ - **Intruder** — автоматизированные атаки с payloads
35
+ - **Decoder** — кодирование/декодирование
36
+ - **Comparer** — сравнение запросов/ответов
37
+ - **HTTPQL** — мощная фильтрация истории
38
+
39
+ ### PRO возможности
40
+ - **Turbo Mode Intruder** 🚀 — 10x ускорение (100-200 req/sec)
41
+ - **Scanner** — автоматическое обнаружение уязвимостей (23 проверки)
42
+ - **Spider** — автоматическое сканирование сайтов
43
+ - **WebSocket** — перехват и модификация WS трафика
44
+ - **AI Analysis** — анализ уязвимостей с помощью GPT-4
45
+ - **Plugins** — система расширений
46
+
47
+ ---
48
+
49
+ ## 📦 Установка
50
+
51
+ ### Требования
52
+ - Python 3.10+
53
+ - Linux / macOS / Windows
54
+
55
+ ### Из PyPI
56
+ ```bash
57
+ pip install pentool
58
+ ```
59
+
60
+ ### Из исходников
61
+ ```bash
62
+ git clone https://github.com/pentool/pentool.git
63
+ cd pentool
64
+ python -m venv venv
65
+ source venv/bin/activate # или venv\Scripts\activate на Windows
66
+ pip install -e ".[dev]"
67
+ ```
68
+
69
+ ---
70
+
71
+ ## 📖 Документация
72
+
73
+ - **Quick Start:** `docs/QUICKSTART.md`
74
+ - **User Guide:** `docs/user/`
75
+ - **API Reference:** `docs/API_CONTRACTS.md`
76
+ - **Architecture:** `docs/ARCHITECTURE_AUDIT.md`
77
+
78
+ ---
79
+
80
+ ## 🧪 Тестирование
81
+
82
+ ```bash
83
+ # Запустить все тесты
84
+ pytest tests/
85
+
86
+ # С coverage
87
+ pytest tests/ --cov=pentool --cov-report=html
88
+
89
+ # Только unit-тесты
90
+ pytest tests/unit/ -v
91
+ ```
92
+
93
+ **Текущий статус:**
94
+ - Unit-тесты: 1348/1360 PASSED (99.1%)
95
+ - Coverage: 29%
96
+ - Integration: требуют отладки
97
+
98
+ ---
99
+
100
+ ## 🏗️ Архитектура
101
+
102
+ ```
103
+ pentool/
104
+ ├── core/ # Ядро: EventBus, license, features
105
+ ├── modules/ # Логика: proxy, scanner, intruder
106
+ ├── api/ # API фасады для модулей
107
+ ├── services/ # Оркестрация бизнес-логики
108
+ ├── storage/ # База данных (SQLite)
109
+ ├── tui/ # TUI интерфейс (Textual)
110
+ ├── cli/ # CLI команды
111
+ ├── plugins/ # Система плагинов
112
+ └── utils/ # Вспомогательные утилиты
113
+ ```
114
+
115
+ ---
116
+
117
+ ## 💰 Тарифные планы
118
+
119
+ | Plan | Цена | Инструменты | Лимиты |
120
+ |------|------|-------------|--------|
121
+ | **Free** | $0 | Proxy, Repeater, Intruder Basic, Decoder | 500 записей истории, 10 потоков |
122
+ | **Lite** | $29/мес | + Scanner, Spider, Match&Replace | 5K истории, 20 потоков |
123
+ | **Medium** | $99/мес | + WebSocket, Plugins, Turbo Mode | 50K истории, 50 потоков |
124
+ | **Full** | $299/мес | + AI Analysis, PRO Reports, API | Unlimited |
125
+
126
+ ---
127
+
128
+ ## 🚀 Killer Features
129
+
130
+ ### Turbo Mode Intruder
131
+ 10x ускорение через HTTP Keep-Alive и connection pooling:
132
+ - Обычный режим: ~10-20 req/sec
133
+ - Turbo режим: ~100-200 req/sec
134
+
135
+ ```python
136
+ from pentool.api.intruder_api import IntruderAPI
137
+
138
+ api = IntruderAPI()
139
+ await api.start_attack(config, turbo_mode=True) # 🚀
140
+ ```
141
+
142
+ ### Коммерческие планы
143
+ 4 тарифа с автоматической проверкой лимитов:
144
+ ```python
145
+ from pentool.core.features import has_feature, get_limit
146
+
147
+ if has_feature("turbo_mode", plan):
148
+ max_threads = get_limit("intruder_max_threads", plan)
149
+ ```
150
+
151
+ ---
152
+
153
+ ## 🤝 Contributing
154
+
155
+ Contributions приветствуются! Перед началом:
156
+ 1. Прочитай `docs/ARCHITECTURE_AUDIT.md`
157
+ 2. Проверь `MYPLANS/MASTER_PLAN.md` для актуальных задач
158
+ 3. Запусти тесты перед PR
159
+
160
+ ---
161
+
162
+ ## 📄 License
163
+
164
+ - **Community Edition:** AGPL-3.0
165
+ - **PRO Edition:** Commercial license
166
+
167
+ ---
168
+
169
+ ## 🔗 Ссылки
170
+
171
+ - **GitHub:** https://github.com/pentool/pentool
172
+ - **Docs:** https://pentool.dev/docs
173
+ - **Discord:** https://discord.gg/pentool
174
+
175
+ ---
176
+
177
+ ## 📊 Статус проекта
178
+
179
+ - **Готовность:** 87%
180
+ - **Последнее обновление:** 2026-07-22
181
+ - **Тесты:** 99.1% проходят
182
+ - **Прогноз релиза:** 1-8 августа 2026
183
+
184
+ **Проект в активной разработке. Релиз 1.0 скоро!** 🚀
185
+
186
+ ---
187
+
188
+ *Создано с помощью Claude Opus 4.8*
@@ -0,0 +1,4 @@
1
+ """Pentool — консольный аналог Burp Suite с TUI на Textual."""
2
+
3
+ __version__ = "0.1.0"
4
+ __author__ = "pentool"
@@ -0,0 +1,16 @@
1
+ """Точка входа: без аргументов — TUI, с аргументами — CLI."""
2
+
3
+ import sys
4
+
5
+
6
+ def main() -> None:
7
+ if len(sys.argv) > 1:
8
+ from pentool.cli.main import cli
9
+ cli()
10
+ else:
11
+ from pentool.tui.app import PentoolApp
12
+ PentoolApp().run()
13
+
14
+
15
+ if __name__ == "__main__":
16
+ main()
@@ -0,0 +1,41 @@
1
+ """API-слой pentool — публичный интерфейс между modules/ и TUI/CLI."""
2
+
3
+ from pentool.api.proxy_api import ProxyAPI, InterceptedRequest, MatchReplaceRule
4
+ from pentool.api.repeater_api import RepeaterAPI
5
+ from pentool.api.scanner_api import ScannerAPI
6
+ from pentool.api.intruder_api import IntruderAPI, IntruderConfig, IntruderAttack
7
+ from pentool.api.spider_api import SpiderAPI
8
+ from pentool.api.target_api import TargetAPI
9
+ # Decoder/Comparer/Sequencer — функциональные API без класса-обёртки
10
+ from pentool.api.decoder_api import ( # noqa: F401
11
+ OPERATIONS, OP_LABELS, DecoderChain,
12
+ decode_op, decode_smart, encode_op, run_chain,
13
+ )
14
+ from pentool.api.comparer_api import ( # noqa: F401
15
+ compare, compare_lines, CompareStats, DiffLine, DiffResult,
16
+ )
17
+ from pentool.api.sequencer_api import ( # noqa: F401
18
+ Sequencer, SequencerReport, token_entropy, charset_size,
19
+ )
20
+
21
+ __all__ = [
22
+ # Proxy
23
+ "ProxyAPI", "InterceptedRequest", "MatchReplaceRule",
24
+ # Repeater
25
+ "RepeaterAPI",
26
+ # Scanner
27
+ "ScannerAPI",
28
+ # Intruder
29
+ "IntruderAPI", "IntruderConfig", "IntruderAttack",
30
+ # Spider
31
+ "SpiderAPI",
32
+ # Target
33
+ "TargetAPI",
34
+ # Decoder
35
+ "OPERATIONS", "OP_LABELS", "DecoderChain",
36
+ "decode_op", "decode_smart", "encode_op", "run_chain",
37
+ # Comparer
38
+ "compare", "compare_lines", "CompareStats", "DiffLine", "DiffResult",
39
+ # Sequencer
40
+ "Sequencer", "SequencerReport", "token_entropy", "charset_size",
41
+ ]
@@ -0,0 +1,48 @@
1
+ """ExportableAPI — base mixin for API classes supporting project persistence."""
2
+
3
+ from __future__ import annotations
4
+
5
+ from abc import ABC, abstractmethod
6
+
7
+
8
+ class ExportableAPI(ABC):
9
+ """Mixin for API classes that support project data export/import.
10
+
11
+ Subclasses must implement export_project_data and import_project_data.
12
+ These methods are called by core.project.save_project/load_project.
13
+
14
+ Usage::
15
+
16
+ class MyAPI(ExportableAPI):
17
+ def export_project_data(self) -> dict:
18
+ return {"my_data": [...]}
19
+
20
+ def import_project_data(self, data: dict) -> int:
21
+ items = data.get("my_data", [])
22
+ # restore items
23
+ return len(items)
24
+ """
25
+
26
+ @abstractmethod
27
+ def export_project_data(self) -> dict:
28
+ """Export module state to a serializable dict.
29
+
30
+ Returns:
31
+ dict: Module-specific data structure (e.g., {"results": [...]}).
32
+ Must be JSON-serializable (no datetime, use .isoformat()).
33
+ """
34
+ raise NotImplementedError
35
+
36
+ @abstractmethod
37
+ def import_project_data(self, data: dict) -> int | tuple[int, str]:
38
+ """Import module state from a loaded project dict.
39
+
40
+ Args:
41
+ data: The module's block from project.json (e.g., data["intruder"]).
42
+
43
+ Returns:
44
+ int: Number of items loaded successfully.
45
+ OR
46
+ tuple[int, str]: (count, error_message) — empty string if OK.
47
+ """
48
+ raise NotImplementedError
@@ -0,0 +1,19 @@
1
+ """ComparerAPI — публичный интерфейс Comparer для TUI."""
2
+
3
+ from __future__ import annotations
4
+
5
+ from pentool.modules.comparer import ( # noqa: F401
6
+ compare,
7
+ compare_lines,
8
+ CompareStats,
9
+ DiffLine,
10
+ DiffResult,
11
+ )
12
+
13
+ __all__ = [
14
+ "compare",
15
+ "compare_lines",
16
+ "CompareStats",
17
+ "DiffLine",
18
+ "DiffResult",
19
+ ]
@@ -0,0 +1,24 @@
1
+ """DecoderAPI — публичный интерфейс Decoder/Encoder для TUI."""
2
+
3
+ from __future__ import annotations
4
+
5
+ # Реэкспорт всего публичного из modules/decoder
6
+ from pentool.modules.decoder import ( # noqa: F401
7
+ OPERATIONS,
8
+ OP_LABELS,
9
+ DecoderChain,
10
+ decode_op,
11
+ decode_smart,
12
+ encode_op,
13
+ run_chain,
14
+ )
15
+
16
+ __all__ = [
17
+ "OPERATIONS",
18
+ "OP_LABELS",
19
+ "DecoderChain",
20
+ "decode_op",
21
+ "decode_smart",
22
+ "encode_op",
23
+ "run_chain",
24
+ ]