Процесс без ехе-шника

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Процесс без ехе-шника

Сообщение tyomitch » 28.08.2005 (Вс) 2:12

Кому не терпелость создать сабж? ANDLL, кажется?
В общем, похоже что всё возможно :-)
Я тут пять часов поковырялся, потом надоело и я бросил. Может кто более усидчивый добьёт.

Основной инструмент: http://shelek.tmf.ru/archive/books/Win2 ... f/book.pdf - справочник по Native API. Внимательно изучается пример 6.2 (стр. 165) и вносятся необходимые коррективы.

Но всё не так просто: если нет ехе-шника, то всю "загрузку" программы (например, разрешение импортов) придётся делать самому. Зато перспективы какие открываются - просто жуть.
Никому не интересно?
Изображение

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 28.08.2005 (Вс) 3:47

Писать самому загрузчик? Ну как тебе сказать :)
Ща я тебе ссылку дам на то, как загрузчик импорты разрешает :)

А может и не дам :)
http://www.microsoft.com/rus/msdn/magaz ... s_2000.asp

Если найдёшь-таки эту статью, хорошо :)
У меня она в бумажном виде.


Нашёл :)
http://msdn.microsoft.com/msdnmag/issue ... fault.aspx
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

GM
programador
programador
 
Сообщения: 1427
Зарегистрирован: 24.06.2003 (Вт) 15:56
Откуда: 194.67.52.100

Сообщение GM » 28.08.2005 (Вс) 7:43

Эх, а я когда-то пробовал сделать это через именованые каналы. Жаль ничего не получилось, зато каналы получились. Надо было MSDN читать перед тем как что-то делать.
الفيجوال بيسك الرابح

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

Сообщение tyomitch » 28.08.2005 (Вс) 12:57

Угу, я посмотрел - CreateProcess проверяет переданный путь, и выдаёт ошибку, если это не файл, а что-то другое (труба и т.д.)
Изображение

GM
programador
programador
 
Сообщения: 1427
Зарегистрирован: 24.06.2003 (Вт) 15:56
Откуда: 194.67.52.100

Сообщение GM » 28.08.2005 (Вс) 13:43

И еще я смотрел, нельзя определить размер трубы, вот.
الفيجوال بيسك الرابح

xenomorph
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 508
Зарегистрирован: 18.04.2004 (Вс) 11:41
Откуда: это не важно - на сегодня у меня есть алиби ...

Re

Сообщение xenomorph » 30.08.2005 (Вт) 14:43

Есть альтернативный вариант:

1. Ексешник записать в именованый поток данных в NTSF.
2. Запустить на выполнение из потока.
3. Стререть файл носитель.
--
Вуаля. Файл будет работать БЕЗ физического носителя.

Фишка называеятся "Файл-призрак".
Работает только один раз по запуску, и естественно только на NTSF FS.

KeyWords для копания если интересно:
NTFS www.xakep.r DigitalScream ZeroIce Alternate Alternative Data Streams ADS
... Dpkjvfnm dc`xnj itdtkbnmcz, f tckb yt itdtkbnmcz hfcitdtkbnm b dpkjvfnm !!! ...

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Сообщение Antonariy » 30.08.2005 (Вт) 14:50

Code Red так работает, если не ошибаюсь.
Лучший способ понять что-то самому — объяснить это другому.

xenomorph
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 508
Зарегистрирован: 18.04.2004 (Вс) 11:41
Откуда: это не важно - на сегодня у меня есть алиби ...

Сообщение xenomorph » 30.08.2005 (Вт) 14:57

Зато перспективы какие открываются - просто жуть.

Эээ ... можно поконкретнее? Какая с этого польза?
... Dpkjvfnm dc`xnj itdtkbnmcz, f tckb yt itdtkbnmcz hfcitdtkbnm b dpkjvfnm !!! ...

Sebas
Неуловимый Джо
Неуловимый Джо
Аватара пользователя
 
Сообщения: 3626
Зарегистрирован: 12.02.2002 (Вт) 17:25
Откуда: столько наглости такие вопросы задавать

Сообщение Sebas » 30.08.2005 (Вт) 15:50

так он, по-мойму, виден то будет всё равно(((
- Я никогда не понимал, почему они приходят ко мне чтобы умирать?

sebas<-@->mail.ru

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

Сообщение tyomitch » 30.08.2005 (Вт) 15:52

xenomorph писал(а):
Зато перспективы какие открываются - просто жуть.

Эээ ... можно поконкретнее? Какая с этого польза?

Ну как: не нужно NTFS, не нужно права на запись на диск, вообще быстрее и эффективнее всё работает, т.к. нет обращения к диску.
Изображение

BV
Thinker
Thinker
Аватара пользователя
 
Сообщения: 3987
Зарегистрирован: 12.09.2004 (Вс) 0:55
Откуда: Молдавия, г. Кишинёв

Сообщение BV » 30.08.2005 (Вт) 16:50

Тааак... Теперь хакерский вопрос - можно ли задать такому hInst несуществующий путь к ЕХЕ, а?
const char *out = "|*0>78-,+<|"; size_t cc = char_traits<char>::length(out);
for (size_t i=0;i<cc;i++){cout<<static_cast<char>((out[i]^89));}cout<<endl;

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

Сообщение tyomitch » 30.08.2005 (Вт) 19:24

Да можно, можно.
А зачем тебе? Маскироваться? Так это и "обычному" процессу можно поменять на что хошь.
Изображение

BV
Thinker
Thinker
Аватара пользователя
 
Сообщения: 3987
Зарегистрирован: 12.09.2004 (Вс) 0:55
Откуда: Молдавия, г. Кишинёв

Сообщение BV » 30.08.2005 (Вт) 20:07

Подожди... как сменить путь?
const char *out = "|*0>78-,+<|"; size_t cc = char_traits<char>::length(out);
for (size_t i=0;i<cc;i++){cout<<static_cast<char>((out[i]^89));}cout<<endl;

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

Сообщение tyomitch » 30.08.2005 (Вт) 20:41

Ну найти, где он хранится, и поменять :roll:
NtQueryInformationProcess -> PROCESS_BASIC_INFORMATION -> PEB -> RTL_USER_PROCESS_PARAMETERS -> ImagePathName, я думаю. Но я не проверял.
Изображение

xenomorph
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 508
Зарегистрирован: 18.04.2004 (Вс) 11:41
Откуда: это не важно - на сегодня у меня есть алиби ...

Сообщение xenomorph » 30.08.2005 (Вт) 21:59

2 FleX_2004 - я тебе личное направил.
... Dpkjvfnm dc`xnj itdtkbnmcz, f tckb yt itdtkbnmcz hfcitdtkbnm b dpkjvfnm !!! ...


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

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

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 163

    TopList