Обзор
HaluFiles — бесплатный файлообменник. Загружаете файл на сервер, получаете короткую ссылку и отправляете её клиенту. При открытии ссылки файл скачивается автоматически (если включён режим автоскачивания).
- Любые форматы: EXE, ZIP, PDF и др.
- Максимальный размер одного файла — 500 MB
- Безлимитные загрузки для всех пользователей
- Сшивка PDF с одним или несколькими EXE в один документ
Загрузка EXE / любого файла
- Откройте главную страницу и прокрутите до блока «Загрузить EXE / файл».
- Перетащите файл в зону загрузки или нажмите для выбора с диска.
- Нажмите «Получить ссылку».
- Скопируйте ссылку формата
/d/<id>и отправьте клиенту.
Файл сохраняется как есть, без проверки MIME-типа. Имя на диске клиента будет таким же, как при загрузке.
PDF + один или несколько EXE
Можно «сшить» PDF-документ с одним или несколькими EXE-файлами. В итоге получается один PDF со вложениями.
- Выберите PDF в левой зоне загрузки.
- Выберите один или несколько EXE в правой зоне (удерживайте Ctrl/Cmd для множественного выбора).
- Нажмите «Сшить и получить ссылку».
Ограничение: до 20 EXE за одну сшивку. Если имена файлов совпадают, к дубликатам добавляется суффикс _1, _2 и т.д.
Водяной знак и обфускация PDF настраиваются в админке (вкладка PDF).
PDF + BAT (автозапуск)
Сшивает PDF с файлом .bat. При открытии PDF в Adobe Acrobat Reader на Windows скрипт извлекается и запускается автоматически (JavaScript exportDataObject).
- Вкладка «PDF + BAT» — слева PDF или скриншот, справа
.bat. - Нажмите «Сшить PDF + BAT».
- Отправьте ссылку клиенту.
Встроенный просмотр PDF в браузере JavaScript не выполняет — нужен Adobe Reader. До 10 BAT за одну сшивку.
API: POST /api/stitch-bat — поля pdf и bat (можно несколько).
EXE в EXE
Упаковка одного EXE (inner / payload) внутрь другого (host). Результат — один файл host_packed.exe.
- inner — при запуске стартует только payload
- host — только внешний EXE
- both — сначала host, затем inner
Если собран launcher stub (assets/pack_launcher.exe), он добавляется в начало файла и выполняет распаковку. Без stub — overlay-привязка (host + inner + footer).
Важно: подписывайте уже готовый упакованный EXE. Любая пересборка или упаковка сбрасывает цифровую подпись.
Цифровая подпись (Code Signing)
Подпись Authenticode от доверенного центра сертификации (Sectigo, DigiCert, GlobalSign и др.) снижает количество ложных срабатываний антивирусов и SmartScreen в Windows.
Что нужно
- Сертификат Code Signing (OV или EV). EV даёт более быстрое доверие SmartScreen, но дороже и требует USB-токен.
- Файл контейнера
.pfx/.p12и пароль от него. - Windows с Windows SDK (утилита
signtool.exe).
Когда подписывать
- Собрали или упаковали финальный
.exe(вкладка «EXE в EXE», ваш билд и т.д.). - Подписали последним шагом — до загрузки на HaluFiles.
- Загрузили уже подписанный файл и раздали ссылку.
HaluFiles не подписывает файлы на сервере автоматически: для Authenticode нужен ваш закрытый ключ, его нельзя безопасно хранить на VPS.
Скрипт подписи (Windows)
В репозитории: scripts/sign-exe.ps1
$env:CODE_SIGN_PFX = "C:\certs\codesign.pfx"
$env:CODE_SIGN_PASSWORD = "ваш_пароль"
.\scripts\sign-exe.ps1 -Path "C:\build\app_packed.exe"
Timestamp по умолчанию: Sectigo (http://timestamp.sectigo.com). Подпись останется действительной после истечения сертификата.
Launcher
Если заданы CODE_SIGN_PFX и CODE_SIGN_PASSWORD, сборка launcher (scripts/build_pack_launcher.ps1) подпишет assets/pack_launcher.exe автоматически.
Проверка
- ПКМ по файлу → Свойства → вкладка «Цифровые подписи».
- Или:
signtool verify /pa /v app.exe
BAT / VBS загрузчик
Генерирует .bat (и опционально .vbs) для Windows.
- Подписанная ссылка — URL с
?exp=...&sig=..., живёт ограниченное время (по умолчанию 1–24 ч) - SHA-256 — после скачивания BAT проверяет целостность файла
- User-Agent —
HaluFilesDownloader/1.0; сервер принимает подписанные ссылки только с этим UA - Задержка 2 сек перед стартом загрузки
- Проверка записи в папку, где лежит BAT
- Цветной вывод — зелёный OK, красный ERROR (ANSI)
- curl — с прогресс-баром (
--progress-bar, без silent) - VBS — скрытый BAT + всплывающее окно «Downloading…» / «Complete»
- Самоудаление BAT — опционально, после успеха
API: POST /api/generate-bat — поля file_id, run_after, download_method, include_vbs, self_delete, url_ttl (секунды).
Типы ссылок
| URL | Назначение |
|---|---|
/d/<id> |
Страница раздачи: лендинг + автоскачивание (или кнопка — зависит от настроек) |
/f/<id> |
Прямая отдача файла без страницы |
/demo |
Пример готовой ссылки (если демо создано в админке) |
Пример: http://https://halufile.xyz/d/xK9mP2nQ
Админка
URL: /admin. Пароль по умолчанию: halluka05 (или переменная окружения ADMIN_PASSWORD).
- Домен — базовый хост для share-ссылок
- Автоскачка — режим, задержка, тексты лендинга
- Редирект — URL для режимов redirect / redirect_after
- PDF — водяной знак, обфускация, пересоздание демо
- Файлы — список загруженных файлов, удаление
API
Все эндпоинты на том же хосте. Ответы — JSON.
POST /api/upload
multipart/form-data, поле file.
POST /api/stitch
multipart/form-data:
pdf— один PDFexe— один или несколько EXE (можно повторять поле или передать массив черезgetlist)
POST /api/pack-exe
multipart/form-data: host, inner, run_mode (inner|host|both), use_launcher (0|1).
POST /api/generate-bat
JSON: {"file_id": "...", "run_after": true, "download_method": "auto", "include_vbs": false, "self_delete": false, "url_ttl": 3600}
GET /api/files
Список всех файлов на сервере.
GET /api/access
Статус доступа (всегда безлимит).
GET /health
Проверка работоспособности сервиса.