Skip to content
Back to skills

215 Name Skill 57199ae8

ASecurity

Find and identify the CEntityIdentity_SetEntityName function in CS2 binary using IDA Pro MCP. Use this skill when reverse engineering CS2 server.dll or libserver.so to locate the SetEntityName function on CEntityIdentity, which sets the targetname of an entity. Triggers: CEntityIdentity_SetEntityName, SetEntityName, entity name, set entity name

  • 9 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added October 11, 2026
devops

Works with

  • mcp

Security analysis

A100/100

Pro scans all 2 files and shows the line behind each finding

Scanned October 11, 2026

npx -y skills add tools-only/X-Skills --skill 215-name-skill_57199ae8 --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of 215 Name Skill 57199ae8?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for 215 Name Skill 57199ae8
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/tools-only-215-name-skill-57199ae8/badge)](https://www.skillsdirectory.com/skills/tools-only-215-name-skill-57199ae8)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: find-CEntityIdentity_SetEntityName
description: |
  Find and identify the CEntityIdentity_SetEntityName function in CS2 binary using IDA Pro MCP.
  Use this skill when reverse engineering CS2 server.dll or libserver.so to locate the SetEntityName function
  on CEntityIdentity, which sets the targetname of an entity.
  Triggers: CEntityIdentity_SetEntityName, SetEntityName, entity name, set entity name
disable-model-invocation: true
---

# CEntityIdentity_SetEntityName Function Location Workflow

## Overview

This workflow locates `CEntityIdentity_SetEntityName` in CS2 server binary files. This function sets the targetname (entity name) on a `CEntityIdentity` object. It is called from a V8 script binding wrapper that logs `"Entity"` / `"SetEntityName"`.

## Location Steps

### 1. Search for Signature Strings

Use `find_regex` to search for the `SetEntityName` string:

```
mcp__ida-pro-mcp__find_regex(pattern="SetEntityName")
```

Expected result: Find string addresses containing `"SetEntityName"`.

### 2. Find Cross-References

Use `xrefs_to` to find locations that reference the `"SetEntityName"` string:

```
mcp__ida-pro-mcp__xrefs_to(addrs="<string_addr>")
```

Expected result: Find the V8 binding wrapper function that references `"SetEntityName"` multiple times alongside `"Entity"`.

### 3. Decompile the V8 Binding Wrapper

Decompile the function found in step 2 and locate the following code pattern:

```c
if ( *(int *)(a1 + 16) >= 1 )
{
    v16 = 0LL;
    if ( (unsigned __int8)sub_XXXXX(v17) )
    {
      v14 = byte_XXXXX;
      if ( v16 )
        v14 = v16;
      sub_XXXXX(*(_QWORD *)(v13 + 16), (__int64)v14);  // <-- This is CEntityIdentity_SetEntityName
    }
    else if ( (unsigned __int8)LoggingSystem_IsChannelEnabled(...) )
    {
      LoggingSystem_Log(..., "Method %s.%s invoked with bad %s value. (parameter #%d)\n",
        "Entity", "SetEntityName", "name", 0);
    }
}
else if ( (unsigned __int8)LoggingSystem_IsChannelEnabled(...) )
{
    LoggingSystem_Log(..., "Method %s.%s requires %d argument(s), %s.",
      "Entity", "SetEntityName", 1, "(name: string)");
}
```

Key identification: `CEntityIdentity_SetEntityName` is the call `sub_XXXXX(*(_QWORD *)(v13 + 16), v14)` that takes **2 parameters** — the entity identity pointer (obtained via `*(_QWORD *)(v13 + 16)`) and the name string. It appears inside the success branch after the V8 argument validation, right before the bad-value error log that mentions `"name"` as parameter #0.

### 4. Rename Function

Use `rename` to give the function a meaningful name:

```
mcp__ida-pro-mcp__rename(batch={"func": {"addr": "<SetEntityName_func_addr>", "name": "CEntityIdentity_SetEntityName"}})
```

### 5. Generate and Validate Unique Signature

**ALWAYS** Use SKILL `/generate-signature-for-function` to generate a robust and unique signature for the function.

### 6. Write IDA Analysis Output as YAML

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

Required parameters:
- `func_name`: `CEntityIdentity_SetEntityName`
- `func_addr`: The function address from step 3
- `func_sig`: The validated signature from step 5

## Function Characteristics

The `CEntityIdentity_SetEntityName` function:

- Is **not** a virtual function (no vtable lookup needed)
- Takes 2 parameters: `(CEntityIdentity* identity, const char* name)`
- Is called from a V8 script binding wrapper that logs `"Entity"` / `"SetEntityName"`
- The first argument is the entity identity pointer accessed via `*(_QWORD *)(entity + 16)` (offset 0x10 from the entity instance)
- The wrapper also references the argument descriptor string `"(name: string)"`

## Output YAML Format

The output YAML filename depends on the platform:
- `server.dll` → `CEntityIdentity_SetEntityName.windows.yaml`
- `libserver.so` / `libserver.so` → `CEntityIdentity_SetEntityName.linux.yaml`

Files in this skill

  • README.md1 KB
  • skill.md3.8 KB

Attribution

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

Loading comments…