Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 17, средняя оценка - 4.65
Dzib
5 / 5 / 1
Регистрация: 21.08.2012
Сообщений: 205
#1

Запаковать exe файл - C++

05.09.2012, 21:28. Просмотров 2084. Ответов 18
Метки нет (Все метки)

Привет всем. Меня инетресует вопрос, можно ли с помощю безплатного ПО или с помощю других способов запаковать сторонний exe файл в такой вид что б его нельзя было запустить с помощю обычного тыка мышкой, а только с помощю моего проэкта? Спасибо всем за ответы.
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.09.2012, 21:28     Запаковать exe файл
Посмотрите здесь:

Запаковать .txt в программу - C++
Здравствуйте! Написал программу, которая работает с .txt файлом (чтение), как я могу запаковать данный файл в программу, чтобы не носить...

EXE. файл - C++
Как правильно надо сохранить готовую программу в EXE. файл что бы тот у которого нет с++ мог ее открыть.

EXE файл - C++
где то уже была подобная тема, но не нашел и поиск тоже не ищет...как скомпилинную прогу вынести в exe файл...в vs c++ 2008 после...

Exe файл не работает - C++
Доброго всем вечера. сделал проект в визуал студио, консольное приложение. сделал 2 екзешника в дебаг и релиз. запускаю в той системе...

Выходной exe файл - C++
Привет. собственно учусь на 1м курсе... пишем программки в компиляторах... значит когда-то там мы теоретически сможем создать какую-то...

Закрывается exe файл - C++
Сделал простую программку.решил из папки запустить exe файл.Но вместо этого что мигнет типа запустилось и через пол сек закроется.В чем...

Компиляция в EXE файл - C++
Помогите пожалуйста откомпилировать в EXE файл или хотя бы как правильно запустить его. Зарание очень буду очень благодарен.

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
-=ЮрА=-
Заблокирован
Автор FAQ
06.09.2012, 00:04     Запаковать exe файл #2
Цитата Сообщение от Dzib Посмотреть сообщение
Привет всем. Меня инетресует вопрос, можно ли с помощю безплатного ПО или с помощю других способов запаковать сторонний exe файл в такой вид что б его нельзя было запустить с помощю обычного тыка мышкой, а только с помощю моего проэкта? Спасибо всем за ответы.
Конечно можно - запихни его ресурсом приложения а затем распаковывай и запускай через ShellExecute скажем. что такое ресурсы и как с ними работать - ну вот хотябы проведи аналогию с медиа файлом в ресурсах Ошибка AfxGetResourceHandle

Не по теме:

Есть ещё некоторые примочки, но о них пока не буду(думаю тебе они будут не понятны, попробуй пока реализовать то что написал)

alkagolik
Заблокирован
06.09.2012, 00:09     Запаковать exe файл #3
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Dzib, можно взять .exe файл, поменять в нем байты местами, и только с помощью твоего "проэкта" восстановить в исходное состояние.
Dzib
5 / 5 / 1
Регистрация: 21.08.2012
Сообщений: 205
06.09.2012, 00:43  [ТС]     Запаковать exe файл #4
Dzib, можно взять .exe файл, поменять в нем байты местами, и только с помощью твоего "проэкта" восстановить в исходное состояние.
Во время запуска приложения, испорченое приложения редактируется(приводится к робочему виду) на жестком диске или в оперативной памяти? Если на жестком диске то не подходит так как тогда после запуска, приложения можно скопировать в рабочем виде.

