Найдите исполнителя для вашего проекта прямо сейчас!
Разместите заказ на фриланс-бирже и предложения поступят уже через несколько минут.

Имеется HTTP сниффер на C# под .NET4. Вкратце его особенности:

1. В Program.cs встроен код, который проверяет запущен ли сниф от имени администратора, в случае если в винде установлен высокий уровень контроля учетных записей. Если нет, то перед запуском выдается окно с просьбой запустить от админа

2. Привязка к сетевому интерфейсу

///

/// Привязка к сетевому интерфейсу

///

///

public void Bind(out string lastError)

{

lastError = "";

try

{

IPHostEntry HosyEntry = Dns.GetHostEntry((Dns.GetHostName()));

if (HosyEntry.AddressList.Length > 0)

{

foreach (IPAddress ip in HosyEntry.AddressList)

{

string S = ip.ToString();

if (S.ToString().Length

{

Console.WriteLine(S);

socket = new Socket(AddressFamily.InterNetwork, SocketType.Raw, ProtocolType.IP);

socket.Bind(new IPEndPoint(IPAddress.Parse(S.ToString()), 0));

socket.SetSocketOption(SocketOptionLevel.IP, SocketOptionName.HeaderIncluded, true);

byte[] byInc = new byte[4] { 1, 0, 0, 0 };

byte[] byOut = new byte[4];

buffer = new byte[4096];

socket.IOControl(IOControlCode.ReceiveAll, byInc, byOut);

socket.BeginReceive(buffer, 0, buffer.Length, SocketFlags.None, OnReceive, null);

break;

}

}

}

}

catch (Exception exp)

{

lastError = exp.Message;

logger.saveLog("Bind error "+lastError);

}

}

3. Функция перехвата полученного пакета выглядит следующим образом:

private void OnReceive(IAsyncResult ar)

{

try

{

int nReceived = socket.EndReceive(ar);

if (PacketParser.Check(TargetString, buffer, nReceived, out host))

{

//проверяем является ли пакет http и посылается ли он интересующему нас хосту

}

//заново настраиваем отслеживание пакетов

buffer = new byte[4096];

try

{

//logger.saveLog("socket.BeginReceive");

socket.BeginReceive(buffer, 0, buffer.Length, SocketFlags.None, OnReceive, null);

}

catch

{

logger.saveLog("Next beginreceive error");

}

}

catch { }

}

4. Функция анализа пакета следующая:

public static bool Check(string Filter, byte[] Buffer, int Length,out string host)

{

host = "";

IPHeader ipHeader = new IPHeader(Buffer, Length);

//Вот здесь на одном из компов с windows7 постоянно вместо TCP получаем UDP

if (ipHeader.ProtocolType == Protocol.TCP)

{

TCPHeader tcpHeader = new TCPHeader(ipHeader.Data, ipHeader.MessageLength);

…….

…….

…...

=================

Тестировался на компьютерах с windows7. В основном работает нормально, но на одном из них проблема в данном участке:

public static bool Check(string Filter, byte[] Buffer, int Length,out string host)

{

host = "";

IPHeader ipHeader = new IPHeader(Buffer, Length);

if (ipHeader.ProtocolType == Protocol.TCP)

{

вот здесь всегда Protocol.UDP вместо Protocol.TCP и соответственно ничего не распознается. То есть когда я в браузере перехожу на какую либо страницу (и в том же фидлере идет перехват), у меня сниффер ловит только Protocol. UDP

Можете ли вы предложить решение проблемы? Исходники предоставлю

11 лет назад
lofti
37 летУкраина
15 лет в сервисе
Был
7 лет назад
16 отзывов(-1)
  • Похожие заказы
  • $2500

    Небольшая, но профессиональная IT компания (start up) из Калифорнии ищет Java программиста на долгосрочный проект с последующем переводом на постоянную работу. Являясь экспертами в области разработки сложного программного обеспечения мы строим надежные, гибкие, ...

    Закрыт
    10 лет назад
  • $50

    Нужны онлайн консультации по программе (синхронизация с удаленой БД) C# для человека вообще не владеющего языком С# и средой разработки visual studio, но разбирающимся в Дельфи и PHP. В заявке пишите желаемую цену в час ...

    Закрыт
    11 лет назад
  • Есть плагин для Firefox для сохранения изображений со страниц - Save Images Необходимо сделать, чтобы он сохранял изображения с определенных страниц. Для этого потребуется использовать Regular Expressions (как применяются regular expressions в этом плагине я понятия ...

    Закрыт
    11 лет назад
  • $500

    требуется написание античита к игре warface! Требуется программист, или группа програмистов, которая сможет написать ПО по конкретному ТЗ, тз вышлю на почту

    Закрыт
    11 лет назад
  • Программа для отправки СMС со своих симкаpт через модемы или телефоны. Удобный интерфейс программы, с разбивкой абонентов на группы и многое другое. Подробное ТЗ по запросу. Время исполнения 7 - 10 дней, возможно и продление. Ставьте реальные цены, а ...

    Закрыт
    11 лет назад
  • $35

    Необходимо по ТЗ разработать десктоп приложение, которое позволит переделывать xls файл (всегда одной структуры) в csv с заменой, удалением не нужной информации. ТЗ приложении. Пожелания: c/c++. Точно не Borland Отлично если Qt Можно MFC Данный проект с перспективой, подобных обработчиков необходимо ...

    Прикладное ПО1 исполнитель
    Завершен
    11 лет назад
  • Есть устройство на базе STM32L152, к которому подключены несколько внешних модулей по USART и I2C. Требуется разработать прошивку, обеспечивающую взаимодействие с данными устройствами (отправку команд, получение данных/обработку). Ищется разработчик с опытом работы с данным микроконтроллером ...

    Закрыт
    11 лет назад
  • Требуется отобразить иконки в нужных местах (отмечено в приложении) профиля пользователя фейсбука. Данные из базы пользователей сайта. Несколько категорий пользователей, несколько разных иконок. Возможно ли это в принципе? Нужно ли согласовывать с фейсбуком? И цена соответственно!

    Прикладное ПО1 исполнитель
    Завершен
    11 лет назад