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 CNetworkMessages GetNetworkSerializationContextData

ASecurity

Find and identify the CNetworkMessages_GetNetworkSerializationContextData virtual function in CS2 binary using IDA Pro MCP. Use this skill when reverse engineering CS2 networksystem.dll or libnetworksystem.so to locate the getter vfunc by reusing the known CNetworkMessages_SetNetworkSerializationContextData slot and checking the adjacent CNetworkMessages vtable entry. Trigger: CNetworkMessages_GetNetworkSerializationContextData

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-CNetworkMessages_GetNetworkSerializationContextData --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Find CNetworkMessages GetNetworkSerializationContextData?

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

Security grade badge for Find CNetworkMessages GetNetworkSerializationContextData
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/mrc4tt-find-cnetworkmessages-getnetworkserializationconte/badge)](https://www.skillsdirectory.com/skills/mrc4tt-find-cnetworkmessages-getnetworkserializationconte)

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

Download with Pro
Files
SKILL.md
---
name: find-CNetworkMessages_GetNetworkSerializationContextData
description: |
  Find and identify the CNetworkMessages_GetNetworkSerializationContextData virtual function in CS2 binary using IDA Pro MCP.
  Use this skill when reverse engineering CS2 networksystem.dll or libnetworksystem.so to locate the getter vfunc
  by reusing the known CNetworkMessages_SetNetworkSerializationContextData slot and checking the adjacent CNetworkMessages vtable entry.
  Trigger: CNetworkMessages_GetNetworkSerializationContextData
disable-model-invocation: true
---

# Find CNetworkMessages_GetNetworkSerializationContextData

Locate `CNetworkMessages_GetNetworkSerializationContextData` vfunc in CS2 `networksystem.dll` or `libnetworksystem.so` using IDA Pro MCP tools.

## Method

### 1. Load CNetworkMessages_SetNetworkSerializationContextData from YAML

**ALWAYS** Use SKILL `/get-func-from-yaml` with `func_name=CNetworkMessages_SetNetworkSerializationContextData`.

If the skill returns an error, **STOP** and report to user.

Otherwise, extract:
- `vfunc_index`
- `vfunc_offset`

### 2. Load CNetworkMessages VTable from YAML

**ALWAYS** Use SKILL `/get-vtable-from-yaml` with `class_name=CNetworkMessages`.

If the skill returns an error, **STOP** and report to user.

Otherwise, extract:
- `vtable_numvfunc`
- `vtable_entries`

### 3. Resolve the Adjacent Getter Slot

Compute the candidate slot for `CNetworkMessages_GetNetworkSerializationContextData`:

- `target_vfunc_index = CNetworkMessages_SetNetworkSerializationContextData.vfunc_index + 1`
- `target_vfunc_offset = CNetworkMessages_SetNetworkSerializationContextData.vfunc_offset + 8`

Validate that `target_vfunc_index < vtable_numvfunc`, then read:

- `candidate_func_addr = CNetworkMessages_vtable[target_vfunc_index]`

This adjacent-slot rule is required because `GetNetworkSerializationContextData` immediately follows
`SetNetworkSerializationContextData` in the `CNetworkMessages` vtable for `networksystem.dll` / `libnetworksystem.so`.

### 4. Decompile the Getter Candidate

Decompile the resolved adjacent entry:

```text
mcp__ida-pro-mcp__decompile addr="<candidate_func_addr>"
```

Confirm the candidate matches the network-serialization-context getter pattern.

Expected behavior:

1. Takes `(this, key_name)` arguments
2. Uses an internal lock around the lookup
3. Looks up `key_name` from the internal symbol table owned by `CNetworkMessages`
4. Returns the resolved 16-bit context value, or `0xFFFF` / `-1` when not found

Windows example shape:

```c
__int64 __fastcall CNetworkMessages_GetNetworkSerializationContextData(..., __int64 key_name)
{
  AcquireSRWLockExclusive(...);
  CUtlSymbolTable::Find(..., key_name);
  ...
  ReleaseSRWLockExclusive(...);
  return ...;
}
```

Linux example shape:

```c
__int64 __fastcall CNetworkMessages_GetNetworkSerializationContextData(__int64 thisptr, __int64 key_name)
{
  ...
  sub_176D10(..., thisptr + ..., key_name);
  ...
  return ...;
}
```

The exact helper names and structure offsets may change across game updates. The identification rule is:

1. The function is the next vtable entry after `SetNetworkSerializationContextData`
2. It performs a locked lookup from the `CNetworkMessages` serialization-context symbol table
3. It returns the resolved small integer context value instead of writing data into the object

If all three conditions hold, the candidate is `CNetworkMessages_GetNetworkSerializationContextData`.

### 5. Generate Function Signature

**ALWAYS** Use SKILL `/generate-signature-for-function` with `addr=<candidate_func_addr>` to generate a robust and unique `func_sig` for `CNetworkMessages_GetNetworkSerializationContextData`.

Use the returned validated `func_sig` in the next step.

### 6. Write IDA Analysis Output as YAML

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

Required parameters:
- `func_name`: `CNetworkMessages_GetNetworkSerializationContextData`
- `func_addr`: `<candidate_func_addr>`
- `func_sig`: The validated signature from step 5
- `vfunc_sig`: `None`

VTable parameters:
- `vtable_name`: `CNetworkMessages`
- `vfunc_offset`: `<target_vfunc_offset>` in hex
- `vfunc_index`: `<target_vfunc_index>`

## Function Characteristics

- **Purpose**: Returns the network serialization context id associated with a key name from the `CNetworkMessages` symbol table
- **Binary**: `networksystem.dll` / `libnetworksystem.so`
- **Parameters**: `(this, key_name)`
- **Return value**: A small integer / symbol id for the serialization context, typically `0xFFFF` when the key is not found

## Discovery Strategy

1. Reuse the existing `CNetworkMessages_SetNetworkSerializationContextData` YAML to obtain the authoritative slot index
2. Reuse the existing `CNetworkMessages_vtable` YAML to resolve the adjacent vtable entry
3. Confirm the adjacent candidate is a locked symbol-table lookup getter for serialization-context data
4. Generate a stable `func_sig` from the resolved getter body

This is robust because:
- The vtable adjacency between setter and getter is explicit
- The getter has a distinctive locked symbol-table lookup structure on both Windows and Linux
- The final YAML stores both the function signature and the precise vtable metadata

## Output YAML Format

The output YAML filename depends on the platform:
- `networksystem.dll` -> `CNetworkMessages_GetNetworkSerializationContextData.windows.yaml`
- `libnetworksystem.so` -> `CNetworkMessages_GetNetworkSerializationContextData.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 →