Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 | 2 |

 

  Вопрос: Имя процесса в TCP таблице Добавлено: 22.08.05 17:10  

Автор вопроса:  HACKER

Ответить

  Ответы Всего ответов: 24  

Номер ответа: 16
Автор ответа:
 HACKER


 

Разработчик Offline Client

Вопросов: 236
Ответов: 8362
 Профиль | | #16 Добавлено: 30.08.05 15:25
и, ещё

cGetInputState
GetTcpPortNumber
Proc_Path
GetIpFromLong
GetState
C_UBound


Где ж я их все найду?

Ответить

Номер ответа: 17
Автор ответа:
 Brusco



ICQ: 175617069 

Вопросов: 4
Ответов: 24
 Профиль | | #17 Добавлено: 01.09.05 02:55
GetProcs - это я собирался сделать получение всех процессов системы типа для сравнения, точнее это было в скачанном мной исходнике (к сожалению его я найти никак не могу).

Процессы можно получить через EnumProcesses или CreateToolhelp32Snapshot.

Вот моя функция по получению процессов, только на PB:


SUB GetProcesses(BYVAL hWnd AS DWORD, BYVAL hCtl AS DWORD, BYVAL lColCnt AS LONG)

   ;DIM PE32 AS PROCESSENTRY32
   ;DIM uProcess AS MODULEENTRY32

   ;DIM hProcessSnap AS DWORD
   ;DIM hSnapshot AS DWORD

   ;DIM P AS BYTE
   ;DIM M AS BYTE

   LOCAL LVI AS LV_ITEM
   ;DIM lCol AS LONG
   ;DIM lRow AS LONG

   ;DIM buff AS ASCIIZ * 260       ' Заголовок найденного окна

   ;DIM chUser AS ASCIIZ * 50, chDomain AS ASCIIZ * 50


   ' Очистка ListView
   ListView_DeleteAllItems hCtl

   hProcessSnap = CreateToolhelp32Snapshot(%TH32CS_SNAPPROCESS, 0)

   PE32.dwSize = SIZEOF(PE32)
   CALL Process32First(hProcessSnap, PE32)

   ;DO
      buff = PE32.szExeFile

      LVI.stateMask = %LVIS_FOCUSED
      LVI.iItem = 0

      IF PE32.th32ProcessID <> 0 THEN

         FOR lCol = 0 TO lColCnt - 1
             IF lCol = 1 THEN buff = STR$(PE32.th32ProcessID)
             CALL GetUser(PE32.th32ProcessID, chUser, chDomain)
             IF chUser = "" THEN chUser = "SYSTEM"
             IF lCol = 2 THEN buff = chUser  

             LVI.pszText = VARPTR(buff)
             LVI.iSubItem = lCol
             LVI.lParam = 0
             IF lCol = 0 THEN
                LVI.mask = %LVIF_TEXT
                ListView_InsertItem hCtl, LVI
             ELSE
                LVI.mask = %LVIF_TEXT
                ListView_SetItem hCtl, LVI
             END IF

         NEXT lCol

      END IF

      'hSnapshot = CreateToolhelp32Snapshot(%TH32CS_SNAPMODULE, PE32.th32ProcessID)
    
   LOOP WHILE Process32Next(hProcessSnap, PE32)

   CALL CloseHandle(hProcessSnap)
END SUB


Думаю от PB до VB не далеко, во всяком случае для меня это одно и то же!

На cGetInputState забей - хрень какая-то...

GetTcpPortNumber - что тут не понятно? Всё ясно из названия! Просто винда возвращает порт, так же как и ip-адрес в десятичном 4-байтовом формате, ну и надо переводить:


Private Function GetTcpPortNumber(DWord As Long) As Long
    GetTcpPortNumber = DWord / 256 + (DWord Mod 256) * 256
End Function


GetState - это как раз по константе и определяют в каком состоянии находится соединение.

Proc_Path - это вот и получение путя к приложению по id (см. выше)
На C_UBound то же забей - это так для пересчёта соединений.