Конечно можно - запихни его ресурсом приложения а затем распаковывай и запускай через ShellExecute скажем. что такое ресурсы и как с ними работать - ну вот хотябы проведи аналогию с медиа файлом в ресурсах Ошибка AfxGetResourceHandle
Если exe файл в ресурсах то его сначала пишут в файл, а потом запускают, это ничем не поможет.
Если есть друго вариант запуска из ресурсов, напишите пожалуйста этот код для консольного приложения, буду очень благодарен.
-=ЮрА=-
Заблокирован
Автор FAQ
06.09.2012, 00:53     Запаковать exe файл #5
Цитата Сообщение от Dzib Посмотреть сообщение
Если exe файл в ресурсах то его сначала пишут в файл, а потом запускают, это ничем не поможет.
- как это не поможет???!
Простой пример: Есть скажем программа, ты хз как она написана, но тебе кровь из носа надо чтобы перед запуском вылезало окшко логина + как у меня утром надо запустить её програмно в режиме совместимости с Win95.
Продвинутые дяди делают патчи, лопатят горы асма, но если идти по пути наименьшего сопротивления зашили нашу программу в экзе-контейнер который выкидывает окно логина, делает необходимые записи в реестре а уж потом запускает наш экзе,который может быть на столько сложен что пропатчив нарушим функционал. А ты говоришь нельзя, пожумай сначала хорошенько!
Цитата Сообщение от Dzib Посмотреть сообщение
Во время запуска приложения, испорченое приложения редактируется(приводится к робочему виду) на жестком диске или в оперативной памяти?
- да где угодно, хоть в буфере правь, хоть записывай нужные байты файловым потоком...
Dzib
5 / 5 / 1
Регистрация: 21.08.2012
Сообщений: 205
06.09.2012, 01:19  [ТС]     Запаковать exe файл #6
Наверно плохо обяснил.

Задача: нужно исключить запуск exe файла (исходников нет). Но запустить с помощю моего проекта.
Условия: нельзя допустить создания на жестком диске файла в рабочем виде, рабочая папка приложения должна быть преждней(exe файл оттуда ещё 1 гб ресурсов своих использует)

Как я понимаю вариант с добавляениям в ресурсы и последующим запуском уже не подходит, так как этот масив байтов в которым он есть нужно записать в файл в рабочем виде и запустить, а это уже противоречит условию моей задачи.

Насчет второго варианта с подменой байтов я не понимаю, как можно запустить не рабочее приложения, а потом его исправить в памяти? Можно пример?
alkagolik
Заблокирован
06.09.2012, 02:23     Запаковать exe файл #7
Цитата Сообщение от Dzib Посмотреть сообщение
нельзя допустить создания на жестком диске файла в рабочем виде
Цитата Сообщение от Dzib Посмотреть сообщение
Но запустить с помощю моего проекта
как можно запустить файл, который отсутствует? мой мозг поймал экзепшн.

Добавлено через 1 минуту
Цитата Сообщение от Dzib Посмотреть сообщение
Насчет второго варианта с подменой байтов я не понимаю, как можно запустить не рабочее приложения, а потом его исправить в памяти? Можно пример?
немного не так. исправить, запустить как процесс, дождаться окончания, опять испортить, завершить программу.
Dzib
5 / 5 / 1
Регистрация: 21.08.2012
Сообщений: 205
06.09.2012, 03:12  [ТС]     Запаковать exe файл #8
Видел люди такое что я хочу делают внедряя dll файлы в exe файл, и потом exe файл уже не запустить самому. Незнаю что в этих dll. Прикрепил в файлах, может её какнебудь релаьно декомпилировать?
Вложения
Тип файла: rar Main.rar (14.7 Кб, 26 просмотров)
Digit@ll
Brainsbreaker
881 / 359 / 30
Регистрация: 01.02.2011
Сообщений: 1,572
08.09.2012, 19:36     Запаковать exe файл #9
Где ты её взял?
Dzib
5 / 5 / 1
Регистрация: 21.08.2012
Сообщений: 205
09.09.2012, 01:13  [ТС]     Запаковать exe файл #10
В клиенте одной онлайн игрушки. По умолчанию её там нет, это уже люди сами добавляли. А почему интересуешся где я её взял?
Digit@ll
Brainsbreaker
881 / 359 / 30
Регистрация: 01.02.2011
Сообщений: 1,572
09.09.2012, 02:56     Запаковать exe файл #11
Я знаю, что можно изменять ресурсы, но чтоб добавлять... Тоже хочу понять, что оно такое. Вот ты говоришь, что хочешь иметь возможность запускать проги с внедренной этой dll только с помощью своего проекта, а каков в нем будет порядок действий? Само по себе внедрение в exe на мой взгляд ничего не даст, ну будет оно там лежать мертвым грузом и что? Хотя вызов ф-ции из dll делает свое дело - завершает программу.
raxp
10155 / 6542 / 477
Регистрация: 28.12.2010
Сообщений: 21,166
Записей в блоге: 1
09.09.2012, 14:02     Запаковать exe файл #12
Если exe файл в ресурсах то его сначала пишут в файл, а потом запускают, это ничем не поможет.
никто не мешает выдрать из ресурсов и запустить в памяти, без сохранения на диск. FindResource(), LoadResource(), GetModuleFileName(), CreateProcess(), WriteProcessMemory(), VirtualProtectEx(), ZwUnmapViewOfSection() спасут ОРД.

