hacktricks/todo/radio-hacking/infrared.md

109 lines
9.5 KiB
Markdown
Raw Normal View History

# Інфрачервоний
2022-12-24 12:04:26 +00:00
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
2022-12-24 12:04:26 +00:00
<details>
2022-12-24 12:04:26 +00:00
<summary>Support HackTricks</summary>
2024-01-01 17:15:42 +00:00
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
2022-12-24 12:04:26 +00:00
</details>
{% endhint %}
2022-12-24 12:04:26 +00:00
## Як працює інфрачервоний <a href="#how-the-infrared-port-works" id="how-the-infrared-port-works"></a>
2022-12-24 12:04:26 +00:00
**Інфрачервоне світло невидиме для людей**. Довжина хвилі ІЧ становить **від 0.7 до 1000 мікрон**. Пульт дистанційного керування використовує ІЧ-сигнал для передачі даних і працює в діапазоні довжин хвиль 0.75..1.4 мікрон. Мікроконтролер у пульті змушує інфрачервоний світлодіод блимати з певною частотою, перетворюючи цифровий сигнал в ІЧ-сигнал.
2022-12-24 12:04:26 +00:00
Для прийому ІЧ-сигналів використовується **фотоприймач**. Він **перетворює ІЧ-світло в імпульси напруги**, які вже є **цифровими сигналами**. Зазвичай у **приймачі є фільтр темного світла**, який пропускає **тільки бажану довжину хвилі** і відсікає шум.
2022-12-24 12:04:26 +00:00
2024-03-29 18:49:46 +00:00
### Різноманітність ІЧ-протоколів <a href="#variety-of-ir-protocols" id="variety-of-ir-protocols"></a>
2022-12-24 19:19:02 +00:00
2024-03-29 18:49:46 +00:00
ІЧ-протоколи відрізняються за 3 факторами:
2022-12-24 19:19:02 +00:00
2024-03-29 18:49:46 +00:00
* кодування бітів
* структура даних
* несуча частота — часто в діапазоні 36..38 кГц
2022-12-24 19:19:02 +00:00
2024-03-29 18:49:46 +00:00
#### Способи кодування бітів <a href="#bit-encoding-ways" id="bit-encoding-ways"></a>
2022-12-24 19:19:02 +00:00
2024-03-29 18:49:46 +00:00
**1. Кодування відстані імпульсів**
2022-12-24 19:19:02 +00:00
Біти кодуються шляхом модуляції тривалості простору між імпульсами. Ширина самого імпульсу є сталою.
2022-12-24 19:19:02 +00:00
<figure><img src="../../.gitbook/assets/image (295).png" alt=""><figcaption></figcaption></figure>
2022-12-24 19:19:02 +00:00
2024-03-29 18:49:46 +00:00
**2. Кодування ширини імпульсів**
2022-12-24 19:19:02 +00:00
Біти кодуються шляхом модуляції ширини імпульсу. Ширина простору після сплеску імпульсу є сталою.
2022-12-24 19:19:02 +00:00
<figure><img src="../../.gitbook/assets/image (282).png" alt=""><figcaption></figcaption></figure>
2022-12-24 19:19:02 +00:00
2024-03-29 18:49:46 +00:00
**3. Кодування фази**
2022-12-24 19:19:02 +00:00
Це також відомо як кодування Манчестера. Логічне значення визначається полярністю переходу між сплеском імпульсу та простором. "Простір до сплеску імпульсу" позначає логіку "0", "сплеск імпульсу до простору" позначає логіку "1".
2022-12-24 19:19:02 +00:00
<figure><img src="../../.gitbook/assets/image (634).png" alt=""><figcaption></figcaption></figure>
2022-12-24 19:19:02 +00:00
**4. Комбінація попередніх і інших екзотичних**
2022-12-24 19:19:02 +00:00
{% hint style="info" %}
Існують ІЧ-протоколи, які **намагаються стати універсальними** для кількох типів пристроїв. Найвідомішими є RC5 і NEC. На жаль, найвідоміше **не означає найпоширеніше**. У моєму оточенні я зустрів лише два пульти NEC і жодного RC5.
2022-12-24 19:19:02 +00:00
Виробники люблять використовувати свої унікальні ІЧ-протоколи, навіть у межах одного і того ж діапазону пристроїв (наприклад, ТВ-бокси). Тому пульти від різних компаній і іноді від різних моделей однієї компанії не можуть працювати з іншими пристроями того ж типу.
2022-12-24 19:19:02 +00:00
{% endhint %}
2024-03-29 18:49:46 +00:00
### Дослідження ІЧ-сигналу
2022-12-24 19:19:02 +00:00
Найнадійніший спосіб побачити, як виглядає ІЧ-сигнал пульта, — це використовувати осцилограф. Він не демодулює і не інвертує отриманий сигнал, він просто відображається "як є". Це корисно для тестування та налагодження. Я покажу очікуваний сигнал на прикладі ІЧ-протоколу NEC.
2022-12-24 19:19:02 +00:00
<figure><img src="../../.gitbook/assets/image (235).png" alt=""><figcaption></figcaption></figure>
2022-12-24 19:19:02 +00:00
Зазвичай на початку закодованого пакета є преамбула. Це дозволяє приймачеві визначити рівень підсилення та фону. Існують також протоколи без преамбули, наприклад, Sharp.
2022-12-24 19:19:02 +00:00
Потім передаються дані. Структура, преамбула та метод кодування бітів визначаються конкретним протоколом.
2022-12-24 19:19:02 +00:00
**ІЧ-протокол NEC** містить коротку команду та код повторення, який надсилається під час натискання кнопки. Як команда, так і код повторення мають однакову преамбулу на початку.
2022-12-24 19:19:02 +00:00
Команда NEC, крім преамбули, складається з байта адреси та байта номера команди, за якими пристрій розуміє, що потрібно виконати. Байти адреси та номера команди дублюються з інверсними значеннями, щоб перевірити цілісність передачі. В кінці команди є додатковий стоп-біт.
2022-12-24 19:19:02 +00:00
Код повторення має "1" після преамбули, що є стоп-бітом.
2022-12-24 19:19:02 +00:00
Для **логіки "0" і "1"** NEC використовує кодування відстані імпульсів: спочатку передається сплеск імпульсу, після якого йде пауза, довжина якої задає значення біта.
2022-12-24 19:19:02 +00:00
### Кондиціонери
2022-12-24 19:19:02 +00:00
На відміну від інших пультів, **кондиціонери не передають лише код натиснутої кнопки**. Вони також **передають всю інформацію** під час натискання кнопки, щоб забезпечити, що **кондиціонер і пульт синхронізовані**.\
Це дозволить уникнути ситуації, коли машина, налаштована на 20ºC, підвищується до 21ºC з одного пульта, а потім, коли використовується інший пульт, який все ще має температуру 20ºC, температура підвищується до 21ºC (а не до 22ºC, вважаючи, що вона на 21ºC).
2022-12-24 19:19:02 +00:00
2024-03-29 18:49:46 +00:00
### Атаки
2022-12-24 12:04:26 +00:00
Ви можете атакувати інфрачервоний з Flipper Zero:
2022-12-24 12:04:26 +00:00
{% content-ref url="flipper-zero/fz-infrared.md" %}
[fz-infrared.md](flipper-zero/fz-infrared.md)
{% endcontent-ref %}
2024-03-29 18:49:46 +00:00
## Посилання
2022-12-24 12:04:26 +00:00
* [https://blog.flipperzero.one/infrared/](https://blog.flipperzero.one/infrared/)
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
2022-12-24 12:04:26 +00:00
<details>
2022-12-24 12:04:26 +00:00
<summary>Support HackTricks</summary>
2024-01-01 17:15:42 +00:00
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
2022-12-24 12:04:26 +00:00
</details>
{% endhint %}