Просмотр полной версии : Delphi и "Удаоенный рабочий стол"
Реально ли? (если то как) написать клиент для виндовского удаленного раб стола... тоесть, чтобы в проге вбиваешь ип, логин\пасс она заходила на и выполняла команды не удаленном компе....
Nightmarе
31.05.2009, 04:18
радмин ;) но это работа только с внешними айпи которые редко попадаются
радмин разве умеет к стандартному урс подключаться?
что вобще не рально такое написать ?(
Попробуй такую шнягу....
Option Explicit
On Error Resume Next
Dim objReg, objWMIService, objItem, colItems
Dim strComputer, strKeyPath, strValueName, strValue
Const HKEY_LOCAL_MACHINE = &H80000002
If WScript.Arguments.Count <> 1 Then
strComputer ="."
InputBox("Enter machine name you want to " &_"enable Remote Desktop", "Machine Name?", "")
If strComputer = "" Then
Call cleanUP
End If
Else
strComputer = WScript.Arguments(0)
End If
Set objReg=GetObject("winmgmts:{impersonationLevel=impersonate}!\\" &_
strComputer & "\root\default:StdRegProv")
If Err.Number <> 0 Then
Wscript.Echo Err.Number & " The remote machine (" & strComputer & ")" &_
" is unavailable or access denied."
Err.Clear
Call cleanUP
End If
strKeyPath = "SOFTWARE\Microsoft\Windows NT\CurrentVersion"
strValueName = "CurrentVersion"
objReg.GetStringValue HKEY_LOCAL_MACHINE,strKeyPath,strValueName,strValu e
If strValue >= 5.1 Then
strKeyPath = "SYSTEM\CurrentControlSet\Control\Terminal Server"
strValueName = "fDenyTSConnections"
objReg.GetDWORDValue HKEY_LOCAL_MACHINE,strKeyPath,strValueName,strValu e
If strValue = 0 Then
Wscript.Echo "Remote Desktop is already enabled on: " & strComputer
Call cleanUP
Else
strValue = 0
objReg.SetDWORDValue HKEY_LOCAL_MACHINE,strKeyPath,strValueName,strValu e
Wscript.Echo "Remote Desktop was enabled on: " & strComputer
Call cleanUP
End If
Else
Wscript.Echo "The remote machine (" & strComputer & ")" &_
"is not Windows XP or Windows 2003"
Call cleanUP
End If
Sub cleanUP
Set strComputer = Nothing
Set strKeyPath = Nothing
Set strValueName = Nothing
Set strValue = Nothing
Set stdOut = Nothing
Set objReg = Nothing
WScript.Quit
End Sub
aqqa, а тебе вот не кажется, что твой код на VB, а автору надо на дельфях?
Мне это тоже интересно. Неужели никто не пробывал "взломать" RDP-протокол? Поидее можно было бы сделать сетевого червя, который распространялся бы по нему и записывал/отправлял логи куда-нибудь. Для радмина такая вещь есть.
Вот как раз ковыряюсь...
статейка что и как: http://www.delphisources.ru/pages/faq/base/ts_client.html
стабильно рабочий mstscax.dll: http://dump.ru/file/2839944 , более поздние версии глючат (
Joker-jar
04.06.2009, 05:28
Ищи реализацию RDP на Delphi
aqqa, а тебе вот не кажется, что твой код на VB, а автору надо на дельфях?
Мне это тоже интересно. Неужели никто не пробывал "взломать" RDP-протокол? Поидее можно было бы сделать сетевого червя, который распространялся бы по нему и записывал/отправлял логи куда-нибудь. Для радмина такая вещь есть.
Ты прям предо мной америку открыл....
Раз тебе интересно сиди разбирайся!
Вам, епт, готовый код подавай с полными коментариями на русском языке,а вы потом на форме название поменяеете и как всегда в ублюдские цвета раскрасите......программисты бля! Хакеры нах!
Dr.Gonzo
04.06.2009, 15:13
2Zitt: Берешь клиент-серверное приложение простое на Indy.
составляешь список команд, добавляешь шифрование если надо, потом просто делаешь скрины экрана и шлешь клиенту с интервалом, а клиентское ПО определяет координаты мыши и шлет серваку, сервак в свою очередь двигает мышь.
Достаточно разбить свою задачу на ряд маленьких подзадачь и постепенно их реализовать.
А если интересен пример простенького приложения на Delphi7, пиши в личку, были где-то наработки
Пасиб всем.. Буду смареть..
Вот как раз ковыряюсь...
статейка что и как: http://www.delphisources.ru/pages/faq/base/ts_client.html
стабильно рабочий mstscax.dll: http://dump.ru/file/2839944 , более поздние версии глючат (Спасибо тебе, буду тоже разбиратьсяТы прям предо мной америку открыл....
Раз тебе интересно сиди разбирайся!
Вам, епт, готовый код подавай с полными коментариями на русском языке,а вы потом на форме название поменяеете и как всегда в ублюдские цвета раскрасите......программисты бля! Хакеры нах!Ну ты конечно прям такой дерзкий, но всеже остынь немного. Мне комменты не нужны, и раскрашивать я ничего не собираюсь.
AquaKlaster
14.06.2009, 02:04
Спасиб мне тоже помогло!
У кого-нибуди работает MsRdpClient1.AdvancedSettings2.ClearTextPassword?
Сколько не пробовал, все время ошибку выдает: Интерфейс не поддерживается.
Хотя на VB6, точно такойже код и таже версия библиотеки mstscax, все прекрасно работает
rfc
http://www.faqs.org/rfcs/rfc908.html
http://www.faqs.org/rfcs/rfc1151.html
aqqa, +1
а нафига, аналог радмина писать? чё команды уже неакктуальны либа? Пишешь серверную часть, которая должна оповестить о начале работы и открыть порт. потом вбиваешь список команд, и то что они должны делать. и с клиента шлёшь запросы с определённой командой. хотя хрена я распинаюсь - это стандартный троян.
mr. ZetRikS
17.07.2009, 13:23
А я в своё время помнится писал что то подобное, реализовал только видеонаблюдение, а команды в принципе просто реализовать, статей полно
спроси у гугла как написать backdoor на Delphi
А видео наблюдение я реализовывал примерно так:
Делал скрины примерно раз в 100 мс и сжимал их, а потом пересылал на законнекченый адрес клиента... сервер висел на так сказать заражённой машине...
Где-то валялся пример даже удаленное управление как у Radmin, но проблема в таких программах то чего я так и не нашел и увы не смог сам осилить, это то, что бы не весь снимок отсылать каждый раз, а только изменения на рабочем столе, без этого все будет очень медленно, даже по локалке.
Так что если кто может поделится подобным кодом, буду очень благодарен, тогда возможно и будет реализация и можно будет выложить.
ппц причем тут самописные серверы? если ТС хочет реализовать клиент работающий на протоколе RDP.
mr. ZetRikS
19.07.2009, 01:27
А скрины, тоже бред пересылать... даже сжатые... имхо функция есть чисто глянуть какие иконки на раб. столе... Вот ScreenShot:<качество> - прислать скриншот экрана на FTP
Если разрешение экрана скажем 1024х768 и урезать его (сжать не в плане уменьшать качество до нуля, хотя качество на jpg картинках мона регулировать) нун скажем при качестве порядка 4 из 10 и размере картинки 320х240, то получается изображение в несколько килобайт, которые при нормельном коннекте пересылать по 5 штук (раз в 200 мс) в секунду не очень то и проблематично... :)
С РАдмином на диалапе тож особо не поработаешь :)
Нун... каждый выбирает свою реализацию... а нафига скрин по фтп? если мона наблюдать в живую... нун и он же буит писать реализацию команд... почему бы добавить не присылание на фтп, а скажем прямое получение картинки. или на какой нить друго серв заливалась она. дабы работа была менее палевной :)
Кстати, автор, если будешь реализовывать как предложил я, сделай двойую буферизацию на клиенте, код не сложный, а картинка мерцать не будет, это описано в книге "Занимательное программирование"
zeppe1in
19.07.2009, 01:33
нет не реально)
Что ты увидишь в 320 * 240 :-D
какие нафиг jpg??? oO
gif, отсылать только изменный участок изображения, информации передается минимум. в итоге на клиенте накладываются только изменные участки.
Смысл слать полный скрин?
mr. ZetRikS
19.07.2009, 14:34
какие нафиг jpg??? oO
gif, отсылать только изменный участок изображения, информации передается минимум. в итого на клиенте накладываются только изменные участки.
Смысл слать полный скрин?
Мона слать и гифы, но гифы не меньше помоему весить будут, а серверное приложение в размере вырастет от алгоритма обрезания не изменённой части картинки...
Хотя если кто то выложит алгоритм обрезания изменённной части картинки, вырезание этой изменившейся части и вставку её в другую картинку, мне буит интересно почитать, и поюзать, да и остальным думаю тоже :)
Смысл слать полный? он не полный... он сжатый и с уменьшеным размером...
320 * 240 мона увидеть структуру рабочего стола и то, что на нём находится, что мешает на клиенте сделать увеличение картинок... :)
Ктати, можно сделать скажем передачу при начале работы, нун получение размера рабочего стола, и определение на сколько 320 меньше действительной координаты, дабы получить цифру на которую умножать при управлении мышой...
То есть
if мыша_над_картинкой then
Begin
Y:= Координата_на_картинке_y * разница_разрешений;
X:=........;
Отправление_координат(X,Y);
End;
Если продолжать дальше, то так же можно посылать нажатия клавиш мыши...
Только вот передачу нажатых клавиш в поле ввода думаю будет немного сложнее реализовать, а так, помоему всё норм... и не сложно... автор надеюсь не ищет сложные решения... )
vBulletin® v3.8.14, Copyright ©2000-2026, vBulletin Solutions, Inc. Перевод: zCarot