Работа с exe...

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Dex
Постоялец
Постоялец
 
Сообщения: 346
Зарегистрирован: 09.08.2004 (Пн) 16:11

Работа с exe...

Сообщение Dex » 05.06.2005 (Вс) 19:28

1.Возможно ли записывать в чужие exe свой код? :shock: Если да то как?

ANDLL
Великий гастроном
Великий гастроном
Аватара пользователя
 
Сообщения: 3450
Зарегистрирован: 29.06.2003 (Вс) 18:55

Сообщение ANDLL » 05.06.2005 (Вс) 19:31

Если EXE-файл не открыт, то ручками. Если открыт, то видимо не как.

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

Dex
Постоялец
Постоялец
 
Сообщения: 346
Зарегистрирован: 09.08.2004 (Пн) 16:11

Сообщение Dex » 05.06.2005 (Вс) 19:37

Я имел ввиду записывать в скомпелированный exe (exe неоткрыт) :)

ANDLL
Великий гастроном
Великий гастроном
Аватара пользователя
 
Сообщения: 3450
Зарегистрирован: 29.06.2003 (Вс) 18:55

Сообщение ANDLL » 05.06.2005 (Вс) 19:53

Ну так записывай. Open, Print и Close.

Только, если серьезно: толку от этого будет с глуькин нос. Для затравки можешь поискать в интернете формат PE-файла. Если ты там ничего не поймешь(или поймешь крайне мало), то лучше тебе сюда не соваться.
Гастрономия - наука о пище, о ее приготовлении, употреблении, переварении и испражнении.
Блог

hCORe
VB - Экстремал
VB - Экстремал
Аватара пользователя
 
Сообщения: 2332
Зарегистрирован: 22.02.2003 (Сб) 15:21
Откуда: parent directory

Сообщение hCORe » 05.06.2005 (Вс) 19:59

Даня, значит так:
1) Тебе надо почитать документацию по формату PE (Portable Executable - именно в этом формате хранятся все исполняемые модули под Win32.) Читать надо серьезно, вдумчиво, с расстановкой. Это поможет стопроцентно определить, "дозрел" ли ты до момента, когда тебе можно с ним начинать "бороться". Я, например, еще не "дозрел". Начал читать и бросил. Довольно сложная штука, говорю тебе, этот PE-формат :)
2) Но если говорить в общем плане, то необходимо создать новую секцию с правом исполнения и записи, или расширить существующую и присвоить ей соответствующие права. И записать туда свой код. В случае с существующей секцией можно писать в середину, начало или конец. Лучше всего - в середину, но этот способ - наисложнейший. Затем надо найти EP (Entry Point, точка входа в код) И сохранить адрес первой инструкции неизмененного кода проги. А потом - заменить точку входа адресом первой инструкции твоего кода. Но еще лучше - начинать исполнение не непосредственно с твоего кода, а чуть "поодаль", с кода чужого, - это будет менее заметно. В твоем же коде, по окончании всех действий, следует передать управление на обыкновенный код программы, т.е. перейти к исполнению кода с OEP (Original Entry Point, исходной точки входа.)
{кто лучше знает эту терминологию, поправьте меня, ладно?}

Чтобы осуществить задуманное тобой, надо делать ручную разборку PE-формата и изменение ключевых структур "подопытных" файлов. Сложная эта задача. Тебе-то зачем? Вирус пишешь, что ли? Уж лучше бы SweetHTML потестил, право слово :)
Моду создают модоки, а распространяют модозвоны.

ANDLL
Великий гастроном
Великий гастроном
Аватара пользователя
 
Сообщения: 3450
Зарегистрирован: 29.06.2003 (Вс) 18:55

Сообщение ANDLL » 05.06.2005 (Вс) 20:07

Кстати, если кому интересно: записывать в открытый EXE действительно можно(правда, только в его копию в оперативной памяти)! для того, чтобы открыть доступ достаточно написать:
Код: Выделить всё
Dim A As Long, B As MEMORY_BASIC_INFORMATION
VirtualQuery ByVal App.hInstance, B, Len(B)
Call VirtualProtect(ByVal App.hInstance, B.RegionSize, PAGE_EXECUTE_READWRITE, A)
CopyMemory ByVal App.hInstance, 10&, 4'Собственно проверям. Если закомментировать врехнюю строчку, на данной строке произойдет исключение
Гастрономия - наука о пище, о ее приготовлении, употреблении, переварении и испражнении.
Блог

Dex
Постоялец
Постоялец
 
Сообщения: 346
Зарегистрирован: 09.08.2004 (Пн) 16:11

Сообщение Dex » 05.06.2005 (Вс) 22:03

Так... а ссылочку по документации по формату PE можете предложить?
Тебе-то зачем? Вирус пишешь, что ли?

Да нет тока систему размножения :oops:
И еще есть ли в vb ассемблерские вставки? :?
P.S.:Николай а не пора бы тебе заглянуть на форум FCP TEAM может
кой чего найдешь. :wink:

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 05.06.2005 (Вс) 22:09

ANDLL писал(а):А может можно поменять атрибуты доступа к модулю, используя VirtualProtect?

Можно, но файл (который на диске) всё равно останется заблокированным. Смысл-то какой?
А то, что можно в образ в памяти писать - никакая не новость, трейнеры уже стотыщ лет существуют.
Изображение

Faust
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 649
Зарегистрирован: 29.12.2003 (Пн) 13:38
Откуда: лаборатория

Сообщение Faust » 05.06.2005 (Вс) 23:00

Dex писал(а):И еще есть ли в vb ассемблерские вставки? :?

Сохранились люди, которые об этом ещё не слышали? :?
См. статьи Сергея Гергерта на vbstreets.ru.
Листинги не горят!

Sasha_karasov
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 436
Зарегистрирован: 03.03.2005 (Чт) 19:38
Откуда: ua.dp

Сообщение Sasha_karasov » 06.06.2005 (Пн) 2:34

вот описание:
Вложения
peformat.zip
(20.33 Кб) Скачиваний: 31
Удачи!
С уважением, Алексадр.


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Google-бот и гости: 154

    TopList