Install
$ agentstack add skill-hlnd2t-cs2-vibesignatures-get-vtable-from-yaml ✓ scanned · ✓ verified — works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ● Filesystem access Used
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
About
Get VTable from YAML
Load vtable information from a pre-generated {class_name}_vtable.{platform}.yaml file beside the binary.
Parameters
class_name: The class name to look up (e.g.,CCSPlayerController,CCSPlayer_WeaponServices,CServerSideClient)
Method
1. Check and Load VTable YAML
Run the following code with the appropriate class_name:
mcp__ida-pro-mcp__py_eval code="""
import idaapi
import os
class_name = "" # Replace with actual class name
input_file = idaapi.get_input_file_path()
dir_path = os.path.dirname(input_file)
platform = 'windows' if input_file.endswith('.dll') else 'linux'
yaml_path = os.path.join(dir_path, f"{class_name}_vtable.{platform}.yaml")
if os.path.exists(yaml_path):
with open(yaml_path, 'r', encoding='utf-8') as f:
print(f.read())
print(f"YAML_EXISTS: True")
else:
print(f"ERROR: Required file {class_name}_vtable.{platform}.yaml not found.")
"""
2. Handle Result
If YAML exists (YAML_EXISTS: True), extract these values from the output:
vtable_va: The vtable virtual address (use as ``)vtable_rva: The vtable relative virtual addressvtable_size: The vtable size in bytesvtable_numvfunc: The valid vtable entry count (last valid index = count - 1)vtable_entries: An array of virtual functions starting from vtable[0].
Example YAML content:
vtable_class: CCSPlayerController
vtable_symbol: _ZTV19CCSPlayerController
vtable_va: 0x221fc80
vtable_rva: 0x221fc80
vtable_size: 0xd60
vtable_numvfunc: 428
vtable_entries:
- 0x9b4bb0
- 0x9b4bc0
- 0x9b4bd0
If YAML does NOT exist, ERROR OUT and report to user:
ERROR: Required file {class_name}_vtable.{platform}.yaml not found.
Please run `/write-vtable-as-yaml` with class_name={class_name} first to generate the vtable YAML file.
Do NOT proceed with any remaining steps in the calling skill.
Usage in Other Skills
When a skill needs vtable information, use this skill first:
### 1. Get {ClassName} VTable Address
**ALWAYS** Use SKILL `/get-vtable-from-yaml` with `class_name={ClassName}`.
If the skill returns an error, stop and report to user.
Otherwise, extract `vtable_va`, `vtable_numvfunc` and `vtable_entries` for subsequent steps.
Expected Output Values
| Field | Description | Example | |-------|-------------|---------| | vtable_class | Class name | CCSPlayerController | | vtable_va | Virtual address of vtable | 0x2114cd0 | | vtable_rva | Relative virtual address | 0x2114cd0 | | vtable_size | Size in bytes | 0xd60 | | vtable_numvfunc | Number of virtual functions | 428 | | vtable_entries | An array of virtual functions starting from vtable[0] | ... |
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: HLND2T
- Source: HLND2T/CS2_VibeSignatures
- License: MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet — be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.