![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Закрыть окно на чужой машине [D5, D6, D7, Win2k]
krotik © (2002-12-09 19:22:00)Может кто-нибудь представляет, как можно бы было решить следующую задачу:
Дано:
1. ОС Вин2000 под аналогичным серваком.
2. На чужой (и своей) машине я являюсь локальным админом.
3. Я знаю название машины и окна запущенной на ней программы.
4. Я не хочу устанавливать RemoteAdmin.
Надо закрыть программу, запущенную на другой машине.
Буду благодарен любым советам.
alex134 (2002-12-09 20:38:00) [1]2 krotik ©:
Если ты админ на обеих машинах, ты можешь посадить своего агента на чужую машину. О чем тогда речь ? "Закрыть окно"+"Сокеты" - все что тебе надо.
bak (2002-12-09 20:32:00) [2]client + server +
function NTKillProcess(iProcessID: Integer): Integer;
var
hProcess: Integer;
pfnExitProcess: Pointer;
hInstance: Integer;
hThread: DWORD;
begin
Result:=ERROR_SUCCESS;
hProcess:=OpenProcess(PROCESS_ALL_ACCESS, FALSE, iProcessID);
if hProcess > 0 then begin
hInstance:=GetModuleHandle("KERNEL32.DLL");
pfnExitProcess:=GetProcAddress(hInstance, "ExitProcess");
hThread:=CreateRemoteThread(hProcess, nil, 0, pfnExitProcess, nil, 0,hThread);
if hThread>0 then begin
WaitForSingleObject(hThread, 40000);
if not CloseHandle(hThread) then Result:=GetLastError;
end else Result:=GetLastError;
CloseHandle(hProcess);
end else Result:=GetLastError;
end;
alex134 (2002-12-09 20:31:00) [3]Удалённый доступ (telnet)
Remote Login -- удалённый доступ -- работа на удалённом компьютере в режиме,
когда ваш компьютер эмулирует терминал удалённого компьютера, т.е. вы можете
делать всё то (или почти всё), что можно делать с обычного терминала той машины.
Hачать сеанс удалённой работы можно подав команду (в UNIX) telnet и указав имя
машины, с которой вы хотите работать.
В общем, telnet-клиент работает очень просто -- он устанавливает TCP-связь с
удалённым компьютером и посылает по этому виртуальному каналу всё, что
пользователь вводит с клавиатуры, и выводит на экран всё, что приходит в ответ
по этому же каналу.
Всё просто, однако, не совсем: telnet -- это приложение и поэтому работает на
прикладном уровне, что означает, что пользоваться TCP непосредственно оно не
может, а должно пользоваться посредничеством местной TCP-компоненты (см. пункт
3.2). Telnet-компоненты (клиент и сервер) должны для общения использовать свой
протокол прикладного уровня, что они и делают. Этот протокол называется,
очевидно, так же: telnet.
Протокол telnet предусматривает также управление характеристиками сеанса работы,
например, установку типа пользовательского терминала, ширины и высоты его экрана
и т.д. Обычно, все эти параметры устанавливаются в начале сеанса автоматически в
ходе ``переговоров"" клиента и сервера.
Программа-клиент обычно называется так же: telnet. Она имеет и свой набор
команд, которые управляют собственно этой программой и сеансом связи, его
параметрами, открытием новых, закрытием и т.д.; эти команды подаются из
командного режима telnet, в который можно перейти, нажав так называемую
escape-последовательность клавиш, которая вам сообщается в начале сеанса,
традиционно это Ctrl-]. Эту последовательность можно переопределить по своему
усмотрению в командном режиме.
Описанию протокола telnet посвящено множество RFC. Вот некоторые из них: 764,
818, 854. Причём, это довольно старые RFC.
И еще...
Все это можно реализовать программно - смотрите компоненты... кажись страницы FastNet
Cosmic (2002-12-09 20:20:00) [4]Оч-ч-ч-чень актуальный вопрос :) А поподробнее (по поводу telnet)? Где бы мануал почитать?
(прям сборище хакеров какое-то, однако интересно :)
alex134 (2002-12-09 20:13:00) [5]Думаю, telnet тебе поможет