Вообще зачем тебе эта статистика соединений?
Если файрвол пишешь, то это неудачная затея.
Я вот тоже писал и не дописал, пару раз на нервы подействовал лаборантам в универе и всё). Эти функции верхнего уровня и поэтому работают медленно, да и этот RemoteTaskManager не смогла почему-то перекрыть (эта зараза через rpc лезет).
К тому же чтобы моя прога работала нужны были пароли админа, которые пришлось отдельно получать...

Ответить

Номер ответа: 18
Автор ответа:
 HACKER


 

Разработчик Offline Client

Вопросов: 236
Ответов: 8362
 Профиль | | #18 Добавлено: 01.09.05 21:36
ок, большое спасибо!

Ответить

Номер ответа: 19
Автор ответа:
 «UL.eXe»



ICQ: 197.895.916.247 

Вопросов: 72
Ответов: 540
 Профиль | | #19 Добавлено: 04.09.05 00:40
Незнаю, правильно-ли я тебя понял :)

попробуй NtQuerySystemInformation.

NTSTATUS NtQuerySystemInformation(
IN SYSTEM_INFORMATION_CLASS SystemInformationClass,
IN OUT PVOID SystemInformation,
IN ULONG SystemInformationLength,
OUT PULONG ReturnLength OPTIONAL
);


SystemInformationClass указывает тип информации, для получения,
SystemInformation - результирующий буфер,
SystemInformationLength - размер этого буфера
ReturnLength - количество записанных байт

Перечисли процессы так вот =)

SystemInformationClass значение SystemProcessesAndThreadsInformation.

#define SystemInformationClass 5


Возвращаемая структура в буфере SystemInformation:

typedef struct _SYSTEM_PROCESSES {
ULONG NextEntryDelta;
ULONG ThreadCount;
ULONG Reserved1[6];
LARGE_INTEGER CreateTime;
LARGE_INTEGER UserTime;
LARGE_INTEGER KernelTime;
UNICODE_STRING ProcessName;
KPRIORITY BasePriority;
ULONG ProcessId;
ULONG InheritedFromProcessId;
ULONG HandleCount;
ULONG Reserved2[2];
VM_COUNTERS VmCounters;
IO_COUNTERS IoCounters; а енто походу только для NT-шек
SYSTEM_THREADS Threads[1];
} SYSTEM_PROCESSES, *PSYSTEM_PROCESSES;

NextEntryDelta записи предшествующей записи скрываемого процесса

Ответить

Номер ответа: 20
Автор ответа:
 HACKER


 

Разработчик Offline Client

Вопросов: 236
Ответов: 8362
 Профиль | | #20 Добавлено: 04.09.05 19:23
нет, не правельно...

Ответить

Номер ответа: 21
Автор ответа:
 Александр



Разработчик Offline Client

ICQ: 204034 

Вопросов: 106
Ответов: 1919
 Профиль | | #21 Добавлено: 05.09.05 19:15
Brusco, пасиба. Как раз пишу такое себе. ;)

Ответить

Номер ответа: 22
Автор ответа:
 HACKER


 

Разработчик Offline Client

Вопросов: 236
Ответов: 8362
 Профиль | | #22 Добавлено: 05.09.05 23:29
2 Александр

может как напишешь поделшися? А то у меня щас времени нет всё собрать в кучу и отладить

Ответить

Номер ответа: 23
Автор ответа:
 Александр



Разработчик Offline Client

ICQ: 204034 

Вопросов: 106
Ответов: 1919
 Профиль | | #23 Добавлено: 06.09.05 12:38
Да легко :) Я уже pinger, whois, tcp table написал.
Осталось анонимный net send и сканнер портов присобачить.

Ответить

Номер ответа: 24
Автор ответа:
 HACKER


 

Разработчик Offline Client

Вопросов: 236
Ответов: 8362
 Профиль | | #24 Добавлено: 06.09.05 22:05
ну pinger и whois ничего особеного, анонимный net send чуть круче, но всёравно таких прог много и кажись где-то статью видел где расжёвывали как такую прогу написать. А вот tcp table с именами процессов было бы кстати!

Ответить

Страница: 1 | 2 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам