Вживление VB-кода в другие процессы

Обсуждение статей, опубликованных на сайте.
gaidar
System Debugger
System Debugger
 
Сообщения: 3152
Зарегистрирован: 23.12.2001 (Вс) 13:22

Вживление VB-кода в другие процессы

Сообщение gaidar » 09.11.2005 (Ср) 16:30

ANDLL
Вживление VB-кода в другие процессы


http://vbstreets.ru/VB/Articles/66227.aspx
The difficult I’ll do right now. The impossible will take a little while. (c) US engineers in WWII
I don't always know what I'm talking about, but I know I'm right. (c) Muhammad Ali

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

Сообщение tyomitch » 09.11.2005 (Ср) 20:59

'Загружаем kernel32.dll и OLE32.dll(точнее, они уже загружены,
'так что просто получаем их hInstance)
Dim hKernelLib As Long, pProc As Long
hKernelLib = LoadLibrary("kernel32.dll")
Dim hOle32Lib As Long
hOle32Lib = LoadLibrary("ole32.dll")

жёстко. А чё не GetModuleHandle? Тогда бы FreeLibrary не понадобилась.

Ещё раскрою страшный секрет, можно?
Можно вместо Main() весь нужный код прописать в Class_Initialize()
Тогда не нужно будет ни знать, ни передавать IID
Изображение

keks-n
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2509
Зарегистрирован: 19.09.2005 (Пн) 17:17
Откуда: г. Москва

Сообщение keks-n » 10.12.2005 (Сб) 17:07

Похоже, что к статье забыли приаттачить пример :(
А таким как я, которые в асме ничего не понимают, разобраться в статье без примера весьма сложно :cry: Просьба, его выложить.
Изображение

gaidar
System Debugger
System Debugger
 
Сообщения: 3152
Зарегистрирован: 23.12.2001 (Вс) 13:22

Сообщение gaidar » 10.12.2005 (Сб) 19:56

Просьба к автору приаттачить пример здесь.
The difficult I’ll do right now. The impossible will take a little while. (c) US engineers in WWII
I don't always know what I'm talking about, but I know I'm right. (c) Muhammad Ali

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

Сообщение ANDLL » 12.01.2006 (Чт) 10:38

Гастрономия - наука о пище, о ее приготовлении, употреблении, переварении и испражнении.
Блог

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

Сообщение ANDLL » 12.01.2006 (Чт) 10:41

Кстати, Гайдар может ты потрудишся, и убереш эти дурацкие посты про продажу ICQ?
Гастрономия - наука о пище, о ее приготовлении, употреблении, переварении и испражнении.
Блог

Ig
Обычный пользователь
Обычный пользователь
 
Сообщения: 73
Зарегистрирован: 30.04.2005 (Сб) 12:37
Откуда: Far East

Сообщение Ig » 12.04.2006 (Ср) 9:14

А хде аттач? :roll:
Вышеуказанная ссылка посылает на юг. 8)
"Нормальные герои всегда идут в обход..."

gaidar
System Debugger
System Debugger
 
Сообщения: 3152
Зарегистрирован: 23.12.2001 (Вс) 13:22

Сообщение gaidar » 12.04.2006 (Ср) 22:47

Да потому как vbland выдает:

Fatal error: main(): Failed opening required '/home/2428/s2782/public_html/includes/version.php' (include_path='.:/usr/local/share/pear') in /pub/home/niceshop/vbland/includes/joomla.php on line 71

Похоже, что руки авторов растут из того места, которое созвучно названию последнего файла. (Без обид, но это там висит постоянно, уже далеко не первый день встречаюсь на ссылках "туда").
The difficult I’ll do right now. The impossible will take a little while. (c) US engineers in WWII
I don't always know what I'm talking about, but I know I'm right. (c) Muhammad Ali

Ig
Обычный пользователь
Обычный пользователь
 
Сообщения: 73
Зарегистрирован: 30.04.2005 (Сб) 12:37
Откуда: Far East

Сообщение Ig » 13.04.2006 (Чт) 4:33

Пасиб, адмирал, за поддержку. :lol: :roll:
Но хотелось бы услышать "начальника транспортного цеха", то бишь: афтора. :wink:
"Нормальные герои всегда идут в обход..."

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

Сообщение ANDLL » 13.04.2006 (Чт) 11:59

