Модераторы: Daevaorn

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> запуск .exe 
:(
    Опции темы
BumSoft
Дата 9.12.2002, 19:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 9.12.2002

Репутация: нет
Всего: нет



Вот такой вопрос:

есть файл:
xxxxxxxxxxxyyyyyyyyyyyyyyyxxxxxxxxxxxx
              |<- exe-файл ->|
внутри этого файла содержится exe-ник.
Как запустить этот exe-ник из какой-либо проги,через темп-файл не
устраивает :)
PM MAIL   Вверх
Step
Дата 9.12.2002, 20:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5151
Регистрация: 26.9.2002
Где: дурдом.UA

Репутация: 5
Всего: 25



попробуй shellexecutiv


--------------------
- Дурак учится на своих ошибках, умный на чужих.
 - умные учатся у дураков
PM MAIL ICQ   Вверх
BumSoft
Дата 9.12.2002, 21:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 9.12.2002

Репутация: нет
Всего: нет



Что - то не нашел я описание shellexecutiv в MSDN-е
PM MAIL   Вверх
AntonSaburov
Дата 9.12.2002, 22:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Штурман
****


Профиль
Группа: Модератор
Сообщений: 5658
Регистрация: 2.7.2002
Где: Санкт-Петербург

Репутация: нет
Всего: 118



Цитата(BumSoft @ 09.12.2002, 13:33)
Что - то не нашел я описание shellexecutiv в MSDN-е

Здесь ошибочка вышла - ShellExecute. Хотя можно было бы и догадаться.
К тому же есть такая штука - CreateProcess. Самое то. Если MSDN есть - то смотри и "да прибудет с тобой шворц" :)
PM MAIL WWW ICQ   Вверх
Step
Дата 9.12.2002, 22:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5151
Регистрация: 26.9.2002
Где: дурдом.UA

Репутация: 5
Всего: 25



ShellExecute


--------------------
- Дурак учится на своих ошибках, умный на чужих.
 - умные учатся у дураков
PM MAIL ICQ   Вверх
AntonSaburov
Дата 9.12.2002, 22:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Штурман
****


Профиль
Группа: Модератор
Сообщений: 5658
Регистрация: 2.7.2002
Где: Санкт-Петербург

Репутация: нет
Всего: 118



Прочитал еще раз самое первое сообщение - и задумался.
Если ты имеешь в виду, что у тебя внутри файла есть поток байт, который будучи отдельно выделенным представляет из себя фактически EXE-файл, то я таких способов не знаю.
Думаю, что никак не получится - ты не можешь выполнять код, который является данными. А то, что ты считаешь - это данные.

А зачем такое сложное надо ? Для секретности ?
PM MAIL WWW ICQ   Вверх
BumSoft
Дата 9.12.2002, 23:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 9.12.2002

Репутация: нет
Всего: нет



Цитата
Если ты имеешь в виду, что у тебя внутри файла есть поток байт, который будучи отдельно выделенным представляет из себя фактически EXE-файл


Совершенно верно!  Причем я знаю смещение его и длину.
Конечно можно выделить его и записать(например в темп-файл) и запустить
через ShellExecute, потом удалить (тоже проблематично) - но мне это не очень
подходит( а если комп перезагрузили в это время - то темп-файл останется!).
PM MAIL   Вверх
AntonSaburov
Дата 9.12.2002, 23:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Штурман
****


Профиль
Группа: Модератор
Сообщений: 5658
Регистрация: 2.7.2002
Где: Санкт-Петербург

Репутация: нет
Всего: 118



Цитата(BumSoft @ 09.12.2002, 15:08)
Цитата
Если ты имеешь в виду, что у тебя внутри файла есть поток байт, который будучи отдельно выделенным представляет из себя фактически EXE-файл


Совершенно верно!  Причем я знаю смещение его и длину.
Конечно можно выделить его и записать(например в темп-файл) и запустить
через ShellExecute, потом удалить (тоже проблематично) - но мне это не очень
подходит( а если комп перезагрузили в это время - то темп-файл останется!).

В том виде, в котором ты хочешь это сделать - никак. Вообще. Механизм защиты у Виндов тебе не позволит такое вытворять.
Может ты опишешь для чего тебе такое ? Может быть получится придумать альтернативу на более высоком уровне.
PM MAIL WWW ICQ   Вверх
BumSoft
Дата 9.12.2002, 23:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 9.12.2002

Репутация: нет
Всего: нет



Надо сделать обертку над ехе-ком и запускать его при выполнении
каких-либо условий(типа пароля что -ли ).
PM MAIL   Вверх
neutrino
Дата 10.12.2002, 00:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Gothic soul
****


