Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.84/25: Рейтинг темы: голосов - 25, средняя оценка - 4.84
 Аватар для Сарсен
1 / 1 / 3
Регистрация: 20.01.2014
Сообщений: 91

Отправка пакета по ethernet

27.01.2017, 04:54. Показов 5346. Ответов 13
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток уважаемые форумчане. Захватил логин пароль через wireshark. Вход происходит на специализированное устройство - рекордер ip видеокамер, NVR. При помощи каких библиотек на с++ можно отправить перехваченный пакет по ethernet? Пакет нужно отправлять целиком или какую то часть для того чтобы произошел вход в устройство?
Миниатюры
Отправка пакета по ethernet  
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
27.01.2017, 04:54
Ответы с готовыми решениями:

Отправка пакета
В общем столкнулся с проблемой, имею вот такой код на C#: private void button1_Click(object sender, RoutedEventArgs e) { ...

отправка пакета
Всем привет! Как отправить пакет и дождаться его получения? При этом ip берётся любой. Делаю вот так: QTcpSocket x; ...

Отправка пакета!
POST /esrv/26f5734fc5b7ed06dfb5db8d0246c868 HTTP/1.1..Accept: */*..Accept-Language: ru-RU..Referer:...

13
Ушел с форума
Эксперт С++
 Аватар для Убежденный
16481 / 7444 / 1187
Регистрация: 02.05.2013
Сообщений: 11,616
Записей в блоге: 1
27.01.2017, 08:51
Судя по скрину, там самый обычный нешифрованный HTTP и опускаться на
уровень IP или Ethernet не нужно. Ищи библиотеки для работы с HTTP
под твою платформу и ОС.
1
901 / 478 / 93
Регистрация: 10.06.2014
Сообщений: 2,700
27.01.2017, 09:43
libcurl для работы с http, как вариант...
1
 Аватар для Сарсен
1 / 1 / 3
Регистрация: 20.01.2014
Сообщений: 91
27.01.2017, 15:45  [ТС]
Весь день уже вожусь с curl. Не получается пройти логин. Возвращается код главной страницы. Возможно это из-за отсутствия параметра name у поля логина и у поля для пароля. К примеру в cyberforum есть name у обоих полей. В инструментах разработчика браузера, такая вот строка для логина:
JavaScript
1
<input type="text" maxlength="20" id="loginname" onkeydown="if (event.keyCode==13) event.keyCode=9;">
и для пароля
JavaScript
1
<input type="password" maxlength="20" id="password" onkeydown="if (event.keyCode==13) mykeydown();">
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <stdio.h>
#include <curl/curl.h>
#include <curl/easy.h>
 
int main(void)
{
    curl_global_init( CURL_GLOBAL_ALL );
    CURL *curl = curl_easy_init();
    CURLcode res;
 
    curl_easy_setopt(curl, CURLOPT_URL, "http://172.16.64.100/new/index.jsp");
    /* Now specify the POST data */
    char *data="username=admin&password=TalobM";
 
    curl_easy_setopt(curl, CURLOPT_POSTFIELDS, data);
 
    /* Perform the request, res will get the return code */
    res = curl_easy_perform(curl);
 
    curl_easy_cleanup(curl);
 
    return 0;
}
0
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21281 / 8305 / 637
Регистрация: 30.03.2009
Сообщений: 22,660
Записей в блоге: 30
27.01.2017, 16:11
Вдруг пригодится
https://www.cyberforum.ru/blog... g1151.html
0
901 / 478 / 93
Регистрация: 10.06.2014
Сообщений: 2,700
27.01.2017, 16:42
Цитата Сообщение от Сарсен Посмотреть сообщение
Возвращается код главной страницы.
а через страницу получается зайти?
если да, то скорее всего вы не сохраняете сессионные куки которые вам отправляет сервер для дальнейшей идентификации вас как пользователя
если нет, то возможно есть какие то ограничения на логин, например по айпи
либо перехваченные данные были кем то изменены

Добавлено через 4 минуты
Цитата Сообщение от Сарсен Посмотреть сообщение
char *data="username=admin&password=TalobM";
У вас пароль слитно написан
А на скрине с перехваченными данными между Talo и bM есть пробел
0
 Аватар для mat_for_c
223 / 213 / 80
Регистрация: 26.04.2013
Сообщений: 972
27.01.2017, 21:23
Цитата Сообщение от sys_beginner Посмотреть сообщение
А на скрине с перехваченными данными между Talo и bM есть пробел
нет, это Wireshark так данные представляет.
0
 Аватар для Сарсен
1 / 1 / 3
Регистрация: 20.01.2014
Сообщений: 91
27.01.2017, 22:02  [ТС]
Времени не было так долго отписаться. Через страницу кстати получается заходить. Все таки хочу ешо раз обратить внимание на параметр name у полей. В этой строке "char *data="username=admin&password=TalobM";" как я понимаю username соответствует названию параметра name. А параметр password соответственно параметру name у поля где вводится пароль. В странице где я захожу, у этих полей отсутствует параметр name, есть только параметр id. А вот эта функция
C++
1
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "username=admin&password=TalobM");
, кажись ищет совпадения параметров name. По сути я не до конца понял что подставлять, толи username, userName, user или login. А на угад не получается.
0
901 / 478 / 93
Регистрация: 10.06.2014
Сообщений: 2,700
27.01.2017, 23:26
Цитата Сообщение от Сарсен Посмотреть сообщение
В странице где я захожу, у этих полей отсутствует параметр name
Они не обязательно могут быть. Вполне возможно что запрос формируется javascript-ом и в нем используются эти самые значения полей.
Тело запроса вообще похоже на JSON. в Но Content-Type почему то urlencoded. Видимо сервер обрабатывает данные в сыром виде. Попробуйте в POSTFIELDS просто скопировать строку тела вместе с фигурными скобками которые на скрине.

