Как запаковать exe программу

Я ничего не понимаю. как скопировать в Visual Studio файлы (шейдеры, картинки) в exe файл?
Мне нужно чтобы как можно меньше торчало файлов в открытом виде.
Таких файлов разумеется очень много и разложены по директориям.

#1
16:30, 17 окт 2016

viennahd
> Я ничего не понимаю. как скопировать в Visual Studio файлы (шейдеры, картинки) в exe файл?
Shift+Alt+A. Когда добавишь, нажми правой кнопкой мыши на файле и выбери Свойства. А там уже укажи тип.

#2
16:41, 17 окт 2016

Но это добавляет в сам проект (sln), но никак не решает проблему самого exe и скрытия файлов.
То есть мне нужно укомплектовать и утрамбовать.

#3
16:48, 17 окт 2016

viennahd
Те файлы, которые ты добавил как я писал выше, зайди в их свойства. У них там может стоять в пункте Тип элемента значение Не участвовать в сборке. Поменяй его)

#4
16:53, 17 окт 2016

И еще проблему усложняет то что шейдеры создаются сторонней утилой, и ее тоже нужно трамбовать.

КАК СОЗДАТЬ Jar ФАЙЛ В IntelliJ IDEA И СОЗДАТЬ ЯРЛЫК ЗАПУСКАТОРА В ФОРМАТЕ EXE

#5
16:57, 17 окт 2016

И да, я не знаю кем являются dll, glsl и т.д.
Оказывается нужно знать какого типа, и не определенность не допускается.

Получается что любой файл из папки bin никак не может быть файлом dll.
И выходит шейдеры могут быть только в открытом виде?!
Хреновый Windows.

#6
17:13, 17 окт 2016

Можно спрятать файлы данных. Но для этого надо пользоваться альтернативными файловыми системами, реализуемыми в некоторых библиотеках или делать свою такую. С альтернативной файловой системой должны уметь работать все используемые инструменты. Если движок твой, самописный, это не проблема. В чужом движке надо смотреть, может у него есть своя файловая система.
Практически все игры так и реализуются, если они не хранят свои данные в открытом виде, в сотнях тысяч мелких файлов.
Некоторые типы файлов нельзя прятать, потому как API может работать только с файлом, а не с поставляемыми программой данными. Пример такого формата — avi.

#7
17:17, 17 окт 2016

У меня проект-самопал, разве что sfml.

#8
17:22, 17 окт 2016

если самопал, бери какой-нибудь boost-file-system. Впрочем, не обязательно именно его, аналоги гуляют буквально повсюду, в том числе и написанные для одного-двух проектов.

#9
17:27, 17 окт 2016

Один большой файл данных скорее всего все равно будет. Можешь сделать его сколь угодно зашифрованным, но часто его содержимое делают просто zip-архивом.
Теоретически можно прилепить данные внутрь экзешника, но это очень неудобно и непопулярно. Захочешь так сделать — не факт что найдешь готовый инструмент, придется возиться самому.

#10
17:52, 17 окт 2016

const char data_shaders_pbr_shader_frag[] = «. «>;
const uint8_t data_tex_level1_floor[] = 0x12, 0x15. >;

Читайте также:
Mapinfo professional как работать с программой

всё это в h-файлах и инклудится в один.
sfml поддерживает чтение из памяти, просто вместо имени файла скармливаешь ему этот указатель (ну и там функция будет по-другому называться).

Как склеить несколько файлов в один .exe?


Написать конвертер в такой вид из обычных файлов — ну дело дня максимум.
Правда экзешник вырастет на размер всех этих файлов, но я так понимаю ты к этому готов.

#11
17:56, 17 окт 2016

viennahd
Файл ресурсов гугли resrc. В студии с этим добром есть интеграция, так что все сможешь добавить мышкой. Если же ты фанат автоматизации — просто сгенерируй этот файл своей тулзой.

#12
19:54, 17 окт 2016

А можно ли запаковать шейдеры, картинки и т.д. в ZIP или еще какой-нибудь архив, и уже оттуда грузить?
Но что делать с dll, которых не мало?

#13
20:27, 17 окт 2016

viennahd
> А можно ли запаковать шейдеры, картинки и т.д. в ZIP или еще какой-нибудь архив, и уже оттуда грузить?
Куда угодно можно, хоть в архив, хоть в ресурсы экзешника, хоть в константный массив. Что хочешь — то и делаешь, в зависимости от того, что тебе нужно.

> Но что делать с dll, которых не мало?
Не делай dll, закажи статическую компоновку при компиляции.

