Blogs

UART 101: Getting to Know Serial Communication


UART (Universal Asynchronous Receiver/Transmitter) is a hardware communication protocol used for asynchronous serial communication between devices. It's one of the simplest ways to send data between microcontrollers, computers, and peripherals like GPS modules or Bluetooth devices.


Read More

UART 102: Serial Discovery for Beginners


UART stands for Universal Asynchronous Receiver/Transmitter. It’s basically a hardware communication protocol that acts like a translator between your computer (or microcontroller) and other serial devices. Think of it as the middleman that helps your system talk to things like GPS modules, modems, or even other microcontrollers one bit at a time, over just a couple of wires.


Read More

UART 103: Device Communication and Shell Access


In this blog, our objective is to gain shell access to the target device via the UART interface. Once a successful connection is established, we’ll explore the device’s file system with the aim of locating stored credentials or configuration data. This process is a vital step in hardware analysis, as it can reveal sensitive information or help us better understand how the device operates internally.


Read More

Firmware Emulation 101


Firmware is the software that runs on embedded devices like routers, access points, or IoT gadgets. It controls how the hardware operates and manages things like network connectivity, device security, and user interactions. In simpler terms it’s the brain of your hardware.


Read More

Firmware Emulation 102


Now that you’ve got a clear idea of what firmware emulation is and why it matters, it’s time to actually dive in. In this blog, we’ll walk through setting up the tools and running your first emulation session. We’ll be using Firmware Analysis Toolkit (FAT) and Firmadyne, two of the most popular tools for analyzing and emulating router firmware.


Read More

JTAG 101: The Basics


JTAG (Joint Test Action Group) is an interface commonly used for testing, programming, and debugging electronic devices. It allows engineers and developers to access the internal circuitry of a device through a dedicated set of pins known as the JTAG connector.


Read More

JTAG 102: JTAG Pin Identification


In the previous blog, we explored what JTAG is and how it enables low-level access for testing, debugging, and programming chips. Now that we understand how JTAG works conceptually with its boundary scan logic and daisy chained devices it's time to get hands on.


Read More

JTAG 103: Hardware Debugging


Previously, we covered the fundamentals of JTAG and how to spot its pins on a device. In this blog, we’re taking it a step further actually connecting to a target and interacting with it through its JTAG interface. Time to get practical.


Read More

Modbus 101: From Bits to Bricks


Modbus is one of the most widely used open communication protocols in the industrial world. Originally developed for Programmable Logic Controllers (PLCs), it has become a de facto standard for device-level communication. Whether you're working with SCADA systems, sensors, actuators, or even modern IoT devices, chances are you’ll come across Modbus.


Read More

BLE 101 : The Basics


Bluetooth Low Energy (BLE) is a lightweight wireless communication protocol designed for short-range data transfer with minimal power consumption. It was introduced as part of the Bluetooth 4.0 standard to support battery-powered devices like smartwatches, fitness bands, medical sensors, and IoT gadgets.


Read More

BLE 102: Analyzing BLE


In this blog, we'll dive into the real-world process of capturing BLE traffic between a mobile app and a target device. We'll start by enabling the HCI snoop log on an Android phone, extracting the resulting capture file, and then analyzing it in Wireshark to uncover meaningful data exchanges.


Read More

BLE 103: Practical BLE Attacks


Now, in this blog, we’re taking things further. We'll use the insights we gathered to interact directly with the device using gatttool. This will allow us to send commands, explore available services, and begin testing how the device responds to direct input.


Read More