Ну вот, из-за лени Гайдара(не приаттачевшего вложение, при публикации статьи), мне приходится сейчас лезть в старые архивы и искать этот исходник...

Да и вообще, не пойму, зачем он Вам нужен? Если поняли о чем шла речь в статье - сами все напишете за полчаса. Не поняли - толку от исходника?
Вложения
article.zip
Исходник
(141.44 Кб) Скачиваний: 764
Гастрономия - наука о пище, о ее приготовлении, употреблении, переварении и испражнении.
Блог

Ramzes
Скромный человек
Скромный человек
Аватара пользователя
 
Сообщения: 5004
Зарегистрирован: 12.04.2003 (Сб) 11:59
Откуда: Из гробницы :)

Сообщение Ramzes » 13.04.2006 (Чт) 12:20

старый злобный копипаст, некоторые еще им пользуются :roll:

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 13.04.2006 (Чт) 14:56

Ramzes тонко язвит :)

gaidar
System Debugger
System Debugger
 
Сообщения: 3152
Зарегистрирован: 23.12.2001 (Вс) 13:22

Сообщение gaidar » 13.04.2006 (Чт) 17:06

Не, лень тут ни при чем. Просто во время очередного глюка движка архив улетел в космос и не вернулся :)
The difficult I’ll do right now. The impossible will take a little while. (c) US engineers in WWII
I don't always know what I'm talking about, but I know I'm right. (c) Muhammad Ali

Ig
Обычный пользователь
Обычный пользователь
 
Сообщения: 73
Зарегистрирован: 30.04.2005 (Сб) 12:37
Откуда: Far East

Сообщение Ig » 14.04.2006 (Пт) 0:51

ANDLL писал(а):Ну вот... ...мне приходится сейчас лезть в старые архивы и искать этот исходник...

Пасиб, уважаемый ANDLL.
Потомки Вас не забудут.
Как грится: "Не пропадет ваш скорбный труд и дум высокое стремленье..." :)

Ramzes писал(а):старый злобный копипаст

Не-а, порядок должон быть во всем... :wink:
Обещали "сыра" - извольте выложить :)

gaidar писал(а):Просто во время очередного глюка движка архив улетел в космос и не вернулся

Видать, в качестве очередного послания внеземному разуму, он прихватил с собой ишшо и скриншоты из некоторых статей... :) :wink:
"Нормальные герои всегда идут в обход..."

gaidar
System Debugger
System Debugger
 
Сообщения: 3152
Зарегистрирован: 23.12.2001 (Вс) 13:22

Сообщение gaidar » 14.04.2006 (Пт) 18:09

Картинки в статьях я вроде все восстановил.
The difficult I’ll do right now. The impossible will take a little while. (c) US engineers in WWII
I don't always know what I'm talking about, but I know I'm right. (c) Muhammad Ali

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

Сообщение ANDLL » 14.04.2006 (Пт) 18:20

Кстати,
Нам вовсе не обязательно разбираться, что эти каракули обозначают, достаточно выделить из них два значения, выделенных цветными маркерами. Запишите эти значения IID и CLSID на бумажку – они вам еще пригодятся…

В исходнике там действительно выделены некоторые значения маркером, а вот на vbstreets никакого выделения нет.
Как же так Гайдар, я тебе про это говорил, и ты говорил, что исправил?
Гастрономия - наука о пище, о ее приготовлении, употреблении, переварении и испражнении.
Блог

gaidar
System Debugger
System Debugger
 
Сообщения: 3152
Зарегистрирован: 23.12.2001 (Вс) 13:22

Сообщение gaidar » 15.04.2006 (Сб) 19:30

Слетело форматирование.
The difficult I’ll do right now. The impossible will take a little while. (c) US engineers in WWII
I don't always know what I'm talking about, but I know I'm right. (c) Muhammad Ali

Ig
Обычный пользователь
Обычный пользователь
 
Сообщения: 73
Зарегистрирован: 30.04.2005 (Сб) 12:37
Откуда: Far East

Сообщение Ig » 17.04.2006 (Пн) 4:07

gaidar писал(а):Картинки в статьях я вроде все восстановил.

Действительно...
Это "моя лошадь медленно ходит"...

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

schalexey
Обычный пользователь
Обычный пользователь
 
