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 CCSNavArea IsValidNavMesh

ASecurity

Find and identify the CCSNavArea_IsValidNavMesh function in CS2 server binary using IDA Pro MCP. Use this skill when reverse engineering CS2 server.dll or libserver.so to locate the nav-mesh validity predicate. It is a tiny non-virtual-looking helper that returns `g_pNavMesh != nullptr` (15 bytes), referenced only from a vtable slot, with no debug string of its own. Emits a unique IDA-style byte signature and a func YAML. Mirrors the find-CCSNavArea_IsValidNavMesh.py preprocessor (xref_gvs g_...

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

Works with

mcp

Security Analysis

A100/100

Scanned 9/27/2026

Install to Claude Code

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

Installs into .claude/skills of the current project.

Are you the author of Find CCSNavArea IsValidNavMesh?

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

Security grade badge for Find CCSNavArea IsValidNavMesh
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/mrc4tt-find-ccsnavarea-isvalidnavmesh/badge)](https://www.skillsdirectory.com/skills/mrc4tt-find-ccsnavarea-isvalidnavmesh)

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

Download with Pro
Files
SKILL.md
---
name: find-CCSNavArea_IsValidNavMesh
description: |
  Find and identify the CCSNavArea_IsValidNavMesh function in CS2 server binary using IDA Pro MCP.
  Use this skill when reverse engineering CS2 server.dll or libserver.so to locate the nav-mesh
  validity predicate. It is a tiny non-virtual-looking helper that returns `g_pNavMesh != nullptr`
  (15 bytes), referenced only from a vtable slot, with no debug string of its own. Emits a unique
  IDA-style byte signature and a func YAML. Mirrors the find-CCSNavArea_IsValidNavMesh.py
  preprocessor (xref_gvs g_pNavMesh intersected with the tail signature `48 83 38 ? 0F 95 C0 C3`).
  Trigger: CCSNavArea_IsValidNavMesh, IsValidNavMesh, g_pNavMesh predicate
disable-model-invocation: true
---

# Find CCSNavArea_IsValidNavMesh

Locate `CCSNavArea_IsValidNavMesh` in CS2 `server.dll` or `libserver.so` using IDA Pro MCP tools.

This is a **direct-call** predicate (emit a byte sig, not an offset). The whole body is 15 bytes:

```
lea     rax, g_pNavMesh
cmp     qword ptr [rax], 0
setnz   al
retn
```

i.e. `return g_pNavMesh != nullptr`. It has **no debug string**, and `g_pNavMesh` has 200+
referencers, so neither anchors it alone.

**Primary resolution = the tail byte pattern** `48 83 38 ? 0F 95 C0 C3`
(`cmp [rax],0 ; setnz al ; retn`), which is **unique in `.text`**. Intersecting it with a
`g_pNavMesh` reference keeps it robust if the tail ever recurs after an update.

## Method

### 1. Reuse previous signature (fast path)

If a prior `CCSNavArea_IsValidNavMesh.{platform}.yaml` exists, try its `func_sig` via
`mcp__ida-pro-mcp__find_bytes`. Single match → resolve to function start, skip to Step 4. Else continue.

### 2. Locate via the unique tail pattern

```
mcp__ida-pro-mcp__find_bytes      patterns="48 83 38 ?? 0F 95 C0 C3"
```

Exactly one match. Resolve the containing function start (`mcp__ida-pro-mcp__lookup_funcs`) —
that function is `CCSNavArea_IsValidNavMesh`. Optionally rename it.

### 3. Confirm (optional)

Decompile and confirm the body is `return g_pNavMesh != 0;` — a single `lea` to the `g_pNavMesh`
global, a `cmp [rax], 0`, `setnz al`, `retn`.

### 4. Generate signature

**ALWAYS** use SKILL `/generate-signature-for-function` with `addr=<func_addr>`. Emit IDA style
verbatim (space hex, `?` wildcards).

Reference sig (build 14165 — sanity check only, regenerate per binary):
- linux: `48 8D 05 ? ? ? ? 48 83 38 ? 0F 95 C0 C3`

### 5. Write func YAML

**ALWAYS** use SKILL `/write-func-as-yaml`:
- `func_name`: `CCSNavArea_IsValidNavMesh`
- `func_addr`: `<func_addr>`
- `func_sig`: validated sig from step 4

## Function Characteristics

- **Linkage**: direct-call predicate, referenced from a vtable slot (no string referencer)
- **Binary**: `server.dll` / `libserver.so`
- **Distinguishing trait**: unique tail `48 83 38 ? 0F 95 C0 C3`; reads the `g_pNavMesh` global

## Discovery Strategy (why this is stable across updates)

The body is the minimal "global non-null" predicate, so its byte sig is the whole function and
self-heals once re-resolved. The tail `cmp [rax],0 ; setnz al ; retn` is unique in `.text`;
intersecting with a `g_pNavMesh` reference disambiguates if the tail ever recurs.

## Preprocessor pipeline equivalent

```
find-CCSNavArea_IsValidNavMesh   [xref_gvs g_pNavMesh ∩ xref_signatures "48 83 38 ? 0F 95 C0 C3"]
```

## Output YAML Format

- `server.dll`   -> `CCSNavArea_IsValidNavMesh.windows.yaml`
- `libserver.so` -> `CCSNavArea_IsValidNavMesh.linux.yaml`

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 →