#14
20:38, 17 окт 2016

У меня статики жалуются на не разрешенные символы. от SFML.
Этот SFML все равно понужает на DLL, особенно жадничиет на libjpeg, и boost.

Есть ли способ выкинуть нахрен этот SFML не причиняя ущерб png и текстурам?

Источник: gamedev.ru

Упаковщик PE-файлов (exe, dll)

На днях завершил крупный коммерческий проект, только собирался потратить вырученные средства на покупку очередного ноутбука Alienware и поездку на Гавайи, как ко мне в гости зашел Каями (с нехарактерно расширенными зрачками) и сказал, чтобы я что-нибудь написал в блог, дескать не солидно как-то ничего не запостить перед Новым Годом. Сам-то он якобы занят, но я подозреваю, чем он на самом деле занимается.

В общем, его просьбу я выполнил. Каями, судя по всему, остался доволен и в ответ на ссылку на пост скинул мне в аську скриншот статы какой-то партнерки. Так что он тоже едет на Гавайи! Поэтому в ближайшие пару недель новых постов можно, пожалуй, не ждать.

Итак, выкладываю упаковщик PE-файлов собственного производства. Исходники самого упаковщика на C++ и стаба распаковщика на MASM32 в комплекте. Все с комментариями на английском языке. Привереды и не умеющие переводить технические тексты идут вон из комментариев к посту! Про PE-формат я цикл статей завершу когда-нибудь, а пока ловите хотя бы это, на остальное времени нет.

Самое основное в упаковщике — это файл main.cpp размером 51 кб (лень было разбивать) и unpacker.asm. unpacker.cpp — это стаб распаковщика в скомпилированном виде (его исходник, соответственно, в unpacker.asm). Используется немного библиотек из boost.

Возможности упаковщика:
[+] Поддержка exe, dll-файлов. Драйвера (sys-файлы) не упаковываются.
[+] Дерьмовая степень сжатия, так как используются RtlCompressBuffer / RtlDecompressBuffer — чисто ради примера. Кроме того, упаковывается каждая секция отдельно, не слепляются вместе, как это делает UPX, это тоже влияет на степень сжатия.
[+] Поддержка экспортов (по ординалу, по имени, а также форвардов в другие dll).
[+] Само собой, поддержка импортов (по ординалу и по имени).
[+] Поддержка и умение упаковывать секцию ресурсов (из нее перемещаются иконки, информация о версии и манифест, так что упакованный файл внешне ничем не отличается от оригинала).
[+] Поддержка релокаций (фиксапов / перемещаемых элементов / назовите их как хотите).
[+] Изменение выравнивания файла.
[+] Возможность упаковки только конкретных секций
[+] Поддержка TLS (локальная память потока) (кроме TLS callbacks, которые ни один компилятор не умеет делать, насколько мне известно).
[+] Удаление rich overlay’а от Visual C++.
[+] Возможность упаковки PE-заголовка в DOS-заголовок.
[+] Поддержка бинарников Visual C++, Borland C++/Delphi, MinGW, MASM32 (другое не проверялось, но, скорее всего, тоже заработает).

Читайте также:
Как работать в программе сферум видео

Упаковщик поддерживает только PE32.

Пример использования:
pack.exe test_exe.exe

Дополнительные опции командной строки:

Источник: kaimi.io

Как создать самораспаковывающийся архив в 7zip, WinRAR или WinZip

Самораспаковывающийся архив (или SFX-архив) – отличный способ передачи файлов через интернет или физические накопители. С помощью такого архива можно запаковать файлы используя сжатие и при этом не заботится о том, если у получателя архиватор для распаковки, так как подобный архив можно распаковать без использования каких-либо дополнительных программ. В данной статье мы расскажем о том, как создать самораспаковывающийся архив с помощью 7zip, WinRAR или WinZip.

Самораспаковывающийся архив в 7zip

7zip – является одним из самых популярных бесплатных архиваторов. Поэтому сначала рассмотрим процесс создания самораспаковывающегося архива на его примере.

Чтобы создать самораспаковывающийся архив в программе 7zip нужно кликнуть правой кнопкой мышки по файлам, которые нужно заархивировать, и в появившемся контекстном меню выбрать « 7zip – Добавить к архиву ».

7zip – Добавить к архиву

В результате появится стандартное окно 7zip. Здесь нужно указать название файла, выбрать формат « 7z » и включить опцию « Создать SFX-архив ». Обратите внимание, для того чтобы опция « Создать SFX-архив » стала активной нужно сначала выбрать формат «7z », для других форматов SFX не поддерживается. После изменения данных настроек можно запускать архивацию, для этого просто нажимаем на кнопку « ОК ».

