Skip to content

Latest commit

 

History

History
46 lines (37 loc) · 2.86 KB

File metadata and controls

46 lines (37 loc) · 2.86 KB

GEMINI Project Context: CyberHack

Project Overview

CyberHack is a multi-disciplinary repository that serves as both a comprehensive documentation/knowledge base and a collection of practical scripts and configurations. It covers a wide range of "Cyber/Hacking" topics, including STEM, Network Security, Home Automation, DIY Hardware, Embedded Systems, and Robotics.

The project is built around MkDocs with the Material theme, providing a structured way to explore the various sub-projects and tools.

Key Technologies

  • Documentation: MkDocs (Material theme), Markdown, Mermaid.js
  • Languages: Python, C/C++ (Arduino/STM32), Shell scripts
  • Hardware/Embedded: Arduino, ESP32, STM32, Jetson Nano, GNSS (WTRTK), CAN Bus
  • Frameworks/Tools: ROS2, Docker, Node-RED, OpenWRT, SocketCAN
  • Cybersecurity: Scripts from "Violent Python" for network scanning, forensics, and exploit automation.

Directory Structure

  • docs/: Markdown source for the documentation site (accessible at hack.cgabc.xyz).
  • embedded/: Code samples for controlling various drive boards (STM32, ESP32, etc.) and ROS2 integration.
  • home_automation/: Configurations for Home Assistant, OpenWRT, and Docker-based services (e.g., Baota).
  • network/: Utilities for serial communication, CAN bus, and download management.
  • sensor/: Scripts for OpenMV cameras and GNSS/NTRIP devices.
  • ViolentPython/: Python scripts based on the book Violent Python for security and forensics.
  • workflow/: Node-RED flows and automation logic.

Building and Running

Documentation

The documentation site is managed by MkDocs.

  • Serve locally: mkdocs serve
  • Build site: mkdocs build

Embedded & Hardware Scripts

Most scripts require Python 3 and dependencies listed in requirements.txt.

  • Install dependencies: pip install -r requirements.txt
  • Control STM32 Drive Board: python3 embedded/Joystick/ps3_pygame.py
  • ROS2 Teleop (Keyboard): ros2 run teleop_twist_keyboard teleop_twist_keyboard
  • Serial Device Connection: python3 sensor/wtrtk/find_and_connect_device.py

Network Utilities

  • CAN Bus Setup: Refer to network/can/init_can.sh and network/can/README.md.
  • SocketCAN tools: Use cansend and candump from the can-utils package.

Development Conventions

  • Documentation First: All major features and experiments should be documented in the docs/ directory.
  • Categorization: Keep scripts organized within their respective topic directories (e.g., embedded, network).
  • Hardware-Agnostic: Where possible, scripts should handle OS/Hardware differences (e.g., sensor/wtrtk/find_and_connect_device.py checks platform.system()).
  • External Resources: The documentation makes extensive use of external links and references to books (Violent Python) and open-source projects (SocketCAN, ROS2).