Skills DirectorySkills Directory
SkillsLearnSecurityCategoriesDocsCommunityBlog
Sign InSubmit Skill
Skills Directory

Security-tested agent skills for Claude, coding agents, and AI workflows.

Directory

  • Browse Skills
  • All Skills A–Z
  • Claude Skills
  • Claude Code Skills
  • Agent Skills
  • Categories
  • Authors
  • Submit a Skill

Learn

  • Learn Hub
  • Install Claude Skills
  • Write SKILL.md
  • Skills vs MCP
  • Directories Compared

Security

  • Security
  • Methodology
  • Secure Claude Skills
  • Security Badges

Company

  • About
  • Community
  • Blog
  • API Docs
  • Advertise

2026 Skills Directory. All rights reserved.

ProTermsPrivacyRefunds
Back to skills

Find CCSGameRules TerminateRound

ASecurity

Find and identify the CCSGameRules::TerminateRound function in the CS2 server binary using IDA Pro MCP. Use this skill when reverse engineering CS2 server.dll or libserver.so to locate the round-end-processing function by finding the code that references both the bare "TerminateRound" debug tag string and the "TerminateRound: unknown round end ID %i\n" warning-format string — both are referenced from the same function. Trigger: CCSGameRules_TerminateRound

3 stars
0 votes
0 copies
0 views
Added 9/27/2026
code-qualityrefactoring

Works with

mcp

Security Analysis

A100/100

Scanned 9/27/2026

Install to Claude Code

$npx -y skills add mrc4tt/CS2_VibeSignatures --skill find-CCSGameRules_TerminateRound --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Find CCSGameRules TerminateRound?

Add the live security badge to your README — it updates automatically with every re-scan.

Security grade badge for Find CCSGameRules TerminateRound
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/mrc4tt-find-ccsgamerules-terminateround/badge)](https://www.skillsdirectory.com/skills/mrc4tt-find-ccsgamerules-terminateround)

More formats (shields.io, HTML) on the badges page.

Download with Pro
Files
SKILL.md
---
name: find-CCSGameRules_TerminateRound
description: |
  Find and identify the CCSGameRules::TerminateRound function in the CS2 server binary using IDA Pro MCP.
  Use this skill when reverse engineering CS2 server.dll or libserver.so to locate the round-end-processing
  function by finding the code that references both the bare "TerminateRound" debug tag string and the
  "TerminateRound: unknown round end ID %i\n" warning-format string — both are referenced from the same function.
  Trigger: CCSGameRules_TerminateRound
disable-model-invocation: true
---

# Find CCSGameRules_TerminateRound

Locate `CCSGameRules::TerminateRound` in CS2 `server.dll` / `libserver.so` using IDA Pro MCP tools.

## Method

### 1. Find the TerminateRound Strings

```text
mcp__ida-pro-mcp__find_regex pattern="TerminateRound"
```

There are exactly two hits:
- A bare `"TerminateRound"` string (a debug/log tag, e.g. used in a `Msg`/`net_showmsg`-style trace of the
  function name).
- `"TerminateRound: unknown round end ID %i\n"` — a warning format string printed when an invalid round-end
  reason id is passed in.

### 2. Get the Referencing Function for Both Strings

```text
mcp__ida-pro-mcp__xrefs_to addr="<bare_TerminateRound_string_addr>"
mcp__ida-pro-mcp__xrefs_to addr="<unknown_round_end_ID_string_addr>"
```

Both strings are referenced from the exact same function — this agreement is the primary confirmation signal
(two independent strings converging on one function is very unlikely to be a coincidence).

> Linux 14168 reference: bare `"TerminateRound"` is at `0x8edd6c`, referenced from `0x138538b`;
> `"TerminateRound: unknown round end ID %i\n"` is at `0x989d78`, referenced from `0x1386f93`. Both xrefs land
> inside the same function starting at `0x1385380` (size `0x2063`).

### 3. Sanity-Check the Candidate

```text
mcp__ida-pro-mcp__decompile addr="0x1385380"
```

Confirm the decompilation is consistent with `TerminateRound(int iReason, float flDelay = ...)`: takes `this` +
an integer round-end-reason parameter (used in a large `switch`/if-chain that sets round-end state, awards money,
updates score, fires round-end events, etc.), plus additional float/optional parameters. The function is large
(hundreds of instructions) since it drives most of the end-of-round bookkeeping.

### 4. Generate Function Signature

**ALWAYS** Use SKILL `/generate-signature-for-function` with `addr=0x1385380` to generate a robust and unique
`func_sig`.

> Linux 14168 reference: generated signature is `55 48 89 E5 41 57 41 89 F7 41 56 48 8D 35` — already unique
> across the binary at this length (no wildcards needed in the head).

### 5. Write IDA Analysis Output as YAML

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

Required parameters:
- `func_name`: `CCSGameRules_TerminateRound`
- `func_addr`: `0x1385380`
- `func_sig`: The validated signature from step 4

## Function Characteristics

- **Purpose**: Ends the current round for a given reason id (e.g. bomb defused, T/CT wiped, time expired),
  driving score updates, money awards, round-end event broadcast, and round-restart scheduling.
- **Binary**: `server.dll` / `libserver.so`
- **Parameters**: `(this, unsigned int reason, ...)` — additional trailing parameters (observed as `__int64`,
  `float`) control timing/延迟 of the subsequent round restart.
- **Return value**: not consumed by callers of interest (bookkeeping side-effects only).

## Discovery Strategy

1. `TerminateRound` has two distinct, independently-placed string literals in the binary: a bare debug tag and a
   full warning-format string for the invalid-reason-id error path.
2. Both strings are referenced from exactly one function each, and — critically — from the **same** function.
   This double-string agreement is a strong, code-shape-independent fingerprint that survives compiler
   refactoring/inlining changes far better than a fixed byte pattern alone would.
3. The candidate's parameter shape (integer round-end reason + optional delay) and its size (large, since it
   drives most round-end bookkeeping) are consistent with `TerminateRound`'s known role.