Также при желании можно изменить другие параметры архивирования. Например, вы можете указать уровень сжатия, метод сжатия, включить шифрование или разбить на тома. Но, это не обязательно, достаточно выбрать формат « 7z » и включить « Создать SFX-архив ».

Создать SFX-архив в 7zip

После этого в папке с исходными файлами появится EXE-файл. При его запуске откроется небольшое окно, как на скриншоте внизу.

распаковка в 7zip

Для распаковки достаточно указать папку и нажать на кнопку « Extrac t», после чего файлы будут распакованы.

Обратите внимание , самораспаковывающиеся архивы (SFX) могут распознаваться некоторыми антивирусами как вирусы, даже если внутри нет никаких вредоносных файлов. Например, программа Защитник Windows 10 может автоматически удалять такие файлы даже не предупреждая пользователя. Если вы столкнулись с такой проблемой, то Защитник Windows 10 можно отключить.

Читайте также:
Список по алфавиту программа

Самораспаковывающийся архив в WinRAR

Также рассмотрим популярный платный архиватор WinRAR. Для того чтобы создать самораспаковывающийся архив с помощью WinRAR нужно кликнуть правой кнопкой по файлам и в открывшемся контекстном меню выбрать вариант « Добавить в архив ».

Добавить в архив

В результате появится стандартное окно WinRAR. Здесь нужно указать название самораспаковывающегося архива, включить опцию « Создать самораспаковывающийся архив » и запустить архивацию нажатием на кнопку « ОК ».

При желании вы можете изменить и другие настройки архивирования. Например, можно выбрать формат (RAR, RAR4 или ZIP), изменить степень сжатия или включить разделение на тома. Но, для создания самораспаковывающегося архива это не обязательно. Вы можете оставить все эти опции по умолчанию и просто нажать на кнопку « ОК ».

Создать самораспаковывающийся архив

После создания самораспаковывающегося архива, в папке с исходными файлами, появится EXE-файл с указанным вами названием. Это и есть самораспаковывающийся архив. При его запуске появится окно распаковки, как на скриншоте внизу.

распаковка в WinRAR

Чтобы распаковать такой архив достаточно указать папку и нажать на кнопку « Извлечь » после чего файлы будут распакованы автоматически.

Самораспаковывающийся архив в WinZIP

Архиватор WinZip не так популярен, как WinRAR, но его также иногда используют. Поэтому рассмотрим создание самораспаковывающихся архивов и через WinZip.

Чтобы создать самораспаковывающийся архив с помощью WinZip нужно открыть основное окно данной программы. Для этого запустите WinZip с помощью ярлыка на рабочем столе или откройте меню « Пуск », введите в поиск « WinZip » и откройте программу оттуда.

WinZip в меню Пуск

После запуска программы WinZip, в нее нужно добавить файлы, которые в дальнейшем должны быть заархивированы в SFX-архив. Для этого нажмите на кнопку « С ПК или облачного сервиса » и выберите файлы, которые нужно добавить в архив. Также вы можете просто перетащить нужные файлы в основное окно WinZip из любой папки.

добавить файлы в WinZip

После добавления файлов нужно перейти на вкладку « Инструменты » и нажать на кнопку « Самораспаковывающийся EXE ».

Самораспаковывающийся EXE

И выбрать вариант « Сохранить и запустить ».

Сохранить и запустить

Дальше программа предлагает сохранить архив как ZIP-файл. Соглашаемся и указываем папку для сохранения.

сохранить архив как ZIP-файл

После сохранения ZIP-файла появится окно для создания самораспаковывающегося EXE-файла. Здесь просто нажимаем на кнопку « ОК ».

создание самораспаковывающегося EXE-файла

После этого в указанной вами папке, рядом с ZIP-файлом, появится также и файл в формате EXE. Если запустить данный EXE-файл, то появится небольшое окно для распаковки, как на скриншоте внизу.

распаковка в WinZip

Для того чтобы распаковать такой архив достаточно указать папку и нажать на кнопку « Распаковать ».

  • Как распаковать ZIP файл на компьютере
  • Как распаковать архив RAR
  • Как открыть файл 7z на компьютере с Windows 11 и Windows 10
  • Как максимально сжать файлы в ZIP, RAR или 7z (7-zip) архив
  • Как открыть файл RAR

Источник: comp-security.net

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru