Install
$ agentstack add skill-hlnd2t-cs2-vibesignatures-write-func-as-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.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
Write Function IDA Analysis Output as YAML
Persist function analysis results to a YAML file beside the binary using IDA Pro MCP.
Prerequisites
Before using this skill, you should have:
- Identified and renamed the target function
- Generated a unique signature using
/generate-signature-for-function
Required Parameters
| Parameter | Description | Example | |-----------|-------------|---------| | func_name | Name of the function | CBaseModelEntity_SetModel | | func_addr | Virtual address of the function | 0x180A8CA10 | | func_sig | Unique byte signature | 41 B8 80 00 00 00 48 8D 99 10 05 00 00 |
Method
mcp__ida-pro-mcp__py_eval code="""
import idaapi
import os
import yaml
# === REQUIRED: Replace these values ===
func_name = "" # e.g., "CBaseModelEntity_SetModel"
func_addr = # e.g., 0x180A8CA10
func_sig = "" # e.g., "41 B8 80 00 00 00"
# ======================================
# Get function size
func = idaapi.get_func(func_addr)
func_size = func.size() if func else 0
# Get binary path and determine platform
input_file = idaapi.get_input_file_path()
dir_path = os.path.dirname(input_file)
if input_file.endswith('.dll'):
platform = 'windows'
image_base = idaapi.get_imagebase()
else:
platform = 'linux'
image_base = 0x0
func_rva = func_addr - image_base
data = {
'func_name': func_name,
'func_va': hex(func_addr),
'func_rva': hex(func_rva),
'func_size': hex(func_size),
'func_sig': func_sig,
}
yaml_path = os.path.join(dir_path, f"{func_name}.{platform}.yaml")
with open(yaml_path, 'w', encoding='utf-8') as f:
yaml.dump(data, f, default_flow_style=False, sort_keys=False)
print(f"Written to: {yaml_path}")
"""
Output File Naming Convention
The output YAML filename follows this pattern:
..yaml
Examples:
server.dll→CBaseModelEntity_SetModel.windows.yamllibserver.so/libserver.so→CBaseModelEntity_SetModel.linux.yaml
engine2.dll→CServerSideClient_IsHearingClient.windows.yamllibengine2.so→CServerSideClient_IsHearingClient.linux.yaml
Output YAML Format
func_name: CBaseModelEntity_SetModel
func_va: 0x180A8CA10 # Virtual address - changes with game updates
func_rva: 0xA8CA10 # Relative virtual address (VA - image base) - changes with game updates
func_size: 0x3F # Function size in bytes - changes with game updates
func_sig: 41 B8 80 00 00 00 48 8D 99 10 05 00 00 # Unique byte signature
Platform Detection
The skill automatically detects the platform based on file extension:
.dll→ Windows (usesidaapi.get_imagebase()for image base).so→ Linux (uses0x0as image base)
Notes
- All values marked "changes with game updates" should be regenerated when analyzing new binary versions
- The YAML file is written to the same directory as the input binary
- func_size is automatically calculated from IDA's function analysis
- func_rva is automatically calculated as
func_va - image_base - For virtual functions with vtable information, use
/write-vfunc-as-yamlinstead
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.