RSSI의 ProximityUUID E2C56DB5-DFFB-48D2-B060-D0F5A71096E0
, major 0
, minor 0
및 보정 된 Tx Power 를 갖춘 iBeacon의 -59
경우 전송 된 BLE 알림 패킷은 다음과 같습니다.
d6 be 89 8e 40 24 05 a2 17 6e 3d 71 02 01 1a 1a ff 4c 00 02 15 e2 c5 6d b5 df fb 48 d2 b0 60 d0 f5 a7 10 96 e0 00 00 00 00 c5 52 ab 8d 38 a5
이 패킷은 다음과 같이 분류 할 수 있습니다.
d6 be 89 8e # Access address for advertising data (this is always the same fixed value)
40 # Advertising Channel PDU Header byte 0. Contains: (type = 0), (tx add = 1), (rx add = 0)
24 # Advertising Channel PDU Header byte 1. Contains: (length = total bytes of the advertising payload + 6 bytes for the BLE mac address.)
05 a2 17 6e 3d 71 # Bluetooth Mac address (note this is a spoofed address)
02 01 1a 1a ff 4c 00 02 15 e2 c5 6d b5 df fb 48 d2 b0 60 d0 f5 a7 10 96 e0 00 00 00 00 c5 # Bluetooth advertisement
52 ab 8d 38 a5 # checksum
이 패킷의 핵심 부분은 다음과 같이 분류 할 수있는 Bluetooth 광고입니다.
02 # Number of bytes that follow in first AD structure
01 # Flags AD type
1A # Flags value 0x1A = 000011010
bit 0 (OFF) LE Limited Discoverable Mode
bit 1 (ON) LE General Discoverable Mode
bit 2 (OFF) BR/EDR Not Supported
bit 3 (ON) Simultaneous LE and BR/EDR to Same Device Capable (controller)
bit 4 (ON) Simultaneous LE and BR/EDR to Same Device Capable (Host)
1A # Number of bytes that follow in second (and last) AD structure
FF # Manufacturer specific data AD type
4C 00 # Company identifier code (0x004C == Apple)
02 # Byte 0 of iBeacon advertisement indicator
15 # Byte 1 of iBeacon advertisement indicator
e2 c5 6d b5 df fb 48 d2 b0 60 d0 f5 a7 10 96 e0 # iBeacon proximity uuid
00 00 # major
00 00 # minor
c5 # The 2's complement of the calibrated Tx Power
특정 광고를 보내도록 구성 할 수있는 모든 Bluetooth LE 장치는 위의 패킷을 생성 할 수 있습니다. Bluez를 사용하여이 광고를 보내도록 Linux 컴퓨터를 구성했으며 Apple의 AirLocate 테스트 코드를 실행하는 iOS7 장치는 위에 지정된 필드를 가진 iBeacon으로 선택합니다. 참조 : 주변기기로 BlueZ 스택 사용 (광고주)
이 블로그 에는 리버스 엔지니어링 프로세스에 대한 자세한 내용이 있습니다.