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