LINUX.ORG.RU

Сообщения nitroxolyne

 

Подбор ключа AES-256

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

Вопрос чисто теоретический.

Есть 2 файла (или блока данных): исходный и зашифрованных с пом AES-256.
Дает ли примущество при подборе ключа обладание исходными данными?
И если да, то возможно ли за «приемлимое время» подобрать ключ имея шифрованные и исходные данные?

Спасибо

ЗЫ Немного конкретизирую:
можно ли теоретически уменьшить сложность задачи поиска ключа, имея и шифрованный и оригинальный блок данных?

 aes-256, , , ,

nitroxolyne
()

Получить класс устройства по его vendor_id и device_id

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

Есть список устройств с названиями устройств, кодом, производителя, кодом устройства. По этим данным нужно получить класс устройства. Т.е.,например:
vendor_id:10de
device_id:124b
device_name: GF116 [GeForce GT 640]
Нужно определить что это графический ускоритель(видеокарта).

Попробовал
#lspci -vvm
можно просмотреть данные об устройствах, включая их класс, но списков классов с привязкой к кодам устройств не нашел, насколько знаю, они прошиты в устройствах и сообщаются системе при инициализации.
В общем, нужны классы устройств по кодам устройств
Спасибо

nitroxolyne
()

Web-сервер и поведение браузера при обрыве соединения

Добрый день

Написал небольшой вэбсервер, нужно было выполнить ряд специфич задач. Т.к. запросов иногда бывает много, для экономии процессорного времени, если нет контента, который следует отдавать, вэбсервер обрывает соединение. Интересует вот что: как вообще должен реагировать браузер на обрыв соединения? Не будут ли выполняться последующие попытки соединения? И все ли браузеры одинаково реагируют на обрывы соединения со стороны сервера? Спасибо

nitroxolyne
()

Фильтры ettercap

Доброй ночи)

Тема давным-давно поднималась на форуме ( Ettercap. Не работают фильтры или ЧЯДНТ? ), но никто решения так и не подсказал.
Запускаю на машине ettercap:
#ettercap -Tzq -i ppp0 -L ./log
и все снифается и симпотично логируется. Если подключаем какой-нибудь фильтр, в котором анализируется траф и выводятся соответствующие сообщения:
#ettercap -Tzq -i ppp0 -L ./log -F /path_to_filter
то все так же работает.
А вот, если я пытаюсь модифицировать траф при перехвате + дальше отправить, то перехватывает, но пакет не модифицирует. Простецкий фильтр:

if (ip.proto == TCP && tcp.dst == 80){

if (search(DATA.data, «any_string»)) {
replace(«any_string», «new_string»);
msg(«String replaced\n»);
}

Функция msg() отрабатывает, а replace() не производит никакого эффекта.
Почему?
Спасибо

nitroxolyne
()

iptables для редиректа трафа на прокси

Добрый вечер)

Есть локалка, в которой одна из машин - шлюз в инет. На этой машине (шлюзе) запущен прокси-сервер. При обращении из локалки на 80 порт внешнего IP, траф идет через шлюз, на котором поворачивается на прокси, который слушает порт 8080.

Правила оч простые:

echo «1» > /proc/sys/net/ipv4/ip_forward

iptables -t nat -A PREROUTING -p tcp --destination-port 80 -j REDIRECT --to-port 8080

Подскажите пожалста, как сделать так, чтобы траф редиректился на прокси, если обращение на 80-й порт внешнего IP идет с самого шлюза, на котором запущен прокси?

Спасибо

nitroxolyne
()

Ассоциативный массив на С, где ключ-строка

Доброго всем дня!

Есть рабочая програмка, написанная на С. Со временем понадобилось добавление функции, которая требует построения массива с ключем-строкой. Очень уж не хочется перекладывать на С++ и использовать STL. Запросто можно накидать функцию сравнения строк, но массив очень большой-десятки тысяч элементов, и линейный поиск будет тормозным, похоже, нужно использовать деревья.
Есть ли какие-нибудь Сишные библиотеки алгоритмов?

Спасибо!

nitroxolyne
()

Свободное место буфера отправки сокета

Добрый день.

Есть 2 сокета (А) и (В). Данные, котор приходят в один сокет(А), записываю в другой(В). Типа прокси.
Если бы знал размер буфера отправки (В), было бы понятно сколько данных извлекать (ресивить) из (А). Иначе приходится городить буфера и т.д

Можно ли узнать размер свободного места буфера отправки сокета?

Спасибо.

nitroxolyne
()

События Epoll

Привет всем.

Вопрос такой:
Например, отслеживаем состояние дискриптора сокета на возникновение событий EPOLLIN. Выключаем EPOLLIN, тем временем на сокет приходят данные. Включаем EPOLLIN. Возникнет ли событие EPOLLIN на пришедшие данные? Использую EdgeTriggered.

