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

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

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

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

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

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

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

Как отделить BGI файл от EXE. Как можно внедрить данный модуль в рабочий файл? - C++
Помогите!!! Хотелось бы избавиться от BGI файла и поместить все в рабочий файл. Как это можно следать. Если можно, то поподробнее! ...

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

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

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

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

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

Не по теме:

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

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

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

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

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

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

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

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

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

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

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

Не создается файл exe - C++
Всем привет. Я только начал учить C++. Использую Visual Studio 2010 Express. Создал пустой проект с именем hello, в нём файл .cpp Хочу...

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


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
09.09.2012, 15:21
Ответ Создать тему
Опции темы

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