Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Защита программы: как запустить приложение из памяти? [D7, Win2k, WinXP]


Бабайка ©   (2006-04-25 07:48:00) 

Ситуация такая: есть разработанный продукт. Автор и исходники уже недоступны :(

Встала задача по защите продукта. Пока идея есть такая: я пишу свой ехешник, который защищен программой типа AsProtect/EXECryptor. После подтверждения валидности копии я расшифровываю оригинальный бинарник и отдаю ему управление.
Расшифровка на диск и запуск оригинального файла с диска = отсутствие защиты.

Поэтому вопрос такой: как стартануть процесс из памяти? Может есть готовые недорогие инструменты, мы бы купили.


Alarm   (2006-04-25 12:46:00) [1]

В продолжение Сергей М. ©   (25.04.06 12:30) [10]
См. Alarm ©   (25.04.06 08:44) [3]


Сергей М.   (2006-04-25 12:30:00) [2]


> КАК ЗАПУСТИТЬ ехешник, из буфера своего приложения


В контексте отдельного (нового) процесса - никак.
В контексте текущего (либо существующего, "суррогатного") процесса - только в частных случаях.

Тебе это о чем-то говорит ?


evvcom   (2006-04-25 11:16:00) [3]


> которуя я вижу как наименее трудозатратную.
> Мне просто нужно узнать: КАК ЗАПУСТИТЬ ехешник, из буфера
> своего приложения.

Или никак, или очень сложно. Для запуска процесса ОС предоставляет CreateProcess и ей подобные. Насколько мне известно, для них файл должен быть на диске, хотя толком я этим никогда не интересовался. Ну а наименее трудозатратным мне видится способ [5].
P.S. Смысла в продолжении дискуссии не вижу.


Бабайка   (2006-04-25 10:34:00) [4]

Речь идет о целевой аудитории, в которой 90% составляют обычные юзеры. Я не хочу лазить по дебаггерам.
Я задал вопрос по реализации, которуя я вижу как наименее трудозатратную.
Мне просто нужно узнать: КАК ЗАПУСТИТЬ ехешник, из буфера своего приложения.
Есть специалисты?


evvcom   (2006-04-25 10:27:00) [5]

А я и не предлагаю исходники шифровать. Шифровать надо код!
Судя по всему, автор не знаком с такими вещами как дизассемблер и отладчик типа IDA Pro и SoftIce. Вообще-то защита ПО подразумевает под собой хоть какое-то знание способов и имение навыков, которыми пользуются хакеры, если речь, конечно, не идет о защите от ламеров.


Бабайка   (2006-04-25 10:07:00) [6]


> Шифруешь код оригинала частично (тела некоторых/нескольких
> функций)

дык это... исходников нету, я же в первом посте писал...


evvcom   (2006-04-25 09:13:00) [7]

Шифруешь код оригинала частично (тела некоторых/нескольких функций) и ложишь его на диск, но так, чтобы простой запуск не работал. Потом из своего exe, пройдя нужные проверки, грузишь подопытного через CreateProcess с флагом CREATE_SUSPENDED, расшифровываешь и ResumeThread. Подобного не делал, так что могут быть какие-то неточности в изложении, но идея такова.


Бабайка   (2006-04-25 08:51:00) [8]


> IMHO, если Автор и исходники уже недоступны :(. то продукт
> не ваш и прятать или открывать его пользователю не в ваших
> полномочиях

Именно, что это ВАШЕ имхо :)
Тут обсуждается вопрос реализации...


Alarm   (2006-04-25 08:44:00) [9]

off top

IMHO, если Автор и исходники уже недоступны :( . то продукт не ваш и прятать или открывать его пользователю не в ваших полномочиях


Бабайка   (2006-04-25 08:39:00) [10]


> Так аспротектом можно сразу защитить "оригинальный бинарник".
>  Зачем еще один экзешник?

Ээээ... Может я чего-то не допонял, но защищаемый ехешник работает через API протектора, запрашивая, например, HardwareID и запрашивая ключ у пользователя. А если файло изначально не разрабатывалось для защиты, то это не пройдет....


evvcom   (2006-04-25 08:35:00) [11]

Так аспротектом можно сразу защитить "оригинальный бинарник". Зачем еще один экзешник?


Наверх

Титульная страница Поиск, карта сайта Написать письмо