Подключение к другому компьютеру (авторизация)

Здравствуйте!

Срочно нужна консультация по C# (.Net).
Нужно из программы подключиться к другому компьютеру (считать журнал событий EventLog), и не знаю, как сообщить этому другому компьютеру имя пользователя и пароль (они не такие, как на моём, их нужно сообщить через программу).
Кто подскажет, как это сделать?

Мне не нужны какие-то мудрёные решения, написанные кем-то, мне просто нужно считать EventLog, ничего более!
 

Marylin

Mod.Assembler
Red Team
05.06.2019
326
1 451
BIT
696
Нужно из программы подключиться к другому компьютеру
Используйте из библиотеки Mpr.dll
Они удобны тем, что просто вызывают уже готовые системные окна.
К примеру WNetConnectionDialog() вызовет окно для выбора сетевого диска, и если у вас к нему нет доступа, то следом вызовет бокс для ввода пароля. Пример на сишке есть по ссылке, а на асме это выглядит так:
C-подобный:
include  'win32ax.inc'
.data
lName     db  'mpr.dll',0
fName     db  'WNetConnectionDialog',0
;//--------
.code
start:    invoke  LoadLibrary,lName           ;// подгружаем mpr.dll динамически
          invoke  GetProcAddress,eax,fName    ;// получаем адрес функции в ней

          push    1                           ;// аргумент "RESOURCETYPE_DISK"
          push    0                           ;// хендл родителя
          call    eax                         ;// зовём WNetConnectionDialog()

          invoke  ExitProcess,0
.end start
wlan.png


Список остальных WNet-функций
После того как получите доступ, можно будет читать файлы как-обычно, через ReadFile()
 
  • Нравится
Реакции: centr
Используйте из библиотеки Mpr.dll
Они удобны тем, что просто вызывают уже готовые системные окна.
К примеру WNetConnectionDialog() вызовет окно для выбора сетевого диска, и если у вас к нему нет доступа, то следом вызовет бокс для ввода пароля. Пример на сишке есть по ссылке, а на асме это выглядит так:
C-подобный:
include  'win32ax.inc'
.data
lName     db  'mpr.dll',0
fName     db  'WNetConnectionDialog',0
;//--------
.code
start:    invoke  LoadLibrary,lName           ;// подгружаем mpr.dll динамически
          invoke  GetProcAddress,eax,fName    ;// получаем адрес функции в ней

          push    1                           ;// аргумент "RESOURCETYPE_DISK"
          push    0                           ;// хендл родителя
          call    eax                         ;// зовём WNetConnectionDialog()

          invoke  ExitProcess,0
.end start
Посмотреть вложение 31792

Список остальных WNet-функций
После того как получите доступ, можно будет читать файлы как-обычно, через ReadFile()
Спасибо большое! А эту библиотеку можно скачать из официальных источников? (Простите, мой планшет не такой "информативный" как хотелось бы...)
 

Marylin

Mod.Assembler
Red Team
05.06.2019
326
1 451
BIT
696
что-за приложение вы пишите и под какую ось?
я привёл пример для винды, и у неё эта библиотека уже есть по-умолчанию в папке ..\System32. Поэтому я просто подгрузил её в свою программу функцией LoadLibrary() и всё
 
что-за приложение вы пишите и под какую ось?
я привёл пример для винды, и у неё эта библиотека уже есть по-умолчанию в папке ..\System32. Поэтому я просто подгрузил её в свою программу функцией LoadLibrary() и всё
Спасибо большое, нашёл. Теперь буду учиться, как загружать такие библиотеки из C#... :)
 

morgot

Green Team
25.07.2018
74
35
BIT
2
Нужно из программы подключиться к другому компьютеру (считать журнал событий EventLog), и не знаю, как сообщить этому другому компьютеру имя пользователя и пароль (они не такие, как на моём, их нужно сообщить через программу).
Psexec либо rdp (если он там есть).
 
Psexec либо rdp (если он там есть).
Не пойдёт - мне нужно подключаться из МОЕЙ программы, а не интерактивно из какой-то другой.
Вариант mpr, что мне посоветовали выше, попробую, а Ваш совет - совсем не для меня.
 

morgot

Green Team
25.07.2018
74
35
BIT
2
Вариант mpr, что мне посоветовали выше, попробую, а Ваш совет - совсем не для меня.
mpr поможет при случае, если этот ваш EventLog находится на расшаренном диске, доступном по сети. Но, если доступ к компьютеру с логом есть, то можно его вперед расшарить или создать пайп / сокет и т.п. и не выдумывать велосипед.
 
вроде есть какой-то пример
Ещё раз огромное спасибо, всё работает!
Прошу ещё ликбеза: а какими средствами можно посмотреть содержимое этой библиотеки, а также user32, да и вообще библиотек?
Просмотрщики что в Visual Studio.NET, что в Visual Studio 6 в упор не хотят понимать mpr.dll...
 

Marylin

Mod.Assembler
Red Team
05.06.2019
326
1 451
BIT
696
какими средствами можно посмотреть содержимое этой библиотеки,
Cистема держит свои библиотеки в папке system32.
Cамый простой способ просмотреть экспорт - это прямо в TotalCommander нажать Ctrl+Q. На вкладке "Import/Export" увидишь лист функций. Более полную инфу о библиотеке можно получить, загрузив её в любой дизассемблер - IDA, Hiew, W32Dasm, Hacker's Disassembler (HDasm), и прочие.
 
Cистема держит свои библиотеки в папке system32.
Cамый простой способ просмотреть экспорт - это прямо в TotalCommander нажать Ctrl+Q. На вкладке "Import/Export" увидишь лист функций. Более полную инфу о библиотеке можно получить, загрузив её в любой дизассемблер - IDA, Hiew, W32Dasm, Hacker's Disassembler (HDasm), и прочие.
Спасибо, попробую. Мой вопрос как раз и был - какой есть дизассемблер. Увы, Visual Studio (ни 6, ни дотнетовские) не подходят...
 

Глюк

Red Team
03.01.2018
1 185
1 879
BIT
185
Ещё раз огромное спасибо, всё работает!
Прошу ещё ликбеза: а какими средствами можно посмотреть содержимое этой библиотеки, а также user32, да и вообще библиотек?
Просмотрщики что в Visual Studio.NET, что в Visual Studio 6 в упор не хотят понимать mpr.dll...
если просто посмотреть, то можно ресторатором. если править, то ResHacker справляется. это самые простые чем можно пользоваться.
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!