AgentStack
Browse Sign in
Browse Why AgentStack Sell Docs
Sign in
SKILL verified MIT Self-run

Write Func As Yaml

skill-hlnd2t-cs2-vibesignatures-write-func-as-yaml · by HLND2T

Write function analysis results as YAML file beside the binary using IDA Pro MCP. Use this skill after completing function identification and signature generation to persist the results in a standardized YAML format. For virtual functions with known vtable index, use write-vfunc-as-yaml instead.

No reviews yet
0 installs
37 views
0.0% view→install

Install

$ agentstack add skill-hlnd2t-cs2-vibesignatures-write-func-as-yaml

✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.

Security review

✓ Passed

No 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.

View the full security report →

Verified badge

Passed review? Show it. Paste this badge into your README, it links to the public security report.

AgentStack Verified badge Links to your public security report.
[![AgentStack Verified](https://agentstack.voostack.com/badges/verified.svg)](https://agentstack.voostack.com/security/report/skill-hlnd2t-cs2-vibesignatures-write-func-as-yaml)

Reliability & compatibility

Security review passed
0 installs to date
no reviews yet
2mo ago

Declared compatibility

Claude CodeClaude Desktop

Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.

Preview Execution monitoring

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 →
Are you the author of Write Func As Yaml? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

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:

  1. Identified and renamed the target function
  2. 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.dllCBaseModelEntity_SetModel.windows.yaml
  • libserver.so / libserver.soCBaseModelEntity_SetModel.linux.yaml
  • engine2.dllCServerSideClient_IsHearingClient.windows.yaml
  • libengine2.soCServerSideClient_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 (uses idaapi.get_imagebase() for image base)
  • .so → Linux (uses 0x0 as 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-yaml instead

Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet, be the first.

Versions

  • v0.1.0 Imported from the upstream source.