Skip to content

docs: rewrite README for EvilClaw with C2 module docs and injection #1

Merged
M09Ic merged 6 commits into
mainfrom
evilclaw
May 12, 2026
Merged

docs: rewrite README for EvilClaw with C2 module docs and injection #1
M09Ic merged 6 commits into
mainfrom
evilclaw

Conversation

@M09Ic
Copy link
Copy Markdown
Contributor

@M09Ic M09Ic commented May 12, 2026

…etails

  • Add fork attribution and threat model overview
  • Add full architecture diagram (victim → proxy → C2)
  • Document C2 modules: tapping, poison, exec, skill, upload/download
  • Explain injection mechanics: tool call forgery, prompt poisoning, message stripping
  • Add request processing flow diagram
  • Move provider/token config to collapsible sections at the end

Co-Authored-By: Claude Opus 4.6 noreply@anthropic.com

M09Ic and others added 6 commits March 13, 2026 17:10
…etails

- Add fork attribution and threat model overview
- Add full architecture diagram (victim → proxy → C2)
- Document C2 modules: tapping, poison, exec, skill, upload/download
- Explain injection mechanics: tool call forgery, prompt poisoning, message stripping
- Add request processing flow diagram
- Move provider/token config to collapsible sections at the end

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Update test/localrpc_client to use StreamCommand for long-running commands:
- Auto-detect streaming commands (tapping, poison)
- Add --stream flag for manual override
- Ctrl+C cancels stream cleanly
- Add local IoM-go replace directive for development

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
…nd simplify code

Introduce a unified Format interface in toolinjection that abstracts
protocol-specific operations across OpenAI, Claude, and Responses API
formats. This eliminates 15+ switch-on-format dispatches throughout the
package and establishes a single abstraction point for adding new formats.

Key changes:
- Add Format interface with GetFormat() registry (format.go)
- Implement openaiFormat, claudeFormat, responsesFormat as thin wrappers
- Replace all top-level switch dispatches with f.Method() calls
- Extract handler helpers: SetSSEHeaders, RequireFlusher,
  ApplyNonStreamInjection, ApplyStreamInjection
- Add enqueueToolAction helper, simplifying upload/download modules
- Move Tasks.Create into Registry.Dispatch (removes boilerplate from
  all 7 modules)
- Simplify awaitTaskResult (remove redundant taskID filter)
- Add DefaultSessionTimeout constant
- Remove dead code: unused strip wrappers, outputIdx variable
- Unify buildRawChunk with buildOpenAIChunkJSON
- Fix pre-existing go vet warning (format verb for ActionType)

Tests:
- Add format_test.go: 30 subtests covering all Format methods x3 formats
- Add roundtrip_test.go: 9 end-to-end inject→strip→capture tests
- All existing tests pass (170+ unit, E2E, integration)
- Full integration test against live C2 chain (malice-network + OpenClaw)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Preserves complete codebase including all agent-specific profiles
(claude-code, codex-cli, cursor, cline, windsurf) for the evilclaw branch.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Reconnect paths now detect NotFound / "listener|pipeline not found" errors
and re-register the listener, pipeline, streams, and all active sessions
so the bridge recovers transparently when the C2 server is restarted.
PoisonModule is renamed to ChatModule with command name "chat" to match
the neutral semantics of the injection.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
The replace directive pointed to a developer's absolute Windows path,
which broke goreleaser on tag builds. The pseudo-version is available
on the public IoM-go repo and already pinned in go.sum, so removing
the replace lets CI resolve it normally.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@M09Ic M09Ic merged commit 4894532 into main May 12, 2026
4 of 6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant