| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
docs(readme): revamp curriculum navigation and visual previews (#562) | 9 天前 | |
docs: replace the NitroStack sponsor banner (#546) * docs: replace the NitroStack sponsor banner Match the SerpApi banner size and use the current MCP marketplace creative. * chore(site): rebuild data.js --------- Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> | 12 天前 | |
feat: add the reverse engineering track (14 lessons, 2 projects, path, and RE 101 manual on rea 6.5.0) (#597) * feat(phase-13): lesson 32, read ELF and Mach-O files from scratch * feat(phase-13): lesson 33, an x86-64 decoder, two disassembly methods, and a control-flow graph * feat(phase-13): lesson 34, lift machine code to structured pseudocode * feat(phase-13): lesson 35, an evidence ledger with confidence, limitations, and unknowns * feat(phase-13): lesson 36, prove a rebuilt function equal by execution and by bytes * feat(phase-13): list the reverse engineering path in the roadmap and phase guide * feat(manual/reverse-engineering-101): manifest, front matter, capture kit, and research * feat(manual/reverse-engineering-101): rea-providers-and-evidence * feat(manual/reverse-engineering-101): rea-function-end-to-end * feat(manual/reverse-engineering-101): the-readme-use-rule-and-the-law * feat(manual/reverse-engineering-101): rea-doctor-and-the-ghidra-provider * feat(manual/reverse-engineering-101): rea-capabilities * feat(manual/reverse-engineering-101): inspect-artifact * feat(manual/reverse-engineering-101): inspect-binary-layout-and-the-load-image * feat(manual/reverse-engineering-101): address-to-file-offset * feat(manual/reverse-engineering-101): analyze-overview * feat(manual/reverse-engineering-101): open-binary-and-the-headless-bridge * feat(manual/reverse-engineering-101): list-procedures-and-function-bodies * feat(manual/reverse-engineering-101): procedure-assembly * feat(manual/reverse-engineering-101): xrefs-and-the-jump-table * feat(manual/reverse-engineering-101): list-strings * feat(manual/reverse-engineering-101): analyze-function-and-pseudocode * feat(manual/reverse-engineering-101): the-evidence-record * feat(manual/reverse-engineering-101): residual-unknowns-and-coverage * feat(manual/reverse-engineering-101): snapshots-and-the-answer-cache * feat(manual/reverse-engineering-101): evidence-bundles-export-and-import * feat(manual/reverse-engineering-101): compare-and-compare-functions * feat(manual/reverse-engineering-101): analyze-javascript-application * feat(manual/reverse-engineering-101): wasm-in-rea-6-4-0 * feat(manual/reverse-engineering-101): verify-reconstruction * feat(manual/reverse-engineering-101): a-proof-harness-outside-rea * feat(manual/reverse-engineering-101): the-rea-mcp-server * feat(manual/reverse-engineering-101): an-agent-investigation * feat(manual/reverse-engineering-101): reference sections * chore(phase-13): update lesson, skill, and hour counts for lessons 32 to 36 * docs(phase-13): plain statements in lessons 35 and 36 * chore(site): curriculum counts, skills page, and figure manifest for lessons 32 to 36 * fix(manual/reverse-engineering-101): list rea source files in each Sources line instead of the prose The published manuals cite with short {{key topic}} markers and name files once at the end of each section. Remove 262 inline path:line citations and the line-number table columns, and point every rea link at the rea-agents-6.4.0 tag. * fix(phase-13): move rea source citations out of lesson prose and link the release tag * chore(manual/reverse-engineering-101): keep research notes out of the repository The briefs, scrape output, and legal notes stay local. The rea documentation that the quote check reads moves to sources/rea/, and the sections cite public sources only. * fix(site): show the lesson count per phase, and progress only once a learner starts Every phase is complete, so done / total always read N / N. * docs(manual/reverse-engineering-101): show the full Evidence record once, short ids elsewhere Section 5.1, figure 5-1, and the field reference keep the full ids and digests. Every other section, figure, and the cover plate shows an 8-character prefix with operation, confidence, and limitation count. * feat(learning-paths): add the Reverse Engineering path and its tutor skill Phase 13 lessons 32 to 36 become a focused route with a manifest, the learn-reverse-engineering tutor, router handoffs, README entries, and a skills page card. * fix(site): bump the homepage script cache key for the new phase counter * feat(phase-13): add lesson 37 on the reverse engineering landscape, tool families, and decompiler pipelines * feat(phase-13): add lesson 38 on calling conventions and stack frames across three ABIs * feat(phase-13): add lesson 39 on compiler idioms and how to read optimized code back * feat(phase-13): add lesson 40 on linking, loading, and function identification in stripped binaries * feat(phase-13): add lesson 41 on struct, array, C++ object, and DWARF type recovery * feat(phase-13): add lesson 42 on dynamic analysis that confirms static claims * feat(phase-13): add lesson 43 on Python, JVM, .NET, and WebAssembly bytecode readers * feat(phase-13): add lesson 44 on binary diffing and symbolic execution * feat(phase-13): add lesson 45 on a ground-truth scorecard for AI-assisted reverse engineering * feat(projects): add Binary Inspector, a six-stage static inspector for ELF, PE, and Mach-O builds * feat(projects): add Mini Decompiler, an eight-stage decompiler that proves its output * chore: wire reverse engineering lessons 37 to 45 into the course, counts, and the learning path * fix(manual/reverse-engineering-101): drop an inline source path from section 2.1 * docs(i18n): add the reverse engineering lessons, path, and tutor to all 33 README translations * fix(phase-13): commit the lesson 43 pyc fixtures and run the lesson 45 live comparison only on a recorded host * chore(phase-13): de-bias quiz answer positions in lessons 32 to 45 * refactor(manual/reverse-engineering-101): stop vendoring rea documentation and cite it at the release tag * fix(phase-13): harden the reverse engineering lesson code from review - Lesson 36: send the rea MCP server stderr to /dev/null so --live cannot block on a full pipe. - Lesson 42: fall back to the committed DWARF dump when dwarfdump is not installed. - Lesson 43: check WebAssembly section order by canonical position (DataCount before Code, Tag between Memory and Global). - Lesson 44: skip relocations to undefined and SHN_ABS symbols in load_image. - Lesson 45: accept only shipped candidate ids, list them in the tool schema, answer non-object JSON with -32600, and run the lesson 36 .text check from the correct path. - Lessons 36 and 45: shorten the module headers to the 4 to 6 line contract. * fix(projects): bound the mini-decompiler differential driver run Add a timeout to the driver run and report a timeout as VerifyError so the behaviour leg is unknown. Build the input grid with itertools.product and islice; the first 400 cells do not change. The stage 8 starter gets the same driver timeout. * fix(manual/reverse-engineering-101): report a missing fixture build output as missing * fix(site): use the computed skill count in the social descriptions * fix(manual/reverse-engineering-101): decode timed-out command output in the capture kit subprocess.TimeoutExpired carries bytes in stdout and stderr even with text=True. Decode them with errors="replace" before the timeout note is appended. * fix(manual/reverse-engineering-101): cite headings and sources, and remove contrasts - Replace file:line quote keys with the heading that holds the quoted lines. - Remove file:line from four figure captions. Each file stays in the Sources line. - Section 3.4: cite the binary_overview and list_segments schemas for image_base. - Section 6.2: remove the citation of the research. - Rewrite the "X, not Y" sentences as plain statements. - Section 8.1: retitle the registration listing, credit the install docs, and list examples/ in the Files table. * fix(site): remove contrasts and an in-body comment from the reverse engineering figures Rewrite three figure strings in figures-re-35.js and figures-re-40.js as plain statements, and remove the row comment in figures-re-34.js. lesson.html picks up the new figure manifest hash. * docs: use the lesson titles for Phase 13 rows 32 to 45 and fix two counts - README Phase 13 rows 32 to 45 use the H1 title of each docs/en.md. - README and the 33 locale READMEs say 542 lessons in the goal paragraph. - ROADMAP lesson 36 is about 110 minutes. - Regenerate i18n/readme-source.sha256. * feat(manual/reverse-engineering-101): pin rea 6.5.0 and record the capture set again * fix(phase-13/34): record the Ghidra pseudocode fixtures again with rea 6.5.0 The pseudocode text is the same. The evidence ids and the analysis profile change, and each record has the new relationship_coverage field. * fix(phase-13/35): record the rea evidence fixtures again with rea 6.5.0 The record now has sixteen fields. The lesson describes relationship_coverage, the 25-key Ghidra profile, the new ids and query keys, rebindEvidenceToTargetPath, invalidation before dispatch, and the untrusted_content marker. Figure 35 uses the new grade id. * fix(phase-13/36): record the agent run again with rea 6.5.0 The three Evidence ids and the timing change. The lesson now counts 65 MCP tools without a CLI command, quotes a limitation the record holds, and names the three claim kinds of verify_reconstruction and its call-coverage rule. * fix(phase-13/32): cite rea 6.5.0 and correct three rea claims inventory_artifact is an internal operation, not a tool. A Ghidra file offset result has two fields. open_binary also takes a headerless raw-binary format. * fix(phase-13/33): cite rea 6.5.0 and name its objdump and Rizin integrations * fix(phase-13/41): cite rea 6.5.0 * fix(phase-13/44): cite rea 6.5.0 and place the relocation limitation on the assembly dimension * fix(phase-13/45): describe the rea 6.5.0 untrusted_content marker that the lesson server copies * docs(phase-13): name rea 6.5.0 as the manual pin * fix(manual/reverse-engineering-101): pin Parts 4 and 5 to rea 6.5.0 Sections 4.1 to 4.6 and 5.1 to 5.5 now cite rea 6.5.0 at 3b79af2 and quote the 6.5.0 capture: new ev_ ids, profile digest 966e6016, bundle digests and byte counts. - 4.1: raw-binary inputs, the WASM refusal, optional launcher arguments, and the heading Ghidra first-query deadlines and recovery. - 4.4 and 4.6: relationship_coverage, unresolved_calls, facet_availability, sixteen dossier facets, and the cut diagnostics of the error. - 5.1: sixteen Evidence fields, 28 formats, 8 architectures, and the id check that leaves a null relationship_coverage out of the hash. - 5.2: coverage states, eleven unknown rules, comparison_conclusion_scope, and list_unknowns paging. - 5.3: invalidation before dispatch, rebindEvidenceToTargetPath, the grouped binary_session listing, and 25 profile parameters. - 5.4 and 5.5: new digests and ids, and the exact-text limitation. - Figures 4.1, 4.8, and 5.1 to 5.6 rebuilt from updated sources. * feat(manual/reverse-engineering-101): re-pin Part 6 on rea 6.5.0 Section 6.1 takes the 6.5.0 graph counts (42 nodes, 59 edges), the source_paths input, the semantic node limits, and the new record id. Section 6.2 is rebuilt on the 6.5.0 capture as inspect-wasm-artifact and the WABT provider, under the anchor s-inspect-wasm-artifact, with a new flow figure 6.2. * feat(manual/reverse-engineering-101): re-pin Part 7 on rea 6.5.0 Sections 7.1 and 7.2 take the 6.5.0 record ids, the count of 65 MCP tools without a CLI command, the call-coverage input to the claim status, and the second fixed limitation on the text dimensions. Figure 7.1 shows the new ids. * feat(manual/reverse-engineering-101): re-pin Part 8 on rea 6.5.0 Section 8.1 takes 207 tools, the 6.5.0 initialize reply with the untrusted-content instruction, the new annotation counts, and the 6.5.0 timings. Section 8.2 now states that rea marks target content with _meta.provenance.untrusted_content, and the ledger reports relationship_coverage. Figures 8.1 to 8.4 show the new ids and times. * feat(manual/reverse-engineering-101): re-pin the reference on rea 6.5.0 R.1 takes the 6.5.0 counts and the WASM rows. R.2 lists 16 fields with relationship_coverage, 28 formats, and 8 architectures. R.3 keeps the two recorded error envelopes and the 6.5.0 retryable rule. R.4 and R.5 take the new pin, counts, and paths. * fix(manual/reverse-engineering-101): pin front matter and Parts 1 to 3 to rea 6.5.0 Front matter, the manual README, the capture README, the MCP registration example, and sections 1.1 to 3.4 now cite rea 6.5.0 at 3b79af2 and quote the 6.5.0 capture. - front.md, README.md: the 6.5.0 pin, WebAssembly, Go, raw-binary, and DISCLAIMER.md stated as release facts, and the WABT row. - capture/README.md: 6.5.0 pin, 207 tools, the wasm record, the binary_session cut, 42 graph nodes and 59 edges, 10 unresolved bundle records. - examples/mcp-registration.json: rea-agents@6.5.0. - 1.1 and 1.2: 16 Evidence fields with relationship_coverage, 153 commands, 207 tools, 16 bridge inventory methods, 8 architectures, new ids, digest 966e6016, and 25 profile parameters. - 2.1: the use rule quoted from DISCLAIMER.md, Responsible use. - 2.2: the JADX provider and the node check details. - 2.3: rewritten on the grouped capability output, the effect counts of the 6.5.0 capture, and the tools/list annotations. - 3.1 to 3.4: new ids, seven inspect-macho commands, one dependency, the target-source rule of address_to_file_offset, image_base and address_space, and workflow revision 3. - Figures 0.1, 1.1 to 1.3, 2.3, 2.4, 3.1, 3.2, and the plate rebuilt. * fix(manual/reverse-engineering-101): mask the provider process id in the capture check * chore(site): refresh the lesson figure manifest key after merging main | 4 天前 |
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 9 天前 | ||
| 12 天前 | ||
| 4 天前 |