Commit Graph
76 Commits
Author SHA1 Message Date
Kevin Thomas da756ec241 Week 4-BN: give _reset_handler a prototype (void _reset_handler(void))
Fix the six places it was left as an em dash: both Step 4 symbol tables,
both resolution tables, and both Python shortcuts.
2026-10-03 15:11:43 -04:00
Kevin Thomas 41e6d6c11f Week 4-BN: resolve functions with Y (Change Type); fully resolve name+type
- Step 16: Y is the primary resolution key (Change Type sets name+type); N is
  rename-only; explicit how-to and worked examples use G then Y
- Step 4: add exact DWARF signatures to both symbol tables
- Python shortcut now sets names AND types (bv.get_function_at(...).set_user_type)
- Step 26: worked examples use G then Y
2026-10-03 15:08:58 -04:00
Kevin Thomas e41c4581bd Week 4-BN: detailed step-by-step resolution worked examples for Project 2 (0x0008)
- Step 26: worked examples for main, gpio_init, sleep_ms, stdio_init_all,
  __wrap_printf (same G/N/Y mechanics as Step 16)
2026-10-03 14:58:46 -04:00
Kevin Thomas 55888dadb0 Week 4-BN: step-by-step function resolution in BN, int32_t note, serial tip
- Step 16: G/N/Y key table and worked examples (main, stdio_init_all, uart_init,
  __wrap_printf); note BN shows int32_t where Ghidra shows int
- Step 26: worked check + pointer to Step 16
- troubleshooting: macOS serial capture needs raw termios at 115200
2026-10-03 14:58:07 -04:00
Kevin Thomas 4f56b897cf Week 4-BN: require hardware breakpoints (F2 software bps do not work on flash)
- Step 13/14/25 and tables: use Debugger -> Add Hardware Breakpoint... (HE),
  warn that F2 Toggle Breakpoint is a software breakpoint and never installs on
  read-only flash
- new troubleshooting entry: r1 reverts to 0x2b (core running because the
  breakpoint is not installed; registers widget is a per-stop snapshot)
2026-10-03 13:57:26 -04:00
Kevin Thomas 283629e1e1 Week 4-BN: make the whole lab use the GDB MI GUI workflow
- Step 13 rewritten: set/move breakpoints in the GUI, not the command port
- Steps 14/14b/25/25b: breakpoints via the GUI (command port only for the
  RAM string write, which BN cannot do)
- Step 22/23: adapter corrected GDB RSP -> GDB MI
- cheat sheet, GUI-actions and OpenOCD tables: GUI-first, command port as fallback
- troubleshooting: real GDB MI causes (pre-existing breakpoint, gdb path, LLDB);
  stops reported as Breakpoint not SingleStep
2026-10-03 11:49:06 -04:00
Kevin Thomas 3f7b242b18 Rewrite root uf2conv.py as the canonical, documented converter
Single canonical copy at the repo root: full type annotations and
Google-style docstrings, pathlib instead of os.path, explicit except
clauses, upstream error-path bugs fixed, and module globals replaced
with an explicit ConverterContext.
2026-10-03 11:39:03 -04:00
Kevin Thomas 3e52dd0412 Add Week 4 Binary Ninja notebook and OpenOCD/flash host tooling
- WEEK04-BN.md/.pdf: full Binary Ninja dynamic + static lab for 0x0005 and 0x0008
- README: link the Week 4-BN notebook after Week 4a
- debug-server.sh/.ps1: OpenOCD launcher (USE_CORE=0, -rtos none, BP_ADDR)
- flash.sh/.ps1: UF2 flash helpers
- pyproject.toml: ruff config for root host-side scripts
2026-10-03 11:33:10 -04:00
Kevin Thomas 34f21bcd52 Update README.md 2026-10-02 09:37:56 -04:00
Kevin Thomas 4c58ae8eac Convert all course PDFs to tagged, accessible (Canvas-compliant) documents 2026-10-01 13:54:39 -04:00
Kevin Thomas ed95369a0e Regenerate Week 7 PDF as tagged/accessible document; document tagging in PDF skill 2026-10-01 11:46:31 -04:00
Kevin Thomas 62e8a2ca70 Fix Week 7 ASCII-art arrow mojibake and regenerate PDF 2026-10-01 11:46:31 -04:00
Kevin Thomas ec1964b5cc Revise today's tutorial and lesson information
Updated tutorial date and lesson details for October 1, 2026.
2026-10-01 09:46:18 -04:00
Kevin Thomas 8c21fb50c6 Update README.md 2026-09-30 09:30:14 -04:00
Kevin Thomas bbda3d31d1 Update README.md 2026-09-29 09:49:06 -04:00
Kevin Thomas 498f8cafc0 Add files via upload 2026-09-29 09:48:35 -04:00
Kevin Thomas 2ac27dc108 Update README.md 2026-09-29 08:47:05 -04:00
Kevin Thomas 4b92d17357 Update README.md 2026-09-28 18:13:10 -04:00
Kevin Thomas 67d3226b22 Update README.md 2026-09-28 12:42:28 -04:00
Kevin Thomas c9c23dd413 Update README.md 2026-09-28 12:06:04 -04:00
Kevin Thomas a06615b615 Update README.md 2026-09-28 10:38:34 -04:00
Kevin Thomas 026bdb9597 Update README.md 2026-09-28 09:52:26 -04:00
Kevin Thomas b3e0a05ade Update README.md 2026-09-27 19:23:22 -04:00
Kevin Thomas 35eacd2c0e Course update: lessons, CTF 0x0011a_cb, and documentation
- 0x0011a_cb (Operation Dark Vector): nation-state CTF redesign with an
  AES-128-ECB sealed target and a plaintext launch origin; RP2350 firmware with
  bearing-driven servo, tri-color LEDs, GSV stats, and a realistic no-fix path