Цитата Сообщение от Сарсен Посмотреть сообщение
По сути я не до конца понял что подставлять, толи username, userName, user или login.
Просто откройте отладчик в браузере и после отправки запроса скопируйте все отправленные заголовки и тело запроса.
Если корректно повторите все тоже самое через curl все будет работать
0
 Аватар для Сарсен
1 / 1 / 3
Регистрация: 20.01.2014
Сообщений: 91
27.01.2017, 23:43  [ТС]
Сейчас попробую. Допустим если логин пройду. Дальше в каком виде мне отправлять вот этот запрос на первом скрине? Мне нужно в конеченом счете получить данные на втором скрине. Меня все не дает покоя идея эмуляции каким то образом просто отправки пакета на который устройство будет реагировать и высылать данные. Былбы какойто универсальный способ отправки пакетов. т.е. собрать много кастылей, автоматизировать и получить нормально работающую систему.
Миниатюры
Отправка пакета по ethernet   Отправка пакета по ethernet  
0
 Аватар для Сарсен
1 / 1 / 3
Регистрация: 20.01.2014
Сообщений: 91
28.01.2017, 19:56  [ТС]
Вообщем понял как сделать надо. Использовать программу которая создает пакеты и отправляет их. Например программа Scapy. Отправляю пакеты на устройство и анализирую как реагирует устройство. В дальнейшем можно автоматизировать, на определенный ответ - определенный запрос. Надеюсь неприятных последствий с устройством не произойдет.
0
901 / 478 / 93
Регистрация: 10.06.2014
Сообщений: 2,700
28.01.2017, 21:08
Лучший ответ Сообщение было отмечено Сарсен как решение

Решение

Цитата Сообщение от Сарсен Посмотреть сообщение
Допустим если логин пройду. Дальше в каком виде мне отправлять вот этот запрос на первом скрине?
Это зависит от требований сервера и самих данных.
Цитата Сообщение от Сарсен Посмотреть сообщение
Меня все не дает покоя идея эмуляции каким то образом просто отправки пакета на который устройство будет реагировать и высылать данные.
Можете использовать сокеты. Просто отправляете свои данные на IP:PORT сервера и читаете ответ.
Все остальное - прикладной уровень, и работа с данными уже зависит от логики реализации сервера. Вы в данном случае - клиент по отношению к серверу.
1
 Аватар для Сарсен
1 / 1 / 3
Регистрация: 20.01.2014
Сообщений: 91
28.01.2017, 23:54  [ТС]
Блин наверно да, сокеты, просто так не хватает знаний в этой области.
0
 Аватар для Сарсен
1 / 1 / 3
Регистрация: 20.01.2014
Сообщений: 91
30.01.2017, 22:39  [ТС]
Цитата Сообщение от sys_beginner Посмотреть сообщение
Можете использовать сокеты. Просто отправляете свои данные на IP:PORT сервера и читаете ответ.
Да кстати большое спасиба, что направил меня в сторону сокетов. Наконец то вышло. Через питон реализовал небольшую программку. Просто отправляю код шестнадцатеричный считанный через wireshark. И получаю ответ от устройства.
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
import socket # for socket
import sys 
 
try:
    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    print "Socket successfully created"
except socket.error as err:
    print "socket creation failed with error %s" %(err)
 
server_address = ('172.16.64.100', 8000)
s.connect(server_address)
 
try:
    
    # Send data
    message = '\xf5\x00\x00\x00\x44\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7b\x22\x52\x65\x71\x75\x65\x73\x74\x22\x3a\x7b\x22\x4e\x61\x6d\x65\x22\x3a\x22\x4e\x56\x52\x5f\x43\x48\x41\x4e\x4e\x45\x4c\x5f\x53\x54\x41\x54\x45\x22\x2c\x22\x4f\x70\x65\x72\x61\x74\x65\x54\x79\x70\x65\x22\x3a\x22\x47\x65\x74\x43\x6f\x6e\x66\x69\x67\x22\x7d\x7d\x0a\x00'
    print >>sys.stderr, 'sending "%s"' % message
    s.sendall(message)
 
    #
 
finally:
    print >>sys.stderr, 'closing socket'
    s.close()
Миниатюры
Отправка пакета по ethernet  
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
30.01.2017, 22:39
Помогаю со студенческими работами здесь

отправка пакета
люди подскажите как сформировать пакет и отправить его на ip а то уже надоело теорию читать. Какие процедуры или системные сервисы

Отправка TCP пакета
Всем привет! Появился ЕЩЁ один вопрос. Пишу программу без использования VCL, мне требуется отправить TCP пакет средствами (по...

Отправка udp пакета
Есть проект, во вложениях. Передача и прием udp пакета. Помогите сделать так, чтобы сообщение склеивалось из введенных данных из трех и...

Отправка пакета (UDP)
День добрый Как организовать передачу пакета (UDP) из любого участка кода? Имеется в виду отправка пакета из любой Активити. ...

Отправка Wake-on-LAN пакета
Хай всем! А кто задавался с подобным? В принципе думаю там не чего сложного. Просьба не флудить.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Новые блоги и статьи
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru