Страница: 1 | 2 |
Вопрос: Выполнить программу из массива байт
Добавлено: 07.11.06 16:02
Автор вопроса: gvozd | Web-сайт:
Здравствуйте, уважаемые форумчане!
Понадобилось реализовать такую вещь:
Открываем незапускающийся exe обычным образом for binary -> считываем в массив байт -> преобразовываем соответствующим образом (exe становится запускающимся) -> выполняем прямо из массива байт.
В общем-то проблема заключается в последнем пункте. Вы скажете: "А почему бы не сохранить массив байт в файл?", и будете правы, но, к моему глубочайшему сожалению, такой вариант в моем случае не имеет место быть, потому что хитроумный пользователь файлик-то может и перехватить.
Поиск в Google дал результат не по теме, хотя, может быть, я просто не умею искать.
Что может подсказать мне наше уважаемое сообщество (просьба подтолкнуть в нужном направлении)?
Ответы
Всего ответов: 21
Номер ответа: 1
Автор ответа:
-АлександР-
Вопросов: 55
Ответов: 1008
Web-сайт:
Профиль | | #1
Добавлено: 07.11.06 16:54
2)Перехватаить? Каким образом? По-моему в его интересах будет этого не делать. Хм, в крайнем случае сделать резервную копию, спрятать, запретить доступ... много способов
Номер ответа: 2
Автор ответа:
gvozd
Разработчик Offline Client
Вопросов: 164
Ответов: 1317
Web-сайт:
Профиль | | #2
Добавлено: 07.11.06 17:18
1). Нельзя, так как приложение должно быть таким всегда, и оно расположено на CD.
2). Может FileMon'ом перехватить файл, куда было сохранено приложение и скопировать его.
Номер ответа: 3
Автор ответа:
Sacred Phoenix
ICQ: 304238252
Вопросов: 52
Ответов: 927
Профиль | | #3
Добавлено: 07.11.06 17:18
Номер ответа: 4
Автор ответа:
Neco
ICQ: 247906854
Вопросов: 133
Ответов: 882
Web-сайт:
Профиль | | #4
Добавлено: 07.11.06 17:54
спрятать мона хотя бы даже в корзину
или в специально сформированную zip-папку
большинство даже хитроумных пользователей не юзают тотал.
скорее всего запустить экзешник без экзешника невозможно. но я плохо знаю винду, чтобы утверждать это наверняка.
если экзешник твой, то перепиши его в библиотеку и тогда точно проблем не будет
кроме того можно по рихтеру: сохранить незапускающийся экзешник, запустить его с suspend'ом, подправить байты и продолжить выполнение.
Номер ответа: 5
Автор ответа:
Artyom
Разработчик
Вопросов: 130
Ответов: 6602
Профиль | | #5
Добавлено: 07.11.06 18:10
А как например работают упаковщики типа UPX, ASProtect, ExeCryptor?
Можно, надо только знать как
Номер ответа: 6
Автор ответа:
Sharp
Лидер форума
ICQ: 216865379
Вопросов: 106
Ответов: 9979
Web-сайт:
Профиль | | #6
Добавлено: 07.11.06 18:24
http://www.wasm.ru/article.php?article=memfile
Номер ответа: 7
Автор ответа:
Neco
ICQ: 247906854
Вопросов: 133
Ответов: 882
Web-сайт:
Профиль | | #7
Добавлено: 07.11.06 18:38
я так понимаю, что они запускаются, распаковывают свой хвост и передают управление на него. т.е. нового процесса не создаётся.
Номер ответа: 8
Автор ответа:
-АлександР-
Вопросов: 55
Ответов: 1008
Web-сайт:
Профиль | | #8
Добавлено: 07.11.06 19:01
Заблокируй все потенциально-опасные процессы компа на время копирования.
Когда програма скопируется, также программно измени дату её появления в ... папке
Работа мастера )))
Номер ответа: 9
Автор ответа:
-АлександР-
Вопросов: 55
Ответов: 1008
Web-сайт:
Профиль | | #9
Добавлено: 07.11.06 19:06
А ну можешь ещё сохранить под другим расширением, а потом программно его изменить, ...
На этом моя фантазия заканчивается
Номер ответа: 10
Автор ответа:
HACKER
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
Профиль | | #10
Добавлено: 07.11.06 20:48
угугагааа... коммент в статье что Шарп ссылку дал читали? Sne там отжжог походу ))
Номер ответа: 11
Автор ответа:
Sacred Phoenix
ICQ: 304238252
Вопросов: 52
Ответов: 927
Профиль | | #11
Добавлено: 07.11.06 23:08
Номер ответа: 12
Автор ответа:
-АлександР-
Вопросов: 55
Ответов: 1008
Web-сайт:
Профиль | | #12
Добавлено: 07.11.06 23:57
Номер ответа: 13
Автор ответа:
Ra$cal
ICQ: 8068014
Вопросов: 18
Ответов: 817
Web-сайт:
Профиль | | #13
Добавлено: 08.11.06 00:23
Суть сводится к одному - на васике такое крайне сложно (если вообще) реализуемо. Но для данной задачи есть много решений, без таких извращений.
Номер ответа: 14
Автор ответа:
HACKER
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
Профиль | | #14
Добавлено: 08.11.06 00:26
Да проще скомпилить по готвым исходником dll с экспортируемой функцией, которая будет принимать этот самый массив байт И заюзать это в вб
Номер ответа: 15
Автор ответа:
gvozd
Разработчик Offline Client
Вопросов: 164
Ответов: 1317
Web-сайт:
Профиль | | #15
Добавлено: 08.11.06 09:13
Да, Sharp дал самый дельный совет. Всякие извраты с сохранением на винт использовать нельзя, так как у юзера может не хватить места на винте. А еще такой вопрос, вышеописанным способом можно запустить программу, размер которой больше установленной памяти?