- docs: story-driven classified brief, GDB and Ghidra tutorials with deep
  step-throughs, regenerated artifacts and PDFs
- scripts: docstring standard, AES per-student randomizer, telemetry monitor
- week 3 to week 5 lessons: Ghidra patching tutorial, CMSIS-SVD hardware RE,
  double floating-point and GPIO architecture chapters, README structure
2026-09-27 14:18:56 -04:00
Kevin Thomas 5201ee4b6b Revise today's tutorial and lesson information
Updated tutorial date and lesson details.
2026-08-27 09:10:37 -04:00
Kevin Thomas 3213e3c944 Revise tutorial for August 26, 2026
Updated tutorial date and lesson details.
2026-08-26 08:24:23 -04:00
Kevin Thomas da05a298c9 Revise today's tutorial and lesson details
Updated tutorial date and lesson information.
2026-08-25 09:53:57 -04:00
Kevin Thomas c33cef279b Revise today's tutorial and lesson information
Updated tutorial date and lesson details for the Embedded Assembler Course.
2026-08-24 08:57:54 -04:00
Kevin Thomas 9d63c21229 Revise today's tutorial and lesson information
Updated tutorial date and lesson details for the Embedded Assembler Course.
2026-08-23 09:50:28 -04:00
Kevin Thomas 97517cd3f3 Revise today's tutorial and lesson information
Updated the tutorial date and lesson details.
2026-08-22 09:13:39 -04:00
Kevin Thomas fb856b1662 Revise tutorial date and lesson content
Updated today's tutorial date and lesson details.
2026-08-21 19:41:57 -04:00
Kevin Thomas cd8920e6ed Revise tutorial date and lesson content
Updated the tutorial date and lesson details for the Hacking Embedded Rust Course.
2026-08-16 09:11:27 -04:00
Kevin Thomas 8973e04b5e Revise today's tutorial and lesson information
Updated tutorial date and lesson details for embedded Rust course.
2026-08-15 08:17:33 -04:00
Kevin Thomas 054787416f Added PDFs 2026-08-15 07:11:17 -04:00
Kevin Thomas 556116e6cc Update README.md 2026-08-14 16:59:32 -04:00
Kevin Thomas bbd9cff410 Revise tutorial date and lesson content
Updated tutorial date and lesson details for the Hacking Embedded Rust Course.
2026-08-14 07:49:12 -04:00
Kevin Thomas 9f52047694 Update README.md 2026-08-13 07:58:17 -04:00
Kevin Thomas 481b3ca511 Update tutorial date and lesson details 2026-08-12 08:12:12 -04:00
Kevin Thomas c8f1b70fbe Update tutorial date and lesson content
Updated the tutorial date and lesson number, and changed the content to reflect the new chapter on building and flashing.
2026-08-10 11:15:22 -04:00
Kevin Thomas dbf9232bf3 Update README.md 2026-08-04 08:18:20 -04:00
Kevin Thomas 8f7ab37025 Update tutorial date and lesson information 2026-08-03 08:47:57 -04:00
Kevin Thomas ef6805e391 Update README.md 2026-08-02 08:09:26 -04:00
Kevin Thomas 7819024e8b Revise today's tutorial and lesson information
Updated tutorial date and lesson details for the Hacking Embedded Rust Course.
2026-08-01 07:20:01 -04:00
Kevin Thomas 234d7d6d0a Update README.md 2026-07-31 07:20:48 -04:00
Kevin Thomas d80190dc33 Update WEEK01.md 2026-07-30 14:29:33 -04:00
Kevin Thomas a605492a9c Update README.md 2026-07-30 07:23:28 -04:00
Kevin Thomas 86a78cddd5 Update README.md 2026-07-29 09:12:57 -04:00
Kevin Thomas 6302b8317b Update README.md 2026-07-28 09:27:04 -04:00
Kevin Thomas 207c68e8fd Update README.md 2026-07-27 09:27:01 -04:00
Kevin Thomas 6f3d0fb83c Update README.md 2026-07-26 09:18:32 -04:00