Сообщения: 96
Зарегистрирован: 18.02.2005 (Пт) 17:41
Откуда: Сургут

Сообщение schalexey » 20.05.2006 (Сб) 15:36

это получается если вживить код в левый процесс то можно перехватить его сообщения? + передать куда нужно и сделать что угодно?... или ошибаюсь...

ЗЫ не силен в таких тонкостях.. так что сильно не бейте :)

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

Сообщение tyomitch » 20.05.2006 (Сб) 15:49

schalexey, подтверждаю: можно.
см. http://bbs.vbstreets.ru/viewtopic.php?t=10245
Изображение

schalexey
Обычный пользователь
Обычный пользователь
 
Сообщения: 96
Зарегистрирован: 18.02.2005 (Пт) 17:41
Откуда: Сургут

Сообщение schalexey » 20.05.2006 (Сб) 16:05

tyomitch спасибо :) будем пробовать :)

ЗЫ http://bbs.vbstreets.ru/viewtopic.php?t ... highlight= вот в этой тебе я уже вас пытал о подобном :))

VERITAS
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 212
Зарегистрирован: 12.12.2004 (Вс) 20:31

Сообщение VERITAS » 04.06.2006 (Вс) 23:53

Да - очень полезная вещь ! В принципе кому нада - разберется с тем что написано в статье, (а это, я бы сказал очень большой будет вам плюс).

С ассемблером - у меня туговато, мда пока к сожалению могу писать только простейшие программы под DOS и читать и вникать в изложенный код. И вот мне сейчас необходимо завершить процесс, через OpenProcess(PROCESS_TERMINATE, 0, ProcessId). Насколько я понял, в ассемблере при вызове API функции в стек помещаются параметры функции в ОБРАТНОМ порядке, т.е. для вызова OpenProcess мы должны написать
Код: Выделить всё
push dword [ebp+ProcessId]
push dword 0
push dword 01f01h
mov edx, [ebp+OpenProcess]

Вообще - я можно сказать, плохо понял как перевести константы VB в ассемблер, но есть предположения. Разъясните если не трудно, как к примеру перевести Const PROCESS_TERMINATE = &H1 в ассемблеровскую ?

Ну сообственно код для завершения процесса по ID получается (где-то такой):
Код: Выделить всё
BITS 32
jmp StartPoint

OpenProcess                 dd 0 ;функция OpenProcess
WaitForSingleObject         dd 0 ;функция WaitForSingleObject
CloseHandle                 dd 0 ;функция CloseHandle
ExitThread                  dd 0 ;функция ExitThread
ProcessId                   dd 0 ;идентификатор нашего процесса
CloseId      dd 0 ;идентификатор закрываемого процесса

CallPageBase:;эта процедура определит базовый адрес страницы и поместит его в ebp
mov ebp, [esp]
sub ebp, SomePoint
ret

StartPoint:   ;тут начинается наша программа

mov ecx, SomePoint
call CallPageBase
SomePoint:   ;сюда будет указывать [esp]
;Теперь в ebp хранится адрес начала нашего кода

push dword [ebp+ProcessId]   ;|
push dword 0   ;|
push dword 01f0fffh   

;|==>OpenProcess(PROCESS_ALL_ACCESS,0,ProcessId); где PROCESS_ALL_ACCESS=0x1f0fff
mov edx, [ebp+OpenProcess]   ;|    Открываем наш процесс
call edx   ;|
mov ebx, eax   ;будем храниться описатель нашего процесса в ebx
;Теперь в ebx хранится hProcess нашей программы

;|==>WaitForSingleObject(ebx,-1);
;| Ждем, пока наш процесс угаснет
push dword -1               
push ebx
mov edx, [ebp+WaitForSingleObject]
call edx
push ebx                  
mov edx, [ebp+CloseHandle]
call edx

push dword [ebp+CloseId]
push dword 01f01h    ;|==>OpenProcess(PROCESS_TERMINATE,0,CloseId); где PROCESS_TERMINATE=0x1f01
mov edx, [ebp+OpenProcess]    ;| Делаем терминайте (TERMINATE) процесса

push dword 0               
mov edx, [ebp+ExitThread]
call edx                  
int 3                  
int 3                  
int 3
int 3                  
int 3                  