Спасибо!

nitroxolyne
()

События Epoll

Доброго всем здоровья)

Столкнулся с такой задачей: в наборе дискрипторов, события на котором отслеживает EPOLL, в произвольном дискрипторе нужно получить и изменить маску событий. Изменить-то маску я могу с помощью epoll_ctl(EPOLL_CTL_MOD,...), но как ее получить (для того, чтобы проанализировать)?

Спасибо!

nitroxolyne
()

Неблокируемые сокеты. epoll

Ддобрый день.

Есть фундаментальный вопрос:
Испорльзую epoll. Делаю send в неблокируемый сокет.
Нужно ли отслеживать состояние входного буфера сокета на предмет прихода данных во время отправки данных?
Т.е. могут ли прийти(хотя бы теоретически) данные на сокет с которого в данный момент ведется отправка данных?
Спасибо.

nitroxolyne
()

TCP-прокси на epoll

Нужен простой tcp-прокси. Набросал примерную схему. Оцените пожалста, мож есть какие-нибудь подводные камни в работе с сетью или epoll в частности.

Схема работы прокси
-------------------
Для нотификации событий на дискрипторах сокетов используем API epoll в режииме Edge Triggered
Рассматриваем пары сокетов:

[C]lient-клиентский сокет, [S]erver-серверный сокет

В первоначальном состоянии для обоих дискрипторов устанавливаем нотификацию только EPOLLIN;
INIT_STATE: [S]-->|proxy|<--[C]

Как только на одном из сокетов возникает событие EPOLLIN, для наглядности на [C]:
...а) Вычитываем данные из сокета [C]
...б) Выключаем нотификацию [С] на событие EPOLLIN
...в) Включаем нотификацию [S] на событие EPOLLOUT
...г) Пишем в сокет [S] данные, полученные из [С]
...д) Как только на сокете [S] возникает событие EPOLLOUT (значит,
данные серверу отправлены и можно слать еще), выключаем нотификацию EPOLLOUT на [S] и включаем нотификацию события EPOLLIN на сокете [С].

Тиким образом при завершении пункта д), мы переводим прокси в начальное состояние INIT_STATE.

Пункты а)-д) описывают рабочий цикл прокси в «одну сторону», но ничего нам не мешает проходить этот цикл в обе стороны «одновременно».

Принцип того, что из приемного сокета не читаем до тех пор, пока не переслали ранее из него же полученное, объясняется тем, что поступая иначе мы будем буферизировать данные.

nitroxolyne
()

Многопоточность Linux. Mutex'ы

Доброго всем здоровья!)

Для предметности: есть 101 работающий поток. Из них 100 потоков «что-то» делают, а результат деятельности пишут в одну и ту же переменную. Оставшийся 1 поток («главный поток») следит за тем, чтобы после завершения любого из потоков создавался новый и сам тоже пишет данные в общую переменную. Для правильной борьбы за право писать в переменную установим мьютекс для общей переменной.
Если «главный поток» запросит блокировку(мьютекс) общей переменной (и будет блокирован до освобождения переменной), то совсем неизвестно, сколько он прождет своей очереди, а тем временем количество потоков будет падать.
Подскажите пожалуйста как или чем организовать «очередь на использование переменной» для 100 потоков и как дать право «главному потоку» получать доступ без ожидания своей очереди? Ведь мьютексы никак не определяют очередность(
Спасибо!

nitroxolyne
()

Curl API. Соединение через SOCKS-прокси

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

Пишу сетевое приложение на С, используя CURL. Через прокси-сервер соединяюсь с целевым хостом(сайтом). Если сайт недоступен, начинаем конектиться на его зеркало.
Опции соединения стандартные:

curl_easy_setopt(http_handle, CURLOPT_URL, «example.com»);
curl_easy_setopt(http_handle,CURLOPT_PROXY,«proxy_ip:proxy_port);
curl_easy_setopt(http_handle ,CURLOPT_PROXYTYPE, CURLPROXY_SOCKS4);
curl_easy_setopt( http_handle , CURLOPT_VERBOSE, 1);
curl_easy_setopt( http_handle , CURLOPT_FOLLOWLOCATION, 1);
curl_easy_setopt( http_handle , CURLOPT_FRESH_CONNECT, 1);
curl_easy_setopt( http_handle, CURLOPT_TIMEOUT, 5);

Проблема в следующем: после неудачной попытки соединения получаю код ошибки 7 (CURLE_COULDNT_CONNECT) в независимости от причины ошибки:
1)Прокси доступен, но не доступен целевой хост
2)Прокси не доступен

Хотелось бы уметь определить кто именно не доступен: прокси или хост?
Спасибо!

nitroxolyne
()

RSS подписка на новые темы