Вот только вы должны учесть, что зашитые в ресурсы EXE-ники и запускаемые потом из памяти очень недолюбливают антивири.

p.s.: можно конечно было-бы реализовать EXE-ник как DLL, т.е. должна быть объявлена таблица релокаций и если используется конкретная функция, то и объявлена должна быть соответствующим образом, но в случае чужого EXE-ника, увы.
Dzib
5 / 5 / 1
Регистрация: 21.08.2012
Сообщений: 205
09.09.2012, 14:17  [ТС]     Запаковать exe файл #13
Внедряют dll в файл с помощю ollydbg. Меняют точку входа на функцыю которую вызывают из dll или если есть возможность то просто джампами переводят не меняя точки входа. Но тут как я понимаю нужно знать ассемблер а не С++.
raxp
10155 / 6542 / 477
Регистрация: 28.12.2010
Сообщений: 21,166
Записей в блоге: 1
09.09.2012, 14:39     Запаковать exe файл #14
Dzib, не путайте DLL и EXE. Хоть и схожие сигнатуры и считается одним и тем же, но все же отличия есть, см. выше. У вас ведь exe-ник чужой/свой.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.09.2012, 15:21     Запаковать exe файл
Еще ссылки по теме:

Не найден .exe файл - C++
Только начал обучение С++ по учебнику Страуструпа. Загрузил Visual Studio Начал со стандартного "Hello. World!" Отладка...

exe файл у друзей - C++
срочно нужна помощь, вчера я решил занятся программированием и создал самый обычный hello world. Решил похвастаться друзья и у друзей 64х...

Файл exe в QT Creator - C++
Как сделать программу в exe файл, который бы работал без qt, как например это было на Паскале, там скомпилировал программу и появляется...

Не создаётся exe файл - C++
Вот код, создаю проекта в визуал студио, компилирую, выдаёт ошибку что не найдет exe #include <iostream> #include <fstream> ...

Не создаёт .exe файл! - C++
Ребят помогите решить проблему Visual Studio 2008 , не создаёт exe файл. ВОт что пишет.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Dzib
5 / 5 / 1
Регистрация: 21.08.2012
Сообщений: 205
09.09.2012, 15:21  [ТС]     Запаковать exe файл #15
exe-шник чужой. Но это не мешает с помощю дебагера ему парочку команд добавить что б его контролировать, как пример вот топик где человек мне показал как можно добавить запуск exe-шника только через определённый строковый параметр, незная этого параметра некто не сможет запустить приложения.
Добавить запуск через параметр
Хоть это и вариант но этот вариант для дурака, я думаю что отследить с каким параметром запускается приложения не составит труда.
По этому делают так как я отписал в конце топика
Тоесть есть например приложения 1 и приложения 2. Запускают приложения 1 потом приложения 2, они оба активны, работают, но когда закрыть приложения 1 то приложения 2 тоже закрывается, даже если убить первое диспечером задач. А если запустить приложения 2 без запущеного приложения 1, то оно либо не запускается либо запускает приложения 1 (как в какой реализации, но это не важно)
Приложения 1 свое, приложения 2 чужое, оба exe. Как это реализировать тоже вопрос.
А насчет запуска в оперативную память из ресурсов это интересно, не могли б написать простенький пример что б показать как это реализируется? Буду благодарен.
Yandex
Объявления
09.09.2012, 15:21     Запаковать exe файл
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru