Skip to content

Commit df4eac6

Browse files
h4x0rclaude
andcommitted
docs: use canonical cybercx.com domain for the usnjrnl_rewind credit
Both cybercx.com and cybercx.com.au serve the article; .com is the global corporate domain. Verified the link resolves to the real post (HTTP 200, title 'NTFS Usnjrnl Rewind | CyberCX', self-canonical). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
1 parent 4306593 commit df4eac6

4 files changed

Lines changed: 4 additions & 4 deletions

File tree

CHANGELOG.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
1313

1414
- Feature `$UsnJrnl:$J` full-path reconstruction (the *Rewind* engine) as the
1515
headline capability, with a worked example, and credit the technique's
16-
originator, [CyberCX](https://cybercx.com.au/blog/ntfs-usnjrnl-rewind/)
16+
originator, [CyberCX](https://cybercx.com/blog/ntfs-usnjrnl-rewind/)
1717
([`CyberCX-DFIR/usnjrnl_rewind`](https://github.com/CyberCX-DFIR/usnjrnl_rewind)).
1818
Docs-only; no code change.
1919

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -132,7 +132,7 @@ for resolved in engine.rewind(&ntfs_core::usn::parse_usn_journal(&usn_bytes)?) {
132132

133133
`RewindEngine` runs **two passes — reverse, then forward** — so a rename or an MFT-entry reuse part-way through the journal resolves to the *correct* path at each point in time. Events whose parent is no longer present in the live `$MFT` still resolve from the journal's own create/rename history, tagged `RecordSource::Carved` or `Ghost`. For journals too large to hold in memory, `UsnJournalReader` streams them; `carve_usn_records` recovers events from journal slack and unallocated space; and `RefsAnalyzer` handles ReFS's 128-bit USN V3 references.
134134

135-
> **Credit:** the journal-`$J` path-reconstruction technique was pioneered by **CyberCX** — see their writeup [*NTFS Usnjrnl Rewind*](https://cybercx.com.au/blog/ntfs-usnjrnl-rewind/) (April 2024) and the reference tool [`CyberCX-DFIR/usnjrnl_rewind`](https://github.com/CyberCX-DFIR/usnjrnl_rewind). This is an independent, clean-room Rust implementation built on `ntfs-core`'s own parsers; its SQLite export is column-compatible with `usnjrnl_rewind`.
135+
> **Credit:** the journal-`$J` path-reconstruction technique was pioneered by **CyberCX** — see their writeup [*NTFS Usnjrnl Rewind*](https://cybercx.com/blog/ntfs-usnjrnl-rewind/) (April 2024) and the reference tool [`CyberCX-DFIR/usnjrnl_rewind`](https://github.com/CyberCX-DFIR/usnjrnl_rewind). This is an independent, clean-room Rust implementation built on `ntfs-core`'s own parsers; its SQLite export is column-compatible with `usnjrnl_rewind`.
136136
137137
## Reader API (`ntfs-core`)
138138

core/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ for resolved in engine.rewind(&ntfs_core::usn::parse_usn_journal(&usn_bytes)?) {
5858
- `carve_usn_records` — recover USN records from free space and corrupt journals (V2/V3, timestamp-range gated).
5959
- `RefsAnalyzer` / `RefsFileId` — ReFS USN V3 support (128-bit file IDs, journal-rewind-only path reconstruction).
6060

61-
> **Credit:** the journal-`$J` path-reconstruction technique was pioneered by **CyberCX**[*NTFS Usnjrnl Rewind*](https://cybercx.com.au/blog/ntfs-usnjrnl-rewind/) (April 2024) · [`CyberCX-DFIR/usnjrnl_rewind`](https://github.com/CyberCX-DFIR/usnjrnl_rewind). `RewindEngine` is an independent, clean-room Rust implementation.
61+
> **Credit:** the journal-`$J` path-reconstruction technique was pioneered by **CyberCX**[*NTFS Usnjrnl Rewind*](https://cybercx.com/blog/ntfs-usnjrnl-rewind/) (April 2024) · [`CyberCX-DFIR/usnjrnl_rewind`](https://github.com/CyberCX-DFIR/usnjrnl_rewind). `RewindEngine` is an independent, clean-room Rust implementation.
6262
6363
## Trust, but verify
6464

forensic/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ Beyond MFT-record anomalies, this crate analyses the USN change journal (decoded
6363
- `correlation` — cross-references USN ↔ `$LogFile``$MFT` to surface ghost records, coverage gaps, entry reuse, and timestamp conflicts.
6464
- `triage` — a `TriageEngine` with 12 built-in investigative questions over reconstructed records.
6565

66-
The "reconstructed records" these analyse come from `ntfs-core`'s `RewindEngine`, which rebuilds the full path of every journal event — even for deleted, MFT-reused files — via the *Rewind* algorithm pioneered by **CyberCX** ([*NTFS Usnjrnl Rewind*](https://cybercx.com.au/blog/ntfs-usnjrnl-rewind/) · [`CyberCX-DFIR/usnjrnl_rewind`](https://github.com/CyberCX-DFIR/usnjrnl_rewind)).
66+
The "reconstructed records" these analyse come from `ntfs-core`'s `RewindEngine`, which rebuilds the full path of every journal event — even for deleted, MFT-reused files — via the *Rewind* algorithm pioneered by **CyberCX** ([*NTFS Usnjrnl Rewind*](https://cybercx.com/blog/ntfs-usnjrnl-rewind/) · [`CyberCX-DFIR/usnjrnl_rewind`](https://github.com/CyberCX-DFIR/usnjrnl_rewind)).
6767

6868
These power the thin [`usnjrnl-forensic`](https://github.com/SecurityRonin/usnjrnl-forensic) CLI, which adds output formats (JSON / CSV / SQLite / TLN / body) and live monitoring on top.
6969

0 commit comments

Comments
 (0)