set up GitHub Pages with docs/ source, custom landing page, and Jekyll-rendered protocol docs

This commit is contained in:
KaraZajac
2026-03-22 11:09:08 -04:00
parent a58d13362a
commit 295e4c4d4a
18 changed files with 587 additions and 0 deletions
+6
View File
@@ -0,0 +1,6 @@
title: KAT — Keyfob Analysis Toolkit
description: Terminal-based RF signal analysis for automotive keyfobs
theme: jekyll-theme-minimal
show_downloads: false
exclude:
- README.md
+4
View File
@@ -1,3 +1,7 @@
---
layout: default
---
# Fiat V0 Protocol
**Rust module:** `src/protocols/fiat_v0.rs`
+4
View File
@@ -1,3 +1,7 @@
---
layout: default
---
# Ford V0 Protocol
**Rust module:** `src/protocols/ford_v0.rs`
+170
View File
@@ -0,0 +1,170 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>KAT — Keyfob Analysis Toolkit</title>
<link rel="stylesheet" href="style.css">
</head>
<body>
<header>
<div class="container">
<h1>KAT — Keyfob Analysis Toolkit</h1>
<p class="tagline">Terminal-based RF signal analysis for automotive keyfobs</p>
</div>
</header>
<nav class="navbar">
<div class="container">
<ul>
<li><a href="#features">Features</a></li>
<li><a href="#supported-protocols">Protocols</a></li>
<li><a href="#requirements">Requirements</a></li>
<li><a href="#documentation">Docs</a></li>
<li><a href="https://github.com/KaraZajac/KAT" target="_blank">GitHub</a></li>
</ul>
</div>
</nav>
<main>
<section class="hero">
<div class="container">
<h2>Capture, Decode & Analyze Keyfob Signals</h2>
<p>A real-time terminal UI for RF signal analysis with support for HackRF One and RTL-SDR hardware.</p>
<div class="cta-buttons">
<a href="https://github.com/KaraZajac/KAT#installation" class="btn btn-primary">Get Started</a>
<a href="https://github.com/KaraZajac/KAT" class="btn btn-secondary">View on GitHub</a>
</div>
</div>
</section>
<section id="features" class="features">
<div class="container">
<h2>Key Features</h2>
<div class="feature-grid">
<div class="feature-card">
<h3>📡 Real-Time Capture</h3>
<p>Receive and demodulate AM/OOK keyfob signals at configurable frequencies with HackRF or RTL-SDR</p>
</div>
<div class="feature-card">
<h3>🔓 Multi-Protocol Decoding</h3>
<p>14 protocol decoders including Kia V0V6, Ford, Fiat, Subaru, Suzuki, VAG, PSA, and more</p>
</div>
<div class="feature-card">
<h3>🔑 KeeLoq Keystore</h3>
<p>Generic KeeLoq fallback with embedded manufacturer keys for automatic decoding</p>
</div>
<div class="feature-card">
<h3>📤 Signal Retransmission</h3>
<p>Transmit Lock, Unlock, Trunk, and Panic commands from decoded signals (HackRF only)</p>
</div>
<div class="feature-card">
<h3>💾 Multiple Export Formats</h3>
<p>.fob (JSON) and .sub (Flipper Zero compatible) formats for signal storage and sharing</p>
</div>
<div class="feature-card">
<h3>🔧 Rich Signal Details</h3>
<p>View encoding, RF modulation, encryption, serial, counter, key data, CRC, and raw timing data</p>
</div>
</div>
</div>
</section>
<section id="supported-protocols" class="protocols">
<div class="container">
<h2>Supported Protocols</h2>
<div class="protocol-list">
<div class="protocol-column">
<h3>Kia</h3>
<ul>
<li>Kia V0</li>
<li>Kia V1</li>
<li>Kia V2</li>
<li>Kia V3 / V4</li>
<li>Kia V5</li>
<li>Kia V6</li>
</ul>
</div>
<div class="protocol-column">
<h3>Other Manufacturers</h3>
<ul>
<li>Ford V0</li>
<li>Fiat V0</li>
<li>Subaru</li>
<li>Suzuki</li>
<li>VAG (VW/Audi/Seat/Skoda)</li>
<li>PSA (Peugeot/Citroën)</li>
</ul>
</div>
<div class="protocol-column">
<h3>Generic</h3>
<ul>
<li>Scher-Khan</li>
<li>Star Line</li>
<li>KeeLoq (Generic)</li>
</ul>
</div>
</div>
</div>
</section>
<section id="requirements" class="requirements">
<div class="container">
<h2>Requirements</h2>
<h3>Hardware</h3>
<ul>
<li><strong>HackRF One</strong> (or compatible) — Full receive and transmit capabilities</li>
<li><strong>RTL433 / RTL-SDR</strong> — Receive-only; no transmit supported</li>
</ul>
<h3>Software</h3>
<ul>
<li>Rust 1.75+ (for building from source)</li>
<li>libhackrf — HackRF C library and headers</li>
<li>libusb — For RTL433/RTL-SDR support</li>
</ul>
<h3>Operating System</h3>
<p>macOS, Linux, and other Unix-like systems. Precompiled binaries and installation instructions available on GitHub.</p>
</div>
</section>
<section id="documentation" class="documentation">
<div class="container">
<h2>Protocol Documentation</h2>
<p>Detailed protocol specifications and decoder documentation:</p>
<div class="doc-links">
<a href="kia_v0.html" class="doc-link">Kia V0</a>
<a href="kia_v1.html" class="doc-link">Kia V1</a>
<a href="kia_v2.html" class="doc-link">Kia V2</a>
<a href="kia_v3_v4.html" class="doc-link">Kia V3/V4</a>
<a href="kia_v5.html" class="doc-link">Kia V5</a>
<a href="kia_v6.html" class="doc-link">Kia V6</a>
<a href="ford_v0.html" class="doc-link">Ford V0</a>
<a href="fiat_v0.html" class="doc-link">Fiat V0</a>
<a href="subaru.html" class="doc-link">Subaru</a>
<a href="suzuki.html" class="doc-link">Suzuki</a>
<a href="vag.html" class="doc-link">VAG</a>
<a href="psa.html" class="doc-link">PSA</a>
<a href="scher_khan.html" class="doc-link">Scher-Khan</a>
<a href="star_line.html" class="doc-link">Star Line</a>
<a href="keeloq_generic.html" class="doc-link">KeeLoq (Generic)</a>
</div>
</div>
</section>
<section class="security-notice">
<div class="container">
<h3>⚠️ Security and Legal Disclaimer</h3>
<p>Use KAT only on systems and vehicles you own or have explicit, written permission to test. Capturing, decoding, or transmitting keyfob and vehicle-access signals without authorization may be illegal in your jurisdiction. You are solely responsible for ensuring your use complies with applicable laws. KAT is intended for security research, authorized penetration testing, education, and legitimate testing on your own equipment.</p>
</div>
</section>
</main>
<footer>
<div class="container">
<p>&copy; 2024 KAT — Keyfob Analysis Toolkit. Licensed under the terms in LICENSE file. <a href="https://github.com/KaraZajac/KAT" target="_blank">View on GitHub</a></p>
</div>
</footer>
</body>
</html>
+4
View File
@@ -1,3 +1,7 @@
---
layout: default
---
# KeeLoq Generic Fallback
**Rust module:** `src/protocols/keeloq_generic.rs`
+4
View File
@@ -1,3 +1,7 @@
---
layout: default
---
# Kia V0 Protocol
**Rust module:** `src/protocols/kia_v0.rs`
+4
View File
@@ -1,3 +1,7 @@
---
layout: default
---
# Kia V1 Protocol
**Rust module:** `src/protocols/kia_v1.rs`
+4
View File
@@ -1,3 +1,7 @@
---
layout: default
---
# Kia V2 Protocol
**Rust module:** `src/protocols/kia_v2.rs`
+4
View File
@@ -1,3 +1,7 @@
---
layout: default
---
# Kia V3/V4 Protocol
**Rust module:** `src/protocols/kia_v3_v4.rs`
+4
View File
@@ -1,3 +1,7 @@
---
layout: default
---
# Kia V5 Protocol
**Rust module:** `src/protocols/kia_v5.rs`
+4
View File
@@ -1,3 +1,7 @@
---
layout: default
---
# Kia V6 Protocol
**Rust module:** `src/protocols/kia_v6.rs`
+4
View File
@@ -1,3 +1,7 @@
---
layout: default
---
# PSA (Peugeot/Citroën) Protocol
**Rust module:** `src/protocols/psa.rs`
+4
View File
@@ -1,3 +1,7 @@
---
layout: default
---
# Scher-Khan Protocol
**Rust module:** `src/protocols/scher_khan.rs`
+4
View File
@@ -1,3 +1,7 @@
---
layout: default
---
# Star Line Protocol
**Rust module:** `src/protocols/star_line.rs`
+351
View File
@@ -0,0 +1,351 @@
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
:root {
--primary-color: #6366f1;
--secondary-color: #8b5cf6;
--text-color: #1f2937;
--light-bg: #f9fafb;
--border-color: #e5e7eb;
--success-color: #10b981;
}
html {
scroll-behavior: smooth;
}
body {
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 'Ubuntu', 'Cantarell', sans-serif;
color: var(--text-color);
line-height: 1.6;
}
.container {
max-width: 1200px;
margin: 0 auto;
padding: 0 20px;
}
/* Header */
header {
background: linear-gradient(135deg, var(--primary-color), var(--secondary-color));
color: white;
padding: 40px 0 20px;
box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
}
header h1 {
font-size: 2.5rem;
margin-bottom: 8px;
}
header .tagline {
font-size: 1.1rem;
opacity: 0.95;
}
/* Navigation */
.navbar {
background: white;
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
position: sticky;
top: 0;
z-index: 100;
}
.navbar ul {
list-style: none;
display: flex;
gap: 2rem;
padding: 1rem 0;
flex-wrap: wrap;
}
.navbar a {
text-decoration: none;
color: var(--text-color);
font-weight: 500;
transition: color 0.3s;
}
.navbar a:hover {
color: var(--primary-color);
}
/* Hero Section */
.hero {
padding: 60px 0;
text-align: center;
background: var(--light-bg);
}
.hero h2 {
font-size: 2rem;
margin-bottom: 1rem;
color: var(--text-color);
}
.hero p {
font-size: 1.1rem;
color: #6b7280;
margin-bottom: 2rem;
}
.cta-buttons {
display: flex;
gap: 1rem;
justify-content: center;
flex-wrap: wrap;
}
.btn {
padding: 12px 28px;
border-radius: 6px;
text-decoration: none;
font-weight: 600;
transition: all 0.3s;
display: inline-block;
}
.btn-primary {
background: var(--primary-color);
color: white;
}
.btn-primary:hover {
background: #4f46e5;
transform: translateY(-2px);
box-shadow: 0 4px 12px rgba(99, 102, 241, 0.3);
}
.btn-secondary {
background: white;
color: var(--primary-color);
border: 2px solid var(--primary-color);
}
.btn-secondary:hover {
background: var(--light-bg);
transform: translateY(-2px);
}
/* Features Section */
.features {
padding: 60px 0;
}
.features h2 {
font-size: 2rem;
text-align: center;
margin-bottom: 3rem;
}
.feature-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
gap: 2rem;
}
.feature-card {
padding: 2rem;
background: var(--light-bg);
border-radius: 8px;
border-left: 4px solid var(--primary-color);
transition: transform 0.3s, box-shadow 0.3s;
}
.feature-card:hover {
transform: translateY(-4px);
box-shadow: 0 8px 16px rgba(0, 0, 0, 0.1);
}
.feature-card h3 {
margin-bottom: 0.5rem;
color: var(--primary-color);
font-size: 1.2rem;
}
.feature-card p {
color: #6b7280;
}
/* Protocols Section */
.protocols {
padding: 60px 0;
background: var(--light-bg);
}
.protocols h2 {
font-size: 2rem;
text-align: center;
margin-bottom: 3rem;
}
.protocol-list {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
gap: 2rem;
}
.protocol-column h3 {
color: var(--primary-color);
margin-bottom: 1rem;
font-size: 1.2rem;
}
.protocol-column ul {
list-style: none;
}
.protocol-column li {
padding: 0.5rem 0;
color: #4b5563;
border-bottom: 1px solid #e5e7eb;
}
.protocol-column li:last-child {
border-bottom: none;
}
/* Requirements Section */
.requirements {
padding: 60px 0;
}
.requirements h2 {
font-size: 2rem;
margin-bottom: 2rem;
}
.requirements h3 {
color: var(--primary-color);
margin-top: 1.5rem;
margin-bottom: 1rem;
font-size: 1.2rem;
}
.requirements ul {
list-style: none;
margin-bottom: 1.5rem;
}
.requirements li {
padding: 0.75rem 0 0.75rem 2rem;
position: relative;
}
.requirements li:before {
content: "✓";
position: absolute;
left: 0;
color: var(--success-color);
font-weight: bold;
}
/* Documentation Section */
.documentation {
padding: 60px 0;
background: var(--light-bg);
}
.documentation h2 {
font-size: 2rem;
margin-bottom: 1.5rem;
}
.documentation > .container > p {
margin-bottom: 2rem;
color: #6b7280;
}
.doc-links {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
gap: 1rem;
}
.doc-link {
padding: 12px 16px;
background: white;
border: 1px solid var(--border-color);
border-radius: 6px;
text-decoration: none;
color: var(--primary-color);
font-weight: 500;
transition: all 0.3s;
text-align: center;
}
.doc-link:hover {
background: var(--primary-color);
color: white;
border-color: var(--primary-color);
}
/* Security Notice */
.security-notice {
padding: 40px 0;
background: #fef2f2;
}
.security-notice h3 {
color: #dc2626;
margin-bottom: 1rem;
}
.security-notice p {
color: #7f1d1d;
line-height: 1.8;
}
/* Footer */
footer {
background: var(--text-color);
color: white;
padding: 20px 0;
text-align: center;
margin-top: 60px;
}
footer a {
color: var(--primary-color);
text-decoration: none;
}
footer a:hover {
text-decoration: underline;
}
/* Responsive */
@media (max-width: 768px) {
header h1 {
font-size: 1.8rem;
}
.hero h2 {
font-size: 1.5rem;
}
.features h2,
.protocols h2,
.requirements h2,
.documentation h2 {
font-size: 1.5rem;
}
.navbar ul {
gap: 1rem;
}
.cta-buttons {
flex-direction: column;
}
.btn {
width: 100%;
text-align: center;
}
}
+4
View File
@@ -1,3 +1,7 @@
---
layout: default
---
# Subaru Protocol
**Rust module:** `src/protocols/subaru.rs`
+4
View File
@@ -1,3 +1,7 @@
---
layout: default
---
# Suzuki Protocol
**Rust module:** `src/protocols/suzuki.rs`
+4
View File
@@ -1,3 +1,7 @@
---
layout: default
---
# VAG (VW/Audi/Seat/Skoda) Protocol
**Rust module:** `src/protocols/vag.rs`