Bitcoin in a nutshell — Protocol

Транзакції — це чи не самий "головний" об'єкт в мережі Bitcoin, так і в інших блокчейнах теж. Тому я вирішив, що якщо і писати про них цілу главу, то тоді потрібно розповісти і показати взагалі все, що можна. Зокрема те, як вони будуються і працюють на рівні протоколу.
Нижче я поясню, яким чином формується транзакція, покажу як вона підписується і продемонструю механізм спілкування між нодами.
мем
Читати далі →

Програємо звук на DualShock4 з комп'ютера


Вибираючи геймпад для свого комп'ютера, я зупинився на DualShock4, так як мені сподобалася ідея, що можна буде слухати аудіо через підключаються до нього навушники. Але після покупки я дізнався, що, виявляється, ніхто не знає, як передати звук на геймпад через Bluetooth. Тому я вирішив розібратися з цим питанням. Якщо вам цікаво дізнатися, як DualShock4 спілкується з ігровою консоллю, чекаю під катом.

Читати далі →

Аналіз дзвінків VoIP в Wireshark

напередодні подкасту про VoIP раптово народилася невелика замітка.

Іноді доводиться стикатися з проблемою встановлення голосового дзвінка. З невідомих спочатку причини, дзвінок просто рветься.

Що робити, якщо методи в лоб вже використані?

Дамп.
А що зараз нерозривно пов'язане з дампами? Wireshark.

Пару років тому у нас вже була статейка про роботу в цьому воістину магічний інструмент мережевика.
Не гріх же і повторити?


Читати далі →

Аналіз SSL/TLS трафіку в Wireshark



Як приховати від сторонніх конфіденційну інформацію?
Найпростіше – зашифрувати.
В Інтернет та Інтранет-мережах шифрацією даних управляє протокол SSL/TLS.
Солдат спить, служба йде.
Однак іноді виникає необхідність виконати зворотне – розшифрувати перехоплена трафік.
Це може знадобитися як для налагодження роботи додатків, так і для перевірки підозрілої активності.
Або в цілях вивчення роботи SSL/TLS (очевидні, шкідливі мети не обговорюються).

Як і при яких умовах можна розшифрувати дамп SSL/TLS трафіку в Wireshark?
Спробуємо розібратися.


Читати далі →

Статичний аналіз Wireshark засобами PVS-Studio



У цій статті я розповім, як використовувати PVS-Studio для статичного аналізу програмного коду на мові С/C++ на прикладі open-source проекту Wireshark. Почну я з короткого опису аналізатора мережевого трафіку Wireshark і продукту PVS-Studio. Опишу підводні камені процесу складання і підготовки проекту до статичного аналізу. Спробую сформувати загальну картину про продукт PVS-Studio, його переваги і зручності використання, приводячи попередження аналізатора, приклади коду і власні коментарі.

Читати далі →

Реверс-інженіринг драйверів USB-пристроїв на прикладі машинки на радіоуправлінні

image

Один з аргументів любителів Windows перед любителями Linux — недолік драйверів для обладнання під цю ОС. З плином часу ситуація виправляється. Зараз вона вже набагато краще, ніж 10 років тому. Але іноді можна зустріти якийсь пристрій, яке не розпізнається вашим улюбленим дистрибутивом. Зазвичай це буде якась USB-периферія.

Краса вільного софта в тому, що цю проблему можна вирішити самостійно (якщо ви програміст). Звичайно, все залежить від складності устаткування. З тривимірною веб-камерою у вас може і не вийде, зате багато USB-пристрою досить прості, і вам не доведеться пірнати в глибини ядра або закопуватися в С. У цьому уроці ми з вами за допомогою Python по кроках виготовимо драйвер іграшкової радіокерованого машинці.

Процес по суті буде реверс-инженирингом. Спочатку ми докладно вивчимо пристрій, потім збережемо дані, якими він обмінюється з драйвером в Windows, і спробуємо зрозуміти, що вони означають. Для нетривіальних протоколів вам може знадобитися як досвід, так і удача.

Читати далі →

Дешифрация TLS трафіку Java додатків з допомогою логів



Налагодження по захищених SSL/TLS інтеграцій у Java додатків часом стає вельми нетривіальним завданням: з'єднання не ставиться/рветься, а прикладні логи можуть виявитися марними, доступу до правки вихідних кодів може не бути, перехоплення трафіку Wireshark'ом і спроба дешифрування приватним ключем сервера (навіть якщо він є) може провалитися, якщо в каналі застосовувався шифр PFS; проксі-сервер начебто Fiddler або Burp може не підійти, так як програма не вміє ходити через проксі або на відріз відмовляється вірити подсунутому йому сертифікату…

Нещодавно на Хабре з'явилася публікація ValdikSS про те, як можна з допомогою Wireshark розшифрувати будь-який трафік від браузерів Firefox і Chrome без володіння приватним ключем сервера, без підміни сертифікатів і без проксі. Вона наштовхнула автора нинішньої статті на думку — чи можна застосувати такий підхід до Java додатків, використавши замість файлу сесійних ключів налагоджувальні запису JVM? Виявилося — можна, і сьогодні, шановні однохабряне, я розповім, як це зробити.

Читати далі →

Як легко розшифрувати TLS-трафік браузера Wireshark

Багатьом з вас знайомий Wireshark — аналізатор трафіку, який допомагає зрозуміти роботу мережі, діагностувати проблеми, і взагалі вміє купу речей.
image

Одна з проблем з тим, як працює Wireshark, полягає у неможливості легко проаналізувати зашифрований трафік, начебто TLS. Раніше ви могли вказати Wireshark приватні ключі, якщо вони у вас були, і розшифровувати трафік на льоту, але це працювало тільки в тому випадку, якщо використовувався виключно RSA. Ця функціональність зламалася з-за того, що люди почали просувати досконалу пряму секретність (Perfect Forward Secrecy), і приватного ключа стало недостатньо, щоб отримати сесійний ключ, який використовується для розшифровки даних. Друга проблема полягає в тому, що приватний ключ не повинен або не може бути вивантажений з клієнта, сервера або HSM (Hardware Security Module), в якому знаходиться. З-за цього, мені доводилося вдаватися до сумнівних хитрощів з розшифровкою трафіку через man-in-the-middle (наприклад, через sslstrip).

Логгирование сесійної ключів поспішає на допомогу!

Що ж, друзі, сьогодні я вам розповім про спосіб простіше! Виявилося, що Firefox і Development-версія Chrome підтримують логгирование симетричних сесійних ключів, які використовуються для зашифровування трафіку, у файл. Ви можете вказати цей файл в Wireshark, і вуаля!) трафік расшифровался. Давайте-ка налаштуємо це справа.
Читати далі →

ReactOS 0.3.17 - «нумерологічний» реліз операційної системи

Добрий день! image

Мене звуть Олексій Брагін, я вітаю всіх гостей на відкритті блогу компанії «Фонд ReactOS», яке стало можливим завдяки програмі підтримки стартапів від «Тематичних Медіа».

Від імені всієї команди розробників проекту ReactOS уявляю вашій увазі новий реліз нашої операційної системи під номером 0.3.17

Читати далі →