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

Поиск:

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


Лентяй
***


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

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



Цитата(XpyDi @ 13.12.2002, 15:04)

Привет.
Что-то я не помню такого предложенного тобой способа. :) Ну правда давно это было. А ты сам это пробывал? Теоретически выглядит все здорово.

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


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


Шустрый
*


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

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



Первый способ был предложен полгода назад, правда тогда я сам не очень сильно представлял, как, что и куда пихать.
По-поводу пробывал ли сам, честно скажу - нет. Сегодня попробую, завтра скажу какие были результаты. А так StarForce уже существует достаточно долго и вот не помню с какой или в какой версии было реализовано нечто похожее, точнее, там загрузчик прежде, чем запустить программу загружал все dll, а StarForce'вская dll'ка в ф-ии WinMain, как раз и дописывала похищенные байты на место.

А ссылку на это обсуждение не дашь?
PM MAIL WWW ICQ   Вверх
Fantasist
Дата 14.12.2002, 10:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Лентяй
***


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

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



Ну, это не сама та ветка (ту вроде найти не удалось), однако в ней это утверждение было повторенно по моей просбе. Мне это в принципе не очень интересно, но если тебе интересно, там и поспрашивай. Хотя, как я понял, надо идти на http://sysinternals.com и там можно все это, и не только, прочитать.

http://delphi.mastak.ru/cgi-bin....523&n=5


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


Шустрый
*


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

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



Вообщем так первый способ я проверил работает стабильно(по крайней мере у меня).
Если хочешь сам проверить вот:
Подопытная
Загрузчик
Подопытная не запускаеться самостоятельно, а только при помощи загрузчика. Из неё я наглым образом из RVE взял 31 байт(может можно было и меньше, но я хотел сразу получить ошибку при запуске).
Едиснственное предупреждаю, что подопытная начинает перемещать иконки по рабочему столу, чтобы это небыло для вас сюрпризом.

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

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

Вообщем если можно размапить, то тогда у меня есть такая идея. Как вариант можно пройтись по всему файлу в памяти считывая и записывая код, но не изменяя его, таким образом ОС будет думать, что кусок изменился не будет свопить его из первоначального exe, а скинет в отдельный файл, таким образом первоначальный exe уже не нужен. Вот только тут одна проблемка, если размапить файл не выгрузит ли ОС сразу программу из памяти?
PM MAIL WWW ICQ   Вверх
Fantasist
Дата 15.12.2002, 06:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Лентяй
***


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

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



Цитата
Вообщем так первый способ я проверил работает стабильно(по крайней мере у меня).
Если хочешь сам проверить вот:


Да ладно, я тебе верю.  :) Спасибо, что проверил. Можно объеденить с самоудалением, и получиться в принципе ниче. Правда все равно, пока екзешник запущен его можно скопировать. Разве что, если загрузчик удалить, то восстановить его будет практически невозможно. Правда неизвестно насколько трудно будет достать загрузчик, но это уже проблема из другой области. Да и это все-таки обходное решение, запустить ехе так, чтобы сам его файл не был бы доступен не получиться.

Цитата
Вообщем если можно размапить, то тогда у меня есть такая идея. Как вариант можно пройтись по всему файлу в памяти считывая и записывая код, но не изменяя его, таким образом ОС будет думать, что кусок изменился не будет свопить его из первоначального exe


Что-то сомнительно. Мне не думается что ОС будет себя так вести. Хотя говорю, на системном уровне я практически 0.


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


Новичок



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

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



2XpyDi

У меня не запускается ни подопытная, ни с помощью загрузчика,
причем в обоих случаях вываливаются по разным адресам.
PM MAIL   Вверх
XpyDi
Дата 17.12.2002, 02:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



2BumSoft:
Если честно, то был очень удивлен твоим сообщением, т.к. специально после его прочтения скачал заново в отдельную папку запустил и все работает.
Тогда у меня к тебе пару вопросов:
1 В какой ОС ты проверял?
Дело в том, что сама подопытная писалась для себя и проверялась только на моем компьютере, да и для себя, так что ничего не могу гарантировать.
2 А сам загрузчик запускаеться?
3 Можно белее полные сообщения об ошибках?
2Fantasist:
1 Я предложил вариант, который хоть и не универсальный, но его можно развить во что-нибудь более-менее нормальное.
2 Сама идея, заставить ОС думать, что кусок кода изменился, чтобы его теперь не свопить из первоначального exe основывалась только на документацию и на то что написано в книге Джефри Рихтера о памяти и о процессе работы ОС с ней. Никаких практических тестов не проводилось.
PM MAIL WWW ICQ   Вверх
BumSoft
Дата 20.12.2002, 21:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



2XpyDi

Не мог быстро ответить-был в командировке.
У меня WIN98(SE).
При запуске WorkTable.exe вываливается по адресу 017f:00403b1c.
Загрузчик сам запускается, при нажатии на кнопку
WorkTable.exe вываливается по адресу 017f:00403b3e.
PM MAIL   Вверх
XpyDi
Дата 22.12.2002, 23:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



2BumSoft
Посмотрел я на ошибки и если честно был крайне удивлен, т.е. первая срабатывает там где нужно, а вот вторая происходит:
1) уже после тех байт которые я записывал, т.е. я записывал в начало 31 байт, а исключение показывает на 34 байт от начала.
2) исключение указывает на середину интсрукции процессора.
У меня, к несчастью, не стоит Win98(SE), поэтому тут есть 3 выхода:
1) ты повторишь этот эксперимент на своем компьютере и посмотришь на результаты.
2) После исключения сделаешь дамп памяти и отошлешь мне, а я уже буду смотреть.
3) Я перепишу эти программу на асм, т.к. тогда я буду уверен в каждом байте программы, а не только в логике её работы.
PM MAIL WWW ICQ   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

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

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

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

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


 




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


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

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