List of Infrared Radiations Modules

ir_info

Presentation

ir_info displays some informations about a specific interface. The supported devices and their corresponding interfaces are listed here. The displayed informations and the output parameters changes according to the provided interface.

Compatible devices

Input parameters

Name

Default value

Possible values

Description

INTERFACE

irma0

irmaX

Interface to display

SHOW_CAPABILITIES

yes

yes|no

Indicates if the capabilities of the interface should be displayed

Output parameters

Name

Possible values

Description

INTERFACE

irmaX

Selected interface

DEVICE_INDEX

#X

Device index

SERIAL_PORT

<string>

Serial port used by the interface

FREQUENCY

<integer>

Frequency used by the interface

Usage

If you want to display the informations related to an IRMA interface :

$ mirage ir_info INTERFACE=irma0
[INFO] Module ir_info loaded !
┌───────────┬──────────────┬──────────────┬───────────┐
│ Interface │ Device Index │ Serial Port  │ Frequency │
├───────────┼──────────────┼──────────────┼───────────┤
│ irma0     │ #0           │ /dev/ttyUSB0 │ 38 kHz    │
└───────────┴──────────────┴──────────────┴───────────┘
[INFO] Mirage process terminated !

ir_sniff

Presentation

ir_sniff allows to sniff and decode the IR signals captured by an IRMA device. It allows to choose the frequency of the receiver (FREQUENCY parameter, set to 38 kHz by default) and to indicates how many signals have to be captured (NUMBER parameter).

Compatible devices

Input parameters

Name

Default value

Possible values

Description

INTERFACE

irma0

irmaX

Interface to display

FREQUENCY

38

<integer>

Frequency to use

NUMBER

1

<integer>

Number of captured signals

Output parameters

If only one signal has been captured, the following output parameters are generated (CODE and CODE_SIZE are only generated if a known protocol is identified):

Name

Possible values

Description

INTERFACE

irmaX

Selected interface

DATA

<integers list>

Raw data describing the signal

PROTOCOL

<string>

Identified protocol of the signal

CODE (optional)

<hexadecimal>

IR Code included in the signal

CODE_SIZE (optional)

<integer>

Size of the IR Code included in the signal

If multiple signals have been captured, the same output parameters are generated, but are suffixed by the number of the signals :

Name

Possible values

Description

INTERFACE

irmaX

Selected interface

DATA1

<integers list>

Raw data describing the 1st signal

PROTOCOL1

<string>

Identified protocol of the 1st signal

CODE1 (optional)

<hexadecimal>

IR Code included in the 1st signal

CODE_SIZE1 (optional)

<integer>

Size of the IR Code included in the 1st signal

DATA2

<integers list>

Raw data describing the 2nd signal

PROTOCOL2

<string>

Identified protocol of the 2nd signal

CODE2 (optional)

<hexadecimal>

IR Code included in the 2nd signal

CODE_SIZE2 (optional)

<integer>

Size of the IR Code included in the 2nd signal

...

...

...

Usage

Basic Usage

If you want to capture one signal, use the following command :

$ mirage ir_sniff
[INFO] Module ir_sniff loaded !
[PACKET] << IR - NEC Packet | code (32 bits) =76044fc0 >>
[INFO] Mirage process terminated !

If you want to capture multiple signals, you can use the NUMBER parameter in order to provide the number of signal to capture:

$ mirage ir_sniff NUMBER=3
[INFO] Module ir_sniff loaded !
[PACKET] << IR - NEC Packet | code (32 bits) =76044ff0 >>
[PACKET] << IR - NEC Packet | code (32 bits) =76044fd0 >>
[PACKET] << IR - NEC Packet | code (32 bits) =76044fc0 >>
[INFO] Mirage process terminated !

Performing a replay attack

This module can be combined with ir_inject in order to perform replay attacks. You can launch this kind of attack by using the following command:

$ mirage "ir_sniff|ir_inject"
[INFO] Module ir_sniff loaded !
[INFO] Module ir_inject loaded !
[PACKET] << IR - NEC Packet | code (32 bits) =76044fc0 >>
[INFO] Injecting ...
[SUCCESS] Injection done !
[INFO] Mirage process terminated !

ir_inject

Presentation

ir_inject allows to inject IR signals using an IRMA device. It allows to choose the frequency of the transmitter (FREQUENCY parameter, set to 38 kHz by default). You can inject a signal as raw data using the DATA parameter (you have to provide a list of integers), or you can select a specific protocol using the PROTOCOL parameter and provide the CODE and CODE_SIZE parameter, describing the IR code to transmit.

Compatible devices

Input parameters

Name

Default value

Possible values

Description

INTERFACE

irma0

irmaX

Interface to display

FREQUENCY

38

<integer>

Frequency to use

DATA

<integers list>

Raw data to inject

PROTOCOL

NEC|Sony|RC5|RC6|Dish|Sharp|JVC|Sanyo|Mitsubishi|Samsung...

Protocol to use

CODE

<hexadecimal>

Code to inject

CODE_SIZE

<integer>

Size of the code to inject (bits)

Output parameters

Output parameters

This module doesn’t provide any output parameters.

Usage

Basic Usage

If you want to transmit a raw signal, use the following command :

$ mirage ir_inject DATA=1200,500,5800,1000,500
[INFO] Module ir_inject loaded !
[INFO] Injecting ...
[SUCCESS] Injection done !
[INFO] Mirage process terminated !

If you want to inject a specific code, you have to provide the parameters PROTOCOL, CODE and CODE_SIZE:

$ mirage ir_inject PROTOCOL=NEC CODE=76044FF0 CODE_SIZE=32
[INFO] Module ir_inject loaded !
[INFO] Injecting ...
[SUCCESS] Injection done !
[INFO] Mirage process terminated !

Performing a replay attack

This module can be combined with ir_sniff in order to perform replay attacks. You can launch this kind of attack by using the following command:

$ mirage "ir_sniff|ir_inject"
[INFO] Module ir_sniff loaded !
[INFO] Module ir_inject loaded !
[PACKET] << IR - NEC Packet | code (32 bits) =76044fc0 >>
[INFO] Injecting ...
[SUCCESS] Injection done !
[INFO] Mirage process terminated !