Профиль
Группа: Модератор
Сообщений: 3041
Регистрация: 25.3.2002
Где: Верхняя Галилея, Кармиэль

Репутация: 1
Всего: 62



Единственное, что можно - это оставить данные после ЕХЕ файла. Он все равно выйдет до них и вернет точку входа. А вот с началом... Это я не знаю.


--------------------
The truth comes from within ...

Покойся с миром, Vit 
PM MAIL WWW ICQ Skype GTalk   Вверх
Grey
Дата 10.12.2002, 00:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 91
Регистрация: 25.3.2002

Репутация: нет
Всего: нет



Мне стало интересно вот что: если этого нельзя сделать то как же работают всякие запаковщики экзешников?
PM MAIL   Вверх
AntonSaburov
Дата 10.12.2002, 00:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Штурман
****


Профиль
Группа: Модератор
Сообщений: 5658
Регистрация: 2.7.2002
Где: Санкт-Петербург

Репутация: нет
Всего: 118



Цитата(Grey @ 09.12.2002, 16:17)
Мне стало интересно вот что: если этого нельзя сделать то как же работают всякие запаковщики экзешников?

Они работают в свое досовской виртуальной машине - тормоза жуткие. Зато можно много чего.
PM MAIL WWW ICQ   Вверх
Fantasist
Дата 10.12.2002, 07:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Лентяй
***


Профиль
Группа: Участник Клуба
Сообщений: 1517
Регистрация: 24.3.2002

Репутация: 4
Всего: 41



Ха. Такой же вопрос я поднимал в этом форуме года полтора назад. Пришли к тому, что стандартно это сделать нельзя. Можно ли это сделать как-то не стандартно выяснено не было, но подозреваю, что нельзя(имеется ввиду без переписывания приличной части ядра Windows)


--------------------
Волны гасят ветер...
PM MAIL   Вверх
HexoGenus
Дата 11.12.2002, 21:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Экс. модератор
Сообщений: 110
Регистрация: 28.8.2002
Где: Ростов-на-Дону

Репутация: нет
Всего: нет



Цитата(Fantasist @ 09.12.2002, 23:01)
Ха. Такой же вопрос я поднимал в этом форуме года полтора назад. Пришли к тому, что стандартно это сделать нельзя. Можно ли это сделать как-то не стандартно выяснено не было, но подозреваю, что нельзя(имеется ввиду без переписывания приличной части ядра Windows)

А нельзя как нибудь сделать что бы программа могла еще раз запустить сама себя но уже с другой точкой входа в программу и что бы при втором запуске она сама вычищала из себя часть кода исходной программы так что-бы оставался только вложенный exe... ????
(т.е. программа оригинал находится как бы не до а после вложенного exe...
а в начале стоит команда перехода, при втором же запуске эта команда заменяется на то что и должно стоять во вложенном exe и уменьшается блок памяти отведенный под программу таким образом что бы отрезать вложенную программу)
--------------------
Когда невозможно уже работать напряженнее, начни работать умнее.
PM MAIL WWW ICQ   Вверх
XpyDi
Дата 13.12.2002, 23:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 114
Регистрация: 25.11.2002
Где: USSR

Репутация: нет
Всего: 2



Во-первых: привет Fantasist.
А во-вторых предлагаю способ, который предлагал пол года тому назад:
Итак берем наш подопытный exe-шник и начиная с точки входа выдираем оттуда около 1000 байт, соответсвено если его запустить ничего толкового не получиться. Сохраняем у себя эти 1000 байт и сохраняем у себя этот exe. Потом когда нужно запустить этого подопытного кролика запускаем его с помошью ф-ции CreateProcess с установленным флагом СREATE_SUSPENDED, при помощи функций WriteProcessMemory дописываем на свое место "похищенные" байты и вызываем ResumeThread для запуска основного потока процесса.
Плюсы: при перезагрузке компьютера получаем неработоспособный exe.
Можно, конечно сделать дапм всего процесса, но тогда прийдеться восстанавливать таблицу импорта, да и вообще дамп прийдеться сделать сразу после того, как ваша программа вернут все на место, но до исполнения подопытной.
Минусы: Это как и все существующие на сегодняшний день защиты несовершена. Это как всегда дамп процесса.
Аналоги: StarForce

Способ 2: если коротко то смотри исходник upx.
Плюсы: обертка стоит, программа для запуска не сохраняеться во внешний файл.
Минусы: посмотри как часто снимают одного из лучших представителей пакеров-протекторов для Shareware программ ASProtect.
Аналоги: ASProtect, VBOX, да практически все покеры-протекторы.
PM MAIL WWW ICQ   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1038 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.