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 UpdateItemView

ASecurity

Find and identify the UpdateItemView function in CS2 server binary using IDA Pro MCP. Use this skill when reverse engineering CS2 server.dll or libserver.so to locate the CEconItemView cache-rebuild routine that must run after an econ item's definition or attributes change for the change to take visual effect (e.g. after weaponpaints mutates an item's attributes). Resolved by shortlisting the handful of functions that reference the internal "kill eater" econ-attribute literal and matching the...

3 stars
0 votes
0 copies
0 views
Added 9/27/2026
devopsgo

Works with

mcp

Security Analysis

A100/100

Scanned 9/27/2026

Install to Claude Code

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

Installs into .claude/skills of the current project.

Are you the author of Find UpdateItemView?

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

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

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

Download with Pro
Files
SKILL.md
---
name: find-UpdateItemView
description: |
  Find and identify the UpdateItemView function in CS2 server binary using IDA Pro MCP. Use this skill
  when reverse engineering CS2 server.dll or libserver.so to locate the CEconItemView cache-rebuild
  routine that must run after an econ item's definition or attributes change for the change to take
  visual effect (e.g. after weaponpaints mutates an item's attributes). Resolved by shortlisting the
  handful of functions that reference the internal "kill eater" econ-attribute literal and matching the
  one with the item-view attribute-rebuild body shape.
  Trigger: UpdateItemView, CEconItemView_UpdateItemView
disable-model-invocation: true
---

# Find UpdateItemView

Locate `UpdateItemView` in CS2 `server.dll` or `libserver.so` using IDA Pro MCP tools.

This is a **non-virtual, direct-call** member function (no vtable entry — emit a byte sig, not an
offset).

> **Do not** anchor the discovery recipe on the raw byte pattern below — bytes/wildcards shift release to
> release. Use it only to *locate/confirm* the function on the currently loaded binary, then generate a
> fresh signature at the end.

## Method

### 1. Shortlist candidates via the "kill eater" econ-attribute literal

`UpdateItemView` rebuilds a `CEconItemView`'s live `CAttributeList` from its item definition's static
attribute templates, and as part of that it does a one-time cached symbol lookup of the literal string
`"kill eater"` (used to special-case the kill-eater-score-type bonus while rebuilding). This string is
rare enough (only a handful of referencers in the whole module) to make a good shortlist anchor:

```
mcp__ida-pro-mcp__find       type="string" targets=["kill eater"]
mcp__ida-pro-mcp__xrefs_to   addrs="<string_va>"
```

> Linux 14168 reference: `"kill eater"` (VA `0x9117cc`) has exactly **5** code referencers module-wide:
> `sub_1380E50`, `sub_1A9A070` (the paint-kit/wear/seed applier — see the sibling skill
> `find-CAttributeList_SetOrAddAttributeValueByName`, which is its **caller-side** cross-check), `sub_1B31540`,
> `sub_1B52030`, and `sub_1B598F0` (the target, `UpdateItemView`).

### 2. Decompile each candidate and match the UpdateItemView body shape

```
mcp__ida-pro-mcp__decompile addr="<candidate_func_va>"
```

`UpdateItemView` is the one candidate matching **all** of:

1. **Exactly two parameters**, no obvious name-string argument: `(CEconItemView *pItemView, KeyValues
   *pkvOverride /* usually 0 */)`. (Rules out `sub_1380E50`, which takes six parameters, and
   `sub_1A9A070`, which takes `(this, pWeaponEntity)` and calls the attribute *setter* by literal name
   instead of rebuilding a list.)
2. **Opens with a get-or-create fallback for the second argument**: roughly `if (!a2) { a2 = *(this +
   0x60); if (!a2) a2 = GetOrCreateStaticData(); }`.
3. **Guarded one-time symbol cache init** for `"kill eater"`: a `byte_XXXXX` flag gates a
   `RegisterSymbol(&cache, "kill eater")` call, so the literal is loaded through a cached global rather
   than passed around as an argument (distinguishes it from `sub_1A9A070`, which passes `"kill eater"`
   directly as a call argument to the attribute setter).
4. **Iterates the item definition's static-attribute-template array** (read off the object's
   `CEconItemDefinition*`), and for each entry that passes a "kill-eater eligible" flag check, resolves a
   kill-eater score-type bonus via a red-black-tree-style lookup before building the attribute.
5. **Builds and appends attribute entries** into a `CUtlVector`-like paged buffer embedded in the object
   (construct-attribute helper followed by a pair of "list changed" notify calls with distinct reason
   codes — one for element-added, one for rebuild-finished), reallocating via the engine allocator
   (`g_pMemAlloc`) as needed.

