Skip to the content
PCBKitNew board
4 layers36.8 × 67.3 mmAddon, the printed circuit board in 3D

Explanation: This occurs when a program continues to use a pointer after the memory it points to has been freed.

Size
36.8 × 67.3 mm
Copper layers
4
Thickness
1.6 mm
Parts
45
Nets
50
Pads
177
Tracks, vias
188, 59
Pours
1
Routed
Yes
KiCad
KiCad 7 (file 20221018)
Created
21 Dec 2024
Updated
25 Aug 2026

Overview

Addon is an open-source printed circuit board by juhaszmarcell96, from the juhaszmarcell96/hacking_and_securing_cpp repository on GitHub, published under the MIT licence. It is a 4-layer board of 36.8 × 67.3 mm with 45 parts on 50 nets, routed with 188 tracks and 59 vias.

Its parts include 17 resistors, 10 capacitors, 9 connectors, 2 diodes and 1 transistor.

README

README.md

Hacking and Securing C++

other

Use-After-Free:

Explanation: This occurs when a program continues to use a pointer after the memory it points to has been freed.

Exploitation: Attackers can use this to execute arbitrary code by reallocating the freed memory with malicious data. This is often exploited through heap spraying or carefully crafted memory management.

Double-Free:

Explanation: This happens when a program attempts to free the same memory location more than once.

Exploitation: It can lead to heap corruption and allow attackers to take control of the program's flow by manipulating the heap’s structure, enabling code execution or a denial-of-service (DoS) attack.

Format String Vulnerabilities:

Explanation: Occurs when user input is passed directly to formatted output functions (e.g., printf) without specifying a format string.

Exploitation: Attackers can read or write arbitrary memory locations by crafting input that alters the format string, enabling data leakage or arbitrary code execution.

Log Injection and Sensitive Data Exposure:

Explanation: Insufficient sanitization of user input before logging can result in attackers injecting malicious payloads or revealing sensitive application data.

Exploitation: This can result in logs containing scripts, code, or system information that might be exposed and used for further attacks.

Integer Overflow/Underflow:

Explanation: Occurs when an arithmetic operation results in a value too large or too small for the data type to handle, wrapping around to unexpected values.

Exploitation: Attackers can exploit this to bypass bounds checks or control loop behavior, potentially writing out-of-bounds and triggering a buffer overflow.

Null Pointer Dereference:

Explanation: Accessing a pointer that has not been initialized or has been set to nullptr.

Exploitation: While this often results in a crash, attackers could leverage this to cause DoS or potentially map the null page (depending on platform security measures) to execute controlled code.

Uninitialized Memory Access:

Explanation: When variables are read before being initialized, they can contain random data.

Exploitation: This can leak sensitive information from memory or introduce non-deterministic behavior. Attackers can exploit this to infer program state or inject malicious data if combined with other vulnerabilities.

Improper Exception Handling:

Explanation: If exception handling fails to catch or properly log sensitive errors, it can lead to unintentional information disclosure.

Exploitation: Attackers can crash the program in a way that dumps detailed stack traces or internal states to logs, which may include sensitive information, facilitating further attacks.

Race Conditions:

Explanation: These occur when a program’s behavior depends on the timing or sequence of uncontrollable events.

Exploitation: An attacker can exploit race conditions to access shared resources (like files or variables) in an inconsistent state, leading to data corruption, privilege escalation, or unauthorized access.

Heap-Based Buffer Overflow:

Explanation: A buffer overflow occurring on the heap rather than the stack.

Exploitation: Attackers can overwrite memory management structures in the heap, leading to arbitrary code execution or compromising other data structures.

Parts

45
QtyValueFootprintReferences
1110kResistor_SMD:R_0603_1608MetricR1, R2, R3, R4, R5, R6, R7, R8, R9, R10, R13
10100nCapacitor_SMD:C_0603_1608MetricC1, C2, C3, C4, C5, C6, C7, C8, C9, C10
4MountingHole_PadMountingHole:MountingHole_2.2mm_M2_Pad_ViaH1, H2, H3, H4
3RResistor_THT:R_Axial_DIN0309_L9.0mm_D3.2mm_P20.32mm_HorizontalR11, R14, R15
25k1Resistor_SMD:R_0603_1608MetricR16, R17
1100Resistor_SMD:R_0603_1608MetricR12
1100@100MHzInductor_SMD:L_0603_1608MetricFB1
11AFuse:Fuse_0603_1608MetricF1
12N7002Package_TO_SOT_SMD:SOT-23Q1
1LEDLED_THT:LED_D5.0mmD1
1USB_C_ReceptacleConnector_USB:USB_C_Receptacle_GCT_USB4085J2
1analogConnector_PinSocket_2.54mm:PinSocket_1x10_P2.54mm_VerticalJ3
1digital_0Connector_PinSocket_2.54mm:PinSocket_1x05_P2.54mm_VerticalJ4
1digital_1Connector_PinSocket_2.54mm:PinSocket_1x05_P2.54mm_VerticalJ5
1digital_2Connector_PinSocket_2.54mm:PinSocket_1x05_P2.54mm_VerticalJ6
1digital_3Connector_PinSocket_2.54mm:PinSocket_1x05_P2.54mm_VerticalJ7
1power_0Connector_PinSocket_2.54mm:PinSocket_1x03_P2.54mm_VerticalJ8
1power_1Connector_PinSocket_2.54mm:PinSocket_1x03_P2.54mm_VerticalJ9
1schottkyDiode_SMD:D_SOD-123D2
1selectConnector_PinHeader_2.54mm:PinHeader_2x10_P2.54mm_VerticalJ1

Questions

How big is the Addon PCB?

It measures 36.8 × 67.3 mm and has 4 copper layers, 1.6 mm thick.

What parts does the Addon use?

45 parts. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.

Where can I download the Addon KiCad files?

From the juhaszmarcell96/hacking_and_securing_cpp repository on GitHub, at the commit this page was made from: the board is addon/addon.kicad_pcb and its schematic addon/addon.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Addon design in my own project?

Its repository publishes it under the MIT licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).

Similar boards

  • 4 layers40 × 23 mmPixl.js, the printed circuit board in 3D

    Pixl.js

    solosky/pixl.js

    An emulator for Amiibo!

    45 parts1.4kGPL-2.0
  • 4 layers19.1 × 19 mmKeyword top, the printed circuit board in 3D

    Keyword top

    notaroomba/keybytes

    A truly modular keyboard

    45 parts444
  • 4 layers90 × 26 mmUser interface, the printed circuit board in 3D

    User interface

    Twisted-Fields/rp2040-motor-controller

    A dual channel brushless motor controller based on the RP2040 microcontroller, designed in Kicad.

    45 parts419
  • 4 layers26 × 26 mmBoard latest, the printed circuit board in 3D

    Board latest

    dennisss/dacha

    Monorepo for awesome tools/projects/libraries

    45 parts397Apache-2.0
  • 4 layers79.5 × 64.5 mmRP2350 Duel, the printed circuit board in 3D

    RP2350 Duel

    OpenStickCommunity/Hardware

    A collection of hardware designs by members of the OpenStickCommunity

    45 parts338
  • 4 layers35.9 × 65 mmOasis, the printed circuit board in 3D

    Oasis

    justbuchanan/oasis

    3d-printed smart terrarium

    45 parts270Apache-2.0
  • 4 layers90 × 40 mmCm4-carrier net, the printed circuit board in 3D

    Cm4-carrier net

    jkiv/cm4-carriers

    KiCad design files for various Raspberry Pi Compute Module 4 (CM4) carrier boards.

    45 parts130BSD-2-Clause