The ART of IOT

Description

problem description

Solution

😀 Introduction

We’ve been given a single file: The-ART-of-IOT.atkdl. The acronym “ART” and the description—Why So Serial?—nudges us toward serial communication. But let’s not jump to conclusions…yet.


🔍 Inspecting the File

FIrst, let’s check the file header:

$ xxd The-ART-of-IOT.atkdl | head -1
00000000: 504b 0304 1400 0008 0800 8e9a b85a bf48  PK...........Z.H

The PK header (0x50 0x4B) reveals that this is a ZIP archive “in disguise”.

Unpack the archive:

$ unzip The-ART-of-IOT.atkdl -d The-ART-of-IOT

Directory structure:

The-ART-of-IOT
├── 0
│   └── channel.ini
├── 1
│   ├── 0-0.bin
│   ├── 0-1.bin
│   └── channel.ini
├── 2 … 15  each with channel.ini
├── channel.ini
├── set.ini
└── vernier.ini

🧐 Identifying the Format

Examining channel.ini at the root:

SessionName=DL16 Plus
SamplingFrequency=20000  ; samples per second
SamplingDepth=40000000   ; max samples
TriggerSamplingDepth=400000

And set.ini:

favoritesList=["SPI", null, "UART"]

🤓 UART Refresher

UART (Universal Asynchronous Receiver/Transmitter) is a simple serial protocol:

|   1    |   0   | D0 | D1 | … | D7 | Parity? |   1   |
 Idle   Start                                    Stop 

We could spend (a lot of) time to decode the dump. But since the software for this Alientek DL16 Plus logic analyzer is available, why bother?

🛠️ Decoding with the Logic Analyzer Software

  1. Launch DL16 Plus software (or compatible).
  2. Open The-ART-of-IOT.atkdl directly—the software auto‑loads channel configs and sampling settings.
  3. Select the channel containing data.
  4. Enable UART decode (e.g., 115200 baud, 8‑N‑1).
  5. Filter or discard idle/noisy segments.

Here’s the decoded output in the UI:

Logic Analyzer Screenshot

Figure: UART decoding in ATK DL16 Plus.


🏁 Extracting the Flag

The decoded byte sequence:

41 70 70 53 65 63 2D 49 4C 7B 66 72 30 6D 5F 77
31 72 33 5F 74 6F 5F 66 6C 61 67 7D 0D 0A

Converting to ASCII give us the flag:

AppSec-IL{fr0m_w1r3_to_flag} 🎉


🎓 Key Takeaways