Find CNetworkMessagesGetNetworkSerializationContextData
SkillCommunicationFind 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
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the Find CNetworkMessagesGetNetworkSerializationContextData skill
What this skill tells your AI
The instructions your AI receives, as published by hlnd2t/cs2_vibesignatures in .claude/skills/find-CNetworkMessages_GetNetworkSerializationContextData/SKILL.md and read by ahel’s review.
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_indexvfunc_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_numvfuncvtable_entries
3. Resolve the Adjacent Getter Slot
Compute the candidate slot for CNetworkMessages_GetNetworkSerializationContextData:
target_vfunc_index = CNetworkMessages_SetNetworkSerializationContextData.vfunc_index + 1target_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:
mcp__ida-pro-mcp__decompile addr="<candidate_func_addr>"
Confirm the candidate matches the network-serialization-context getter pattern.
Expected behavior:
- Takes
(this, key_name)arguments - Uses an internal lock around the lookup
- Looks up
key_namefrom the internal symbol table owned byCNetworkMessages - Returns the resolved 16-bit context value, or
0xFFFF/-1when not found
Windows example shape:
__int64 __fastcall CNetworkMessages_GetNetworkSerializationContextData(..., __int64 key_name)
{
AcquireSRWLockExclusive(...);
CUtlSymbolTable::Find(..., key_name);
...
ReleaseSRWLockExclusive(...);
return ...;
}
Linux example shape:
__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:
- The function is the next vtable entry after
SetNetworkSerializationContextData - It performs a locked lookup from the
CNetworkMessagesserialization-context symbol table - 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_GetNetworkSerializationContextDatafunc_addr:<candidate_func_addr>func_sig: The validated signature from step 5vfunc_sig:None
VTable parameters:
vtable_name:CNetworkMessagesvfunc_offset:<target_vfunc_offset>in hexvfunc_index:<target_vfunc_index>
Function Characteristics
- Purpose: Returns the network serialization context id associated with a key name from the
CNetworkMessagessymbol table - Binary:
networksystem.dll/libnetworksystem.so - Parameters:
(this, key_name) - Return value: A small integer / symbol id for the serialization context, typically
0xFFFFwhen the key is not found
Discovery Strategy
- Reuse the existing
CNetworkMessages_SetNetworkSerializationContextDataYAML to obtain the authoritative slot index - Reuse the existing
CNetworkMessages_vtableYAML to resolve the adjacent vtable entry - Confirm the adjacent candidate is a locked symbol-table lookup getter for serialization-context data
- Generate a stable
func_sigfrom 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.yamllibnetworksystem.so->CNetworkMessages_GetNetworkSerializationContextData.linux.yaml
Signals
- GitHub stars
- 65
- Forks
- 10
- Last commit
- Sep 2026
Advanced
- Catalog kind
- skill
- Gateway key
find-cnetworkmessages-getnetworkserializationcontextdata- Source
- github.com/hlnd2t/cs2_vibesignatures