Но он не работаете у меня - после завершения моей программы, - программа в которую был внедрен код, продолжает работать - исправьте пожайлуста что неправильно, и кратко прокоментируйте, очень хочу разобраться с ассемблер.
No comments ...

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

Сообщение tyomitch » 05.06.2006 (Пн) 0:02

VERITAS писал(а):И вот мне сейчас необходимо завершить процесс, через OpenProcess(PROCESS_TERMINATE, 0, ProcessId).

Эта функция не завершает процесс -- а, как раз наоборот, открывает.
RTFM в направлении TerminateProcess.
Изображение

VERITAS
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 212
Зарегистрирован: 12.12.2004 (Вс) 20:31

Сообщение VERITAS » 05.06.2006 (Пн) 7:12

Мде ..., издержки времени (в последнее время ночью совсем не соображаю).

tyomitch:
Конечно же через Private TerminateProcess (ByVal hProcess As Long, ByVal uExitCode As Long) As Long
Сначала получаем описатель закрываемого процесса через OpenProcess(PROCESS_QUERY_INFORMATION Or PROCESS_TERMINATE, 0, PID), ну а потом делаем Terminate - здесь все ясно, я даже разобрася какой код будет на асме :) Но одно непонятно - как переводить константы ???

Const PROCESS_QUERY_INFORMATION = &H400 (на сколько я понял и перевел эту константу, в асме я ее должен записать, как:
Код: Выделить всё
push dword 400h

Const PROCESS_TERMINATE = &H1 (будет:
Код: Выделить всё
push dword 1h

Вот объясни мне пожайлуста этот момент (перевод констант) :roll:
No comments ...

VERITAS
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 212
Зарегистрирован: 12.12.2004 (Вс) 20:31

Сообщение VERITAS » 05.06.2006 (Пн) 7:28

Если я все правильно понял, то как будет тогда записан PROCESS_QUERY_INFORMATION Or PROCESS_TERMINATE ??
No comments ...

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

Сообщение ANDLL » 05.06.2006 (Пн) 8:21

Вообщето если хочеш заврешить тот процесс, в котором находится код, то вместо Open\Terminate Process можно вполне использовать ExitProcess.
Гастрономия - наука о пище, о ее приготовлении, употреблении, переварении и испражнении.
Блог

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

Сообщение tyomitch » 05.06.2006 (Пн) 8:22

VERITAS писал(а):Если я все правильно понял, то как будет тогда записан PROCESS_QUERY_INFORMATION Or PROCESS_TERMINATE ??

Код: Выделить всё
push 400h or 1h
Изображение

VERITAS
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 212
Зарегистрирован: 12.12.2004 (Вс) 20:31

Сообщение VERITAS » 05.06.2006 (Пн) 9:41

tyomitch в асме ведь нет знака "or" ... nasmw ругается при компиляции, если написать то что ты говоришь.

Может меня недопоняли, (вроде все нормально пояснил). Вот к примеру <PROCESS_ALL_ACCESS> (из статьи) состоит из (STANDARD_RIGHTS_REQUIRED Or SYNCHRONIZE Or &HFFF), т.е. PROCESS_ALL_ACCESS = &HF0000& or &H100000 or &HFFF = 01f0fffh
а (PROCESS_QUERY_INFORMATION Or PROCESS_TERMINATE) или &H400 or &H1 = 0401h ???
No comments ...

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

Сообщение tyomitch » 05.06.2006 (Пн) 9:49

знак "or" есть, по крайней мере, в MASM и TASM
если пользуешься какими-то гнутыми самопальными тулзами, я ни при чем.
Изображение

VERITAS
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 212
Зарегистрирован: 12.12.2004 (Вс) 20:31

Сообщение VERITAS » 05.06.2006 (Пн) 10:23

Я тоже не причем :) компилятор лежал в архиве к статье, который предоставил ANDLL - бейте его :) :P

Океей tyomitch - попробую другими, это был вопрос а не упрек!

И еще один вопрос по поводу безопастности. Возможно отследить такое вжевление, ну тоесть определить то что оно произошло - можно(Outpost детектит) а просмотреть и понять что оно делает - реально с помощью какой нибудь софтинки (учитывая что пользователь - не силен в дизассемблировании) ?
No comments ...

След.

Вернуться в Статьи

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

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

    TopList