Модераторы: feodorv, GremlinProg, xvr, Fixin

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Запуск файла из оперативной памяти. 
:(
    Опции темы
JoyEx
Дата 14.9.2005, 16:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Дядя
**


Профиль
Группа: Участник
Сообщений: 323
Регистрация: 21.6.2005
Где: Москва, РФ

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



Цитата(oleg1973 @ 12.9.2005, 10:20)
ну а чтоб запустить ехе из тела своей проги нада делать так (назовем ехе для запуска ехе1)
1) получить место в памяти с адреса указаного в image base exe1
2) перенести туда ехе1 с учетом смещений секций (RVA) тоесть разложить его там
3) заполнить таблицу импорта ехе1
4) передать на него управление


Так, да не так.
Если в коде нету команд с абсолютными адресами, то не надо делать п.1-2, если нету импорта, то не нужен п.3.. Остается тока п.4 о чём я и говорил smile

Без импорта можно обойтись - вызывать API по общеизвестным адресам или через шлюз ловушки.

А вооще, программа должна иметь свое адресное пр-во и т.д...


--------------------
Если ты уже никого не боишься, значит ты самый страшный 
PM IM ICQ AOL YIM MSN   Вверх
oleg1973
Дата 14.9.2005, 17:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


asm fanat
****


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

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



Цитата
Если в коде нету команд с абсолютными адресами

а как ты это определиш?
Цитата
Без импорта можно обойтись - вызывать API по общеизвестным адресам или через шлюз ловушки.

ну дык может та прога которую мы запускамем имеет импорт ) или ты ее переделвать будеш? да и адреса разные на разных версиях винды
Цитата
А вооще, программа должна иметь свое адресное пр-во и т.д...

не обязательно, посматри как упаковшики ехешников работают



--------------------
SST 465555
icq 200-512-712
PM MAIL WWW ICQ   Вверх
JoyEx
Дата 14.9.2005, 17:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Дядя
**


Профиль
Группа: Участник
Сообщений: 323
Регистрация: 21.6.2005
Где: Москва, РФ

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



oleg1973 , с праздником!


smile водочка-водочка меняешь ты походочку! smile

1) Мне вааще это не надо
2) Аналогично
3) Аналогично




--------------------
Если ты уже никого не боишься, значит ты самый страшный 
PM IM ICQ AOL YIM MSN   Вверх
p0s0l
Дата 14.9.2005, 20:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Г-н Посол
****


Профиль
Группа: Экс. модератор
Сообщений: 3668
Регистрация: 13.7.2003
Где: 58°38' с.ш. 4 9°41' в.д.

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



JoyEx, таких программ которые ты описал, мало, и в природе встречаются в основном в виде вирей...
А если нужно запустить прогу, которая написана на HLL ? smile

Цитата(JoyEx @ 14.9.2005, 16:34)
А вооще, программа должна иметь свое адресное пр-во и т.д...
Посмотри пример по ссылке что я дал, там хорошая идея, заключающаяся в запуске cmd.exe. После запуска имейдж cmd.exe унмаппится, и туда по нужным адресам рассовываются секции ресурсного EXE-шника... А дальше управление передаётся ОС, которая старательно сама заполняет импорт и начинает работу проги...
Правда не всё запускается таким способом, но при желании можно и доработать... По крайней мере это намного лучше того, чем накладывать огромные ограничения на запускаемую программу... Имхо smile



--------------------
С уважением, г-н Посол.
PM   Вверх
JoyEx
Дата 14.9.2005, 20:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Дядя
**


Профиль
Группа: Участник
Сообщений: 323
Регистрация: 21.6.2005
Где: Москва, РФ

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



Цитата(p0s0l @ 14.9.2005, 20:00)
Цитата (JoyEx @ 14.9.2005, 16:34)
А вооще, программа должна иметь свое адресное пр-во и т.д...

Посмотри пример по ссылке что я дал, там хорошая идея,


Ни разу не делал, но ... smile "ход мыслей мне нравится" (- © Мел Брукс <Всемирная История>)

p0s0l, и тебя тоже с праздником!


--------------------
Если ты уже никого не боишься, значит ты самый страшный 
PM IM ICQ AOL YIM MSN   Вверх
Helicopterr
Дата 9.11.2005, 22:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Насколько я понял, автор темы интересовался аналогом ф-ции ShellExecute для файла в оперативной памяти. Вместо этого наиболее существенное что он получил - параноидальные обвинения в вирмейкерстве.
Я считаю очень важным умение работать с содержимым оперативки. В стандартной инфе по С++ не встречал функции для этого.
Есть утилита разработчика MoleBox. Она пакует к основной экзехе всё что требуется. Может и другую экзеху, используемую основной. При этом она работает только с оперативной и найти в папке Temp unzip нереально.


--------------------
people can fly
PM MAIL   Вверх
gki
Дата 20.12.2005, 20:25 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Как организовать из оперативной память Windows XP виртуальный диск
  Вверх
Sardar
Дата 20.12.2005, 23:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

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



На сколько помню современные процы бьют память на страницы, каждая страница имеет аттрибуты. В страницу помеченную как "код" нельзя писать, из страницы "даные" нельзя исполнять код. По моему только ось (из режима супервизора) может изменить аттрибуты страницы.

Просто мысли... по идее что бы запустить прогу нужно загрузить её в память(создать имейдж процесса), убить себя, т.к. прога в виртуальном пространстве хочет быть одна обычно. Как то сервисами оси указать что страницы с инфой вообще то страницы с кодом, у оси права менять аттрибуты страниц есть. Раз паковщики exe'шников существуют, значит это всё возможно сделать... smile


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
p0s0l
Дата 21.12.2005, 09:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Г-н Посол
****


Профиль
Группа: Экс. модератор
Сообщений: 3668
Регистрация: 13.7.2003
Где: 58°38' с.ш. 4 9°41' в.д.

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



Цитата(Sardar @ 20.12.2005, 23:18)
Раз паковщики exe'шников существуют, значит это всё возможно сделать..
Это делается через VirtualProtect(Ex)

Это сообщение отредактировал(а) p0s0l - 21.12.2005, 09:13


--------------------
С уважением, г-н Посол.
PM   Вверх
Helicopterr
Дата 11.1.2006, 12:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(p0s0l @ 21.12.2005, 09:11)
Это делается через VirtualProtect(Ex)

А есть пример как юзать эту функцию?


--------------------
people can fly
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Системное программирование и WinAPI"
Fixin
GremlinProg
xvr
feodorv
  • Большое количество информации и примеров с использованием функций WinAPI можно найти в MSDN
  • Описание сообщений, уведомлений и примеров с использованием компонент WinAPI (BUTTON, EDIT, STATIC, и т.п.), можно найти в MSDN Control Library
  • Непосредственно, перед созданием новой темы, проверьте заголовок и удостоверьтесь, что он отражает суть обсуждения.
  • После заполнения поля "Название темы", обратите внимание на наличие и содержание панели "А здесь смотрели?", возможно Ваш вопрос уже был решен.
  • Приводите часть кода, в которой предположительно находится проблема или ошибка.
  • Если указываете код, пользуйтесь тегами [code][/code], или их кнопочными аналогами.
  • Если вопрос решен, воспользуйтесь соответствующей ссылкой, расположенной напротив названия темы.
  • Один топик - один вопрос!
  • Перед тем как создать тему - прочтите это .

На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы .


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv.

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


 




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


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

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