This is robust because two unrelated strings (a log tag and an error message) both trace back to the same
function, which is very unlikely to happen by chance for any other function in the binary.

## Output YAML Format

The output YAML filename depends on the platform:
- `server.dll` -> `CCSGameRules_TerminateRound.windows.yaml`
- `libserver.so` -> `CCSGameRules_TerminateRound.linux.yaml`

Fields: `func_name`, `func_va`, `func_rva`, `func_size`, `func_sig`.

Attribution

mrc4ttmrc4tt
View sourceMore from mrc4tt →
SSkills DirectorySkills Directory

Know which skills are safe — weekly.

Best new skills + every skill we flagged as malicious. From the team that scanned 103,619.

Join free

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 (0)

No comments yet. Be the first to comment!

SSkills DirectorySkills Directory

Know which skills are safe — weekly.

Best new skills + every skill we flagged as malicious. From the team that scanned 103,619.

Join free

Related Skills

Caveman Commit

Ultra-compressed commit message generator. Cuts noise from commit messages while preserving intent and reasoning. Conventional Commits format. Subject ≤50 chars, body only when "why" isn't obvious. Use when user says "write a commit", "commit message", "generate commit", "/commit", or invokes /caveman-commit. Auto-triggers when staging changes.

1074701 votes

Caveman Review

Ultra-compressed code review comments. Cuts noise from PR feedback while preserving the actionable signal. Each comment is one line: location, problem, fix. Use when user says "review this PR", "code review", "review the diff", "/review", or invokes /caveman-review. Auto-triggers when reviewing pull requests.

1074701 votes

Springboot Verification

Verification loop for Spring Boot projects: build, static analysis, tests with coverage, security scans, and diff review before release or PR.

2456590 votes

Verification Loop

一个全面的 Claude Code 会话验证系统。

2456590 votes

Django Verification

Verification loop for Django projects: migrations, linting, tests with coverage, security scans, and deployment readiness checks before release or PR.

2456590 votes
View all in code-quality →