> Linux 14168 reference: `sub_1B598F0` (VA `0x1b598f0`, size `0x630`) matches all five criteria. It is
> called from several weapon/item-spawn sites (e.g. `sub_13A6500`, `sub_145F380`, `sub_154D280`,
> `sub_1AF3B50`) always as `UpdateItemView(pItemViewOffset, 0)` immediately after the item view's
> underlying item definition/index is (re)initialized — consistent with "must run whenever the item's
> definition or attributes change" semantics.

### 3. Generate function signature

**ALWAYS** use SKILL `/generate-signature-for-function` with `addr=<UpdateItemView_func_addr>`. Emit IDA
style verbatim (space hex, `?` wildcards).

Reference sig (Linux 14168 build — sanity check only, regenerate per binary):
`55 49 89 F0 48 89 E5 41 57 41 56 49 89 FE 41 55 41 54 53 48 81 EC`

(Last-resort fallback note: if no better anchor is available on some future binary, `find_bytes` with
this reference pattern can locate the function directly one-shot — its prologue is distinctive enough on
its own — but prefer the string-shortlist + body-shape anchor above since it survives compiler/prologue
changes better.)

### 4. Write func YAML

**ALWAYS** use SKILL `/write-func-as-yaml`:
- `func_name`: `UpdateItemView`
- `func_addr`: `<UpdateItemView_func_addr>`
- `func_sig`: validated sig from step 3

## Function Characteristics

- **Purpose**: Rebuilds/refreshes a `CEconItemView`'s cached display/attribute state (its live
  `CAttributeList`) from its underlying item definition's static attribute templates. Must be called
  whenever an econ item's definition index or attributes are mutated for the change to take visual/
  gameplay effect — e.g. after a weaponpaints-style plugin changes an item's paint-kit/wear/seed
  attributes via `CAttributeList_SetOrAddAttributeValueByName`, `UpdateItemView` should run for the item
  to reflect the new attributes.
- **Linkage**: non-virtual, direct-call (no vtable entry).
- **Binary**: `server.dll` / `libserver.so`
- **Parameters**: `(this /* CEconItemView* */, KeyValues *pkvOverride /* optional, commonly 0 */)`
- **Return value**: implementation-defined status (callers generally ignore it)
- **Sibling relationship**: called from the same family of weapon/item-spawn setup code that also calls
  `CAttributeList_SetOrAddAttributeValueByName`'s caller-side attribute applier (both operate on a
  `CEconItemView`'s attribute state around item give/equip time), though the two are not called from the
  exact same function on this build — cross-check by confirming both are reachable from item-give/model-
  select code paths rather than expecting a literal shared caller.

## Discovery Strategy

1. `"kill eater"` is a rare, first-party econ-attribute literal (not a debug-only string) with only a
   handful of referencers module-wide, making it a cheap, durable shortlist filter.
2. `UpdateItemView` is uniquely identified within that shortlist by its distinctive **body shape** — a
   guarded one-time symbol-cache init of the literal (rather than passing it as a call argument), a
   get-or-create fallback for its optional second parameter, an item-definition static-attribute-template
   iteration, and a "construct + append + dual list-changed-notify" attribute rebuild pattern — none of
   which depend on exact addresses or byte offsets.
3. Cross-checking against its callers (item/weapon setup routines that call it as `(pItemView, 0)`
   immediately after (re)initializing the item's definition/index) gives an independent confirmation that
   survives the callee's own address moving between builds.
4. The final byte signature is always regenerated fresh from the resolved function rather than pinned to
   this build's bytes.

This is robust because the shortlist anchor string is a gameplay literal unlikely to be stripped, the
body-shape checks are compiler/inlining-tolerant, and the caller cross-check does not depend on any single
hard-coded caller address.

## Output YAML Format

- `server.dll`   -> `UpdateItemView.windows.yaml`
- `libserver.so` -> `UpdateItemView.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

Terraform Module Library

Build reusable Terraform modules for AWS, Azure, and GCP infrastructure following infrastructure-as-code best practices. Use when creating infrastructure modules, standardizing cloud provisioning, or implementing reusable IaC components.

400051 votes

sematext-otel

Wire a service's OpenTelemetry output to Sematext Cloud. Walks through region, App-type, instrumentation flow (managed OTLP endpoint vs Sematext Agent), and signal selection (traces/metrics/logs), then produces the exact env-var block and points at a runnable reference example in this repo. Invoke when instrumenting a new app for Sematext.

01 votes

Deployment Patterns

Deployment workflows, CI/CD pipeline patterns, Docker containerization, health checks, rollback strategies, and production readiness checklists for web applications. Use when setting up deployment infrastructure or planning releases.

2672080 votes

Babysit

Watch a pull request or review cycle until it is ready to merge. Use when asked to babysit, monitor, or keep checking PR comments, reviews, and CI until all actionable issues are resolved.

947440 votes

V7 Roster

Interact with the Paperclip control plane API for task coordination and governance. Use when checking assignments, updating issue status, posting comments, delegating work, managing routines, or calling Paperclip API endpoints.

813270 votes
View all in devops →