Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.10.2016, 12:00   #1
Molas
Новичок
Джуниор
 
Регистрация: 29.07.2014
Сообщений: 2
По умолчанию Узнать Handle Cокета

Вообщем нужно узнать Handle сокета чужой программы,для этого DLL в которой происходит поиск Handle сокета по ip port,инъектирую в чужую программу чтобы сделать проверку на сокеты и выявить handle,но вот в чем дело. Нашел функцию поиска на этом же форуме ,Но он кривоват ,да и хз почему там цикл до 20 000.
Код:
Function FindSoketHost(Host: WideString): integer;
var
addrIP: WideString;
Port: Dword;
HSock, fromLen: integer;
sin : sockaddr_in;
begin
sin:=h_addr_list
result:= 0;
for HSock:= 1 to 20000 do
begin
  FillChar(sin, SizeOf(sin), 0);
  fromLen := SizeOf(sin);
  getpeername(HInstance, sin, fromLen);
  addrIP:= inet_ntoa(sin.sin_addr);
  Port := htons(sin.sin_port);
 Application.ProcessMessages;
 //if Port > 0 then
//TS.Add(Inttostr(HSock) + #13#10 + Format('%s:%d', [addrIP, Port]));

if Host = Format('%s:%d', [addrIP, Port]) then
begin
result:= HSock;
break;
end;
end;
end;
Нужна ваша помощь

Последний раз редактировалось Molas; 16.10.2016 в 12:05.
Molas вне форума Ответить с цитированием
Старый 16.10.2016, 12:31   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

Этот код делает не то, что вам надо. Есть пару традиционных направлений:
1. Игры с NtQuerySystemInformation и NtQueryObject
2. Перехват функции создания сокетов

Может вы озвучите задачу, а то может вы слишком закапываетесь...
p51x вне форума Ответить с цитированием
Старый 16.10.2016, 12:49   #3
Molas
Новичок
Джуниор
 
Регистрация: 29.07.2014
Сообщений: 2
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
Этот код делает не то, что вам надо. Есть пару традиционных направлений:
1. Игры с NtQuerySystemInformation и NtQueryObject
2. Перехват функции создания сокетов

Может вы озвучите задачу, а то может вы слишком закапываетесь...

Вообщем сама суть:
Имеется один чат для общения. Для него создана разработчиками программа для пользования чатом( перелеты на планеты общение и т.п),но дело в том чтобы перелететь нужно открыть несколько меню,а потом уже ввести название планеты. Я и хочу для себя сделать свое окошко для того чтобы не заморачиваться и просто ввести название планеты и отправить команду перелета с их сокетов на сервер. Ничего читерского в этом нет,просто перелет на другую планету для общения. Поэтому я ищу Handle сокета чтобы отправить с него команду на сервер через WinSock

насчет NtQuerySystemInformation и NtQueryObjet. Если я правильно понял я с помощью их узнаю все хендлы процесса,потом подставить типы и по их имени отсечь файлы и потом для каждого имени файла получить его путь , но есть ли путь короче??

Последний раз редактировалось Molas; 16.10.2016 в 12:54.
Molas вне форума Ответить с цитированием
Старый 16.10.2016, 14:06   #4
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

см. п. 2
p51x вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как узнать handle родительского окна Zadovatel Общие вопросы Delphi 5 29.08.2013 02:20
Как узнать путь к приложению, зная его Handle? Night_Devil Общие вопросы Delphi 4 17.03.2012 01:26
Как узнать Handle выделенного поля для ввода? niki2012 Общие вопросы Delphi 8 13.04.2011 14:14
Как узнать handle окна имея handle обного из его компонентов SeRhy Win Api 2 18.10.2009 19:31
Как имея handle окна узнать handle edit-a который находится в етом окне SeRhy Общие вопросы Delphi 1 20.07.2008 13:48