1<!doctype html> 2 3<html lang="en"> 4 5<head> 6 <meta charset="utf-8" /> 7 <meta content="width=device-width, initial-scale=1" name="viewport" /> 8 <title>Projects ⢠Syswraith</title> 9 <!-- Meta --> 10 <meta content="Syswraith's projects, including wordlist generators, ciphers, botnets, interpreters, and scrapers." 11 name="description" /> 12 <meta content="Syswraith" name="author" /> 13 <meta 14 content="cybersecurity, security tools, wordlist generator, reverse engineering, web scrapers, command-and-control, programming projects" 15 name="keywords" /> 16 <meta content="#282828" name="theme-color" /> 17 <!-- Open Graph --> 18 <meta content="Projects ⢠Syswraith" property="og:title" /> 19 <meta content="Explore Syswraith's security tools, terminal games, interpreters, and scrapers." 20 property="og:description" /> 21 <meta content="https://avatars.githubusercontent.com/u/77088155" property="og:image" /> 22 <meta content="https://syswraith.com/projects" property="og:url" /> 23 <meta content="website" property="og:type" /> 24 <!-- Twitter --> 25 <meta content="summary" name="twitter:card" /> 26 <meta content="Projects ⢠Syswraith" name="twitter:title" /> 27 <meta content="Explore Syswraith's security tools, terminal games, interpreters, and scrapers." 28 name="twitter:description" /> 29 <meta content="https://avatars.githubusercontent.com/u/77088155" name="twitter:image" /> 30 <meta content="@syswraith" name="twitter:creator" /> 31 <!-- Favicon --> 32 <link href="favicon.ico" rel="icon" type="image/x-icon" /> 33 <!-- Optional: Dark/light adaptive favicon --> 34 <link href="favicon-light.ico" media="(prefers-color-scheme: light)" rel="icon" /> 35 <link href="favicon.ico" media="(prefers-color-scheme: dark)" rel="icon" /> 36 37 <link href="style.css" rel="stylesheet" /> 38 <style> 39 /* Page-specific styling if needed, otherwise matches style.css */ 40 .back-nav { 41 margin-bottom: 2rem; 42 } 43 44 .projects-container { 45 margin-top: 3.5rem; 46 } 47 48 .grid { 49 margin-top: 2rem; 50 margin-bottom: 3rem; 51 } 52 </style> 53</head> 54 55<body> 56 <button class="theme-toggle" id="toggleTheme">ð</button> 57 <div class="container projects-container"> 58 <h1>Projects</h1> 59 <nav class="back-nav"> 60 <a href="index.html">Home</a> · 61 <a href="https://github.com/syswraith">GitHub</a> · 62 <a href="https://syswraith.github.io/blog">Blog</a> 63 </nav> 64 65 <div class="grid" id="projects"> 66 67 <div class="card"> 68 <h3> 69 <a href="https://github.com/syswraith/jorth" target="_blank">Jorth</a> 70 </h3> 71 <div class="meta">Forth interpreter ⢠JavaScript</div> 72 <p class="small"> 73 A stack-based Forth interpreter written in JavaScript, compiled with QuickJS into a single native binary. Supports word definitions, loops, conditionals, variables, and raw keyboard input, with no runtime dependency. Check out <a href="https://syswraith.com/jorth/">https://syswraith.com/jorth/</a>. 74 </p> 75 </div> 76 77 <div class="card"> 78 <h3> 79 <a href="https://github.com/syswraith/heimdall" target="_blank">Heimdall</a> 80 </h3> 81 <div class="meta">Username enumerator (OSINT) ⢠Go</div> 82 <p class="small"> 83 A single-binary tool that hunts down a username's footprint across the web â fast and concurrent by design. Built in Go, it checks presence via raw HTTP, JSON APIs, OpenGraph parsing, and headless/headed browser automation, skipping the need for hand-rolled parsing per site. Results are cached in SQLite, with configs fully YAML-driven for easy extension. 84 </p> 85 </div> 86 87 88 89<div class="card"> 90 <h3> 91 <a href="https://github.com/syswraith/chip8" target="_blank">CHIP-8</a> 92 </h3> 93 <div class="meta">Emulator / Virtual machine ⢠C</div> 94 <p class="small"> 95 A CHIP-8 emulator using Raylib, with a full fetch-decode-execute cycle, custom opcode table, and display/keypad handling. Validated against ROMs like Breakout, Tetris, and Maze â extended with a nonstandard opcode that streams pre-processed 1-bit video into the display buffer for full-motion playback. 96 </p> 97 </div> 98 99 <div class="card"> 100 <h3> 101 <a href="https://github.com/syswraith/ryukendo" target="_blank">Ryukendo</a> 102 </h3> 103 <div class="meta">Wordlist generator ⢠Python</div> 104 <p class="small">
105 A wordlist generator that leverages social connections to produce 106 candidate passwords. Uses cartesian products, permutations & 107 combinations and probability distributions to generate, sort and 108 rank possible passwords. 109 </p> 110 </div> 111 112 <div class="card"> 113 <h3> 114 <a href="https://github.com/syswraith/ngzl" target="_blank">Ngzl</a> 115 </h3> 116 <div class="meta">IRC C2 prototype ⢠Python</div> 117 <p class="small"> 118 A prototype botnet script using the IRC protocol as 119 command-and-control. Implements a clientâserver model with custom 120 sockets for receiving shell commands and relaying output through an 121 IRC server. 122 </p> 123 </div> 124 125 <div class="card"> 126 <h3> 127 <a href="https://github.com/Tervicke/bytecamp-26" target="_blank">AML Shield</a> 128 </h3> 129 <div class="meta">Monitoring platform ⢠JavaScript/TypeScript</div> 130 <p class="small"> 131 A real-time transaction monitoring platform that uses network analysis and interactive dashboards to detect 132 suspicious financial activity. Built for the 24-hour bytecamp-26 hackathon. 133 </p> 134 </div> 135 136 <div class="card"> 137 <h3> 138 <a href="https://github.com/Tervicke/devcraft-orion" target="_blank">Orion</a> 139 </h3> 140 <div class="meta">Auction system ⢠TypeScript</div> 141 <p class="small"> 142 A distributed auction system featuring Go backend services for concurrent bidding and state management, a 143 TypeScript frontend for the reactive UI, and Python utilities for data processing pipelines. Built for the 144 48-hour devcraft '26 hackathon. 145 </p> 146 </div> 147 148 <div class="card"> 149 <h3> 150 <a href="https://github.com/syswraith/logo" target="_blank">Logo Interpreter</a> 151 </h3> 152 <div class="meta">Interpreter ⢠TypeScript</div> 153 <p class="small"> 154 A minimalistic Microsoft Logo interpreter featuring a custom tokenizer, 155 recursive parser, AST generator, and an HTML5 Canvas drawing engine 156 with angle-based turtle movement. 157 </p> 158 </div> 159 160 <div class="card"> 161 <h3> 162 <a href="https://github.com/syswraith/wintermute" target="_blank">Wintermute</a> 163 </h3> 164 <div class="meta">URL shortener ⢠TypeScript + Go</div> 165 <p class="small"> 166 A service for creating and retrieving shortened URLs with authentication and expiration capabilities. Users 167 can generate compact aliases for long URLs, retrieve the originals via lookup, and manage access through 168 JWT-based authentication with configurable expiry policies. 169 </p> 170 </div> 171 172 <div class="card"> 173 <h3> 174 <a href="https://github.com/syswraith/moodle-scraper" target="_blank">Moodle Scraper</a> 175 </h3> 176 <div class="meta">Web scraper ⢠Python</div> 177 <p class="small"> 178 A proof-of-concept data extraction tool for retrieving public profile 179 details from a private Moodle instance. Handles login token 180 authentication and stores the extracted data in a local SQLite 181 database. 182 </p> 183 </div> 184 185 <div class="card"> 186 <h3> 187 <a href="https://github.com/syswraith/c-projects/" target="_blank">Drunken Bishop</a> 188 </h3> 189 <div class="meta">Key visualizer ⢠C</div> 190 <p class="small"> 191 An implementation of the Drunken Bishop algorithm used by OpenSSH to 192 generate ASCII art representations of cryptographic keys. 193 </p> 194 </div> 195 196 <div class="card"> 197 <h3> 198 <a href="https://github.com/syswraith/wa-chat-summariser" target="_blank">WhatsApp Chat Summariser</a> 199 </h3> 200 <div class="meta">Chat summarisation pipeline ⢠Node.js</div> 201 <p class="small"> 202 A chat summary service that pulls messages, sends them to a local 203 LLM, and returns notifications via a publishâsubscribe system. Built 204 using Axios, whatsapp-web.js, NTFY, Ollama, and Deepseek-r1:7b. 205 </p> 206 </div> 207 208 <div class="card"> 209 <h3> 210 <a href="https://github.com/syswraith/c-projects" target="_blank">Hashing Implementations</a> 211 </h3> 212 <div class="meta">Data structures ⢠C</div> 213 <p class="small"> 214 Implementations of basic hashing concepts and collision resolution 215 techniques, including chaining using linked lists, linear probing, 216 and quadratic probing, in memory-safe C. 217 </p> 218 </div> 219 220 <div class="card"> 221 <h3> 222 <a href="https://github.com/syswraith/c-projects" target="_blank">Bus Reservation System</a> 223 </h3> 224 <div class="meta">Terminal application ⢠C</div> 225 <p class="small"> 226 A terminal-based bus reservation system written in C, featuring 227 interactive seat selection and formatted CLI layouts. 228 </p> 229 </div> 230 231 <div class="card"> 232 <h3> 233 <a href="https://github.com/syswraith/python-projects" target="_blank">Dots and Boxes</a> 234 </h3> 235 <div class="meta">Terminal game ⢠Python</div> 236 <p class="small"> 237 A command-line implementation of the classic Dots and Boxes board 238 game, focusing on custom grid and connection logic. 239 </p> 240 </div> 241 242 <div class="card"> 243 <h3> 244 <a href="https://github.com/syswraith/c-projects" target="_blank">Tic Tac Toe</a> 245 </h3> 246 <div class="meta">Terminal game ⢠C</div> 247 <p class="small"> 248 A command-line Tic Tac Toe game written in C, featuring a board state 249 managed using a flattened 2D array.
250 </p> 251 </div> 252 </div> 253 </div> 254 255
255<script> 256 // Persistent theme toggle script 257 const btn = document.getElementById("toggleTheme"); 258 259 // Initialize theme based on localStorage or system preferences 260 if (localStorage.getItem("theme") === "light" || 261 (!localStorage.getItem("theme") && window.matchMedia("(prefers-color-scheme: light)").matches)) { 262 document.documentElement.classList.add("light"); 263 btn.textContent = "ð"; 264 } else { 265 document.documentElement.classList.remove("light"); 266 btn.textContent = "ð"; 267 } 268 269 btn.addEventListener("click", () => { 270 document.documentElement.classList.toggle("light"); 271 const isLight = document.documentElement.classList.contains("light"); 272 btn.textContent = isLight ? "ð" : "ð"; 273 localStorage.setItem("theme", isLight ? "light" : "dark"); 274 }); 275 </script>
275 276
277<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v4bc70e2c01a94c73b74392e4234840661791215815920" integrity="sha512-L0ha0OXavK/8okipN9F8BtP84dg9DUhPERbBXzwI6dgTA55d2+yweo3pn5CSFYs45/r8md2+xvUPtTdvTNRfjA==" data-cf-beacon='{"version":"2024.11.0","token":"c6ee69e600e54352b55ec30f31e5ac16","r":1,"spa":2}' crossorigin="anonymous"></script>
277 278</body> 279 280</html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.