Skills DirectorySkills Directory
SkillsLearnSecurityCategoriesDocsCommunityBlog
Sign InSubmit Skill
Skills Directory

Security-tested agent skills for Claude, coding agents, and AI workflows.

Directory

  • Browse Skills
  • All Skills A–Z
  • Claude Skills
  • Claude Code Skills
  • Agent Skills
  • Categories
  • Authors
  • Submit a Skill

Learn

  • Learn Hub
  • Install Claude Skills
  • Write SKILL.md
  • Skills vs MCP
  • Directories Compared

Security

  • Security
  • Methodology
  • Secure Claude Skills
  • Security Badges

Company

  • About
  • Community
  • Blog
  • API Docs
  • Advertise

2026 Skills Directory. All rights reserved.

ProTermsPrivacyRefunds
Back to skills

Find Host Say

ASecurity

Find and identify the Host_Say function in the CS2 server binary using IDA Pro MCP. Use this skill when reverse engineering CS2 server.dll or libserver.so to locate the chat-broadcast/say-command handler by finding the code that references the console chat-relay log format string "%s %s @ %s: ". Trigger: Host_Say

3 stars
0 votes
0 copies
0 views
Added 9/27/2026
toolsrefactoring

Works with

climcp

Security Analysis

A100/100

Scanned 9/27/2026

Install to Claude Code

$npx -y skills add mrc4tt/CS2_VibeSignatures --skill find-Host_Say --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Find Host Say?

Add the live security badge to your README — it updates automatically with every re-scan.

Security grade badge for Find Host Say
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/mrc4tt-find-host-say/badge)](https://www.skillsdirectory.com/skills/mrc4tt-find-host-say)

More formats (shields.io, HTML) on the badges page.

Download with Pro
Files
SKILL.md
---
name: find-Host_Say
description: |
  Find and identify the Host_Say function in the CS2 server binary using IDA Pro MCP. Use this skill when
  reverse engineering CS2 server.dll or libserver.so to locate the chat-broadcast/say-command handler by finding
  the code that references the console chat-relay log format string "%s %s @ %s: ".
  Trigger: Host_Say
disable-model-invocation: true
---

# Find Host_Say

Locate `Host_Say` in CS2 `server.dll` / `libserver.so` using IDA Pro MCP tools.

## Method

### 1. Find the Chat-Relay Format String

```text
mcp__ida-pro-mcp__find_regex pattern="%s %s @ %s:"
```

`Host_Say` logs every broadcast chat message to the console/log using a format string of the shape
`"%s %s @ %s: "` (e.g. `"<player> say[_team]* @ <lobby/lobbyid>: "`-style console relay tag), which is unique in
the binary.

> Linux 14168 reference: the string `"%s %s @ %s: "` is at `0x91b835`.

### 2. Get the Referencing Function

```text
mcp__ida-pro-mcp__xrefs_to addr="0x91b835"
```

The string has exactly one xref; its containing function is `Host_Say`.

> Linux 14168 reference: `0x91b835` is referenced from `0x17ece73`, inside the function starting at `0x17ec540`
> (size `0xa0e`).

### 3. Sanity-Check the Candidate

```text
mcp__ida-pro-mcp__decompile addr="0x17ec540"
```

Confirm the decompilation is consistent with `Host_Say`'s known role: takes a client/command-context pointer, a
parsed command-args structure, and flags distinguishing team-say from all-chat; builds/sanitizes the chat text,
applies mute/gag and dead-talk restrictions, then relays the formatted message to the console and to recipients
via the networking layer.

### 4. Generate Function Signature

**ALWAYS** Use SKILL `/generate-signature-for-function` with `addr=0x17ec540` to generate a robust and unique
`func_sig`.

> Linux 14168 reference: generated signature is `55 48 89 E5 41 57 49 89 F7 41 56 41 55 41 89 D5` — already
> unique across the binary at this length.

### 5. Write IDA Analysis Output as YAML

**ALWAYS** Use SKILL `/write-func-as-yaml` to write the analysis results.

Required parameters:
- `func_name`: `Host_Say`
- `func_addr`: `0x17ec540`
- `func_sig`: The validated signature from step 4

## Function Characteristics

- **Purpose**: Handles the `say`/`say_team` command path — validates/sanitizes chat text, applies mute/gag and
  dead-talk rules, and relays the message to the console log and to the appropriate set of recipients.
- **Binary**: `server.dll` / `libserver.so`
- **Parameters**: `(unsigned __int8 *pEntityOrClient, int *pArgsOrCookie, unsigned __int8 bTeamOnly, unsigned int
  a4, __int64 a5)` (observed decompiled shape; exact semantic naming of the trailing parameters is not confirmed
  beyond "command context/flags").
- **Return value**: `void`.

## Discovery Strategy

1. `Host_Say` unconditionally logs each processed chat message using the distinctive format string
   `"%s %s @ %s: "`, which does not appear anywhere else in the binary.
2. The string has a single xref, so its containing function is unambiguous.
3. The candidate's parameter shape (client/command context + team-only flag) and body (text sanitization, mute
   checks, console relay) match `Host_Say`'s known behavior.

This is robust because the anchor string is a literal, verbatim format string that survives recompilation and
refactoring as long as the log format itself is unchanged, and it has a single unambiguous xref.

## Output YAML Format

The output YAML filename depends on the platform:
- `server.dll` -> `Host_Say.windows.yaml`
- `libserver.so` -> `Host_Say.linux.yaml`

Fields: `func_name`, `func_va`, `func_rva`, `func_size`, `func_sig`.

Attribution

mrc4ttmrc4tt
View sourceMore from mrc4tt →
SSkills DirectorySkills Directory

Know which skills are safe — weekly.

Best new skills + every skill we flagged as malicious. From the team that scanned 103,619.

Join free

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments (0)

No comments yet. Be the first to comment!

SSkills DirectorySkills Directory

Know which skills are safe — weekly.

Best new skills + every skill we flagged as malicious. From the team that scanned 103,619.

Join free

Related Skills

ucoz-landing-skill

Playbook for creating and editing uCoz landing pages via MCP tools (`templates_tool`, `ftp_tool`, `modules_tool`). Use for tasks such as: "build a landing page", "update the homepage as a landing page", "create a promo page on the homepage", "add a lead form / menu / SEO to the homepage". Homepage: `page_list`, `page_get`; first publish — `page_update` with full `page_tmpl`; HTML edits after generation — `patch_template` (module_id=2, template_id=1), not `update_template`. Activate the mail f...

107 votes

Paperclip

Interact with the Paperclip control plane API for task coordination and governance. Use when checking assignments, updating issue status, posting comments, delegating work, managing routines, or calling Paperclip API endpoints.

813271 votes

Instantly Rdsthomas Mission Control

Instantly.ai cold email outreach API - manage campaigns, leads, accounts, and analytics. Use for cold email automation, lead management, campaign creation/monitoring, and email account warmup.

761 votes

Daw Music

Digital Audio Workstation usage, music composition, interactive music systems, and game audio implementation for immersive soundscapes.

761 votes

Caveman Compress

Compress natural language memory files (CLAUDE.md, todos, preferences) into caveman format to save input tokens. Preserves all technical substance, code, URLs, and structure. Compressed version overwrites the original file. Human-readable backup saved as FILE.original.md. Trigger: /caveman-compress FILEPATH or "compress memory file"

1074700 votes
View all in tools →