initial commit
This commit is contained in:
commit
a2922b8bad
59 changed files with 2684583 additions and 0 deletions
197
ATTRIBUTIONS.md
Normal file
197
ATTRIBUTIONS.md
Normal file
|
|
@ -0,0 +1,197 @@
|
|||
# Attributions
|
||||
|
||||
source2rosetta derives Source-2 gamedata — function signatures, vtable offsets, and the schema/RTTI surface —
|
||||
from stripped Valve libraries. It could not exist without the decade of reverse-engineering, tooling, and
|
||||
open documentation produced by the Counter-Strike / Source / Source-2 community. Much of the engine came in
|
||||
name-stripped; the *names* — the catalogues, symbol dictionaries, gamedata files, and SDK dumps that let the
|
||||
derived offsets and signatures be labelled meaningfully — came from the projects below. The initial seeds were
|
||||
foundational: they are why this tool has anything to say.
|
||||
|
||||
This document credits that prior work. Where a project supplied a specific ingredient (a catalogue, a symbol
|
||||
set, a technique, a format), the role is noted.
|
||||
|
||||
## Provenance
|
||||
|
||||
source2rosetta and everything it ships are derived **only from legitimately-public sources**: open-source
|
||||
SDKs, Valve's own tracked game builds, community gamedata files, and published research. Leaked or otherwise
|
||||
proprietary game source was **deliberately excluded** from the corpus and the naming pipeline — a clean-room
|
||||
boundary kept so the tool and its outputs carry no tainted provenance. The derived facts themselves
|
||||
(fingerprints, offsets, signatures) contain no third-party bytes.
|
||||
|
||||
---
|
||||
|
||||
## Game-data, symbol & offset reference corpora
|
||||
|
||||
The catalogues and dictionaries that give the derived offsets/signatures their names — the "seeds".
|
||||
|
||||
- **Valve build tracking** — [GameTracking-CS2](https://github.com/SteamDatabase/GameTracking-CS2),
|
||||
[GameTracking-Dota2](https://github.com/SteamDatabase/GameTracking-Dota2),
|
||||
[GameTracking-Deadlock](https://github.com/SteamDatabase/GameTracking-Deadlock),
|
||||
[GameTracking-CSGO](https://github.com/SteamDatabase/GameTracking-CSGO),
|
||||
[GameTracking-TF2](https://github.com/SteamDatabase/GameTracking-TF2),
|
||||
[GameTracking-HalfLifeAlyx](https://github.com/SteamDatabase/GameTracking-HalfLifeAlyx),
|
||||
[GameTracking](https://github.com/SteamDatabase/GameTracking),
|
||||
[Protobufs](https://github.com/SteamDatabase/Protobufs) — all by **SteamDatabase**: per-build tracking of
|
||||
Valve games and the protobuf definitions.
|
||||
- **CS2 gamedata & offsets** — [CS2-Gamedata](https://github.com/roflmuffin/CS2-Gamedata) (roflmuffin, a
|
||||
primary catalogue seed), [cs2-dumper](https://github.com/a2x/cs2-dumper) (a2x),
|
||||
[s2u-gamedata](https://github.com/Wend4r/s2u-gamedata) / [s2d-schema](https://github.com/Wend4r/s2d-schema)
|
||||
(Wend4r), [cs2-universal-offsets](https://github.com/scros22/cs2-universal-offsets) (scros22),
|
||||
[CS2-OFFSETS](https://github.com/sezzyaep/CS2-OFFSETS) (sezzyaep),
|
||||
[cs2-offsets](https://github.com/superisuer/cs2-offsets) (superisuer),
|
||||
[IDA-GameDataTracker](https://github.com/K4ryuu/IDA-GameDataTracker) (K4ryuu).
|
||||
- **CS2 signatures** — [cs2-signatures](https://github.com/ianlucas/cs2-signatures) (ianlucas),
|
||||
[cs2-signature-list](https://github.com/Salvatore-Als/cs2-signature-list) (Salvatore-Als),
|
||||
[CS2_VibeSignatures](https://github.com/HLND2T/CS2_VibeSignatures) (HLND2T),
|
||||
[Aspasia](https://github.com/Aspasia1337/Aspasia) (Aspasia1337),
|
||||
[cs2_things](https://github.com/GameChaos/cs2_things) (GameChaos),
|
||||
[cs2-lib](https://github.com/ianlucas/cs2-lib) (ianlucas).
|
||||
- **CS:GO symbols/dumps** — [csgo-signatures](https://github.com/CrackerCat/csgo-signatures) (CrackerCat),
|
||||
[csgo-linux-dumper](https://github.com/foxadb/csgo-linux-dumper) (foxadb),
|
||||
[CSGO-Dumper](https://github.com/Y3t1y3t/CSGO-Dumper) (Y3t1y3t),
|
||||
[hazedumper](https://github.com/frk1/hazedumper) (frk1).
|
||||
- **macOS symbol ground-truth** — [dota-2-symbols](https://github.com/a2x/dota-2-symbols) (a2x): symbolicated
|
||||
Dota builds that anchor cross-game name transfer.
|
||||
- **Dota / Deadlock gamedata** — [McDota](https://github.com/LWSS/McDota) (LWSS),
|
||||
[dota2dumped](https://github.com/ikhsanprasetyo/dota2dumped) & [Dota2Cheat](https://github.com/ikhsanprasetyo/Dota2Cheat)
|
||||
(ikhsanprasetyo), [D2VDump](https://github.com/ModDota/D2VDump) (ModDota),
|
||||
[d2fixups](https://github.com/psychonic/d2fixups) (psychonic),
|
||||
[Dota2Hack](https://github.com/or75/Dota2Hack) (or75),
|
||||
[dezlock-dump](https://github.com/dougwithseismic/dezlock-dump) (dougwithseismic),
|
||||
[Deadlock-GameSDK](https://github.com/aylers/Deadlock-GameSDK) (aylers),
|
||||
[deadworks](https://github.com/Deadworks-net/deadworks) (Deadworks-net),
|
||||
[deadunlock](https://github.com/hmate9/deadunlock) (hmate9),
|
||||
[Deadlock-Offset-Dumper](https://github.com/5k-omar/Deadlock-Offset-Dumper) (5k-omar),
|
||||
[deadlock-metadata](https://github.com/leamare/deadlock-metadata) (leamare),
|
||||
[cvar-unhide-s2-citadel](https://github.com/Artemon121/cvar-unhide-s2-citadel) (Artemon121).
|
||||
- **Cross-game symbol/name dictionaries** (TF2 / L4D / Insurgency / GoldSrc — the harvest that lets names
|
||||
transfer across the shared Source lineage) —
|
||||
[sigsegv-mvm](https://github.com/sigsegv-mvm/sigsegv-mvm) & [mvm-reversed](https://github.com/sigsegv-mvm/mvm-reversed)
|
||||
& [libtf2mod](https://github.com/sigsegv-mvm/libtf2mod) (sigsegv-mvm) and the
|
||||
[rafradek fork](https://github.com/rafradek/sigsegv-mvm),
|
||||
[tf2-data](https://github.com/powerlord/tf2-data) (powerlord),
|
||||
[TF2-Base](https://github.com/NicknineTheEagle/TF2-Base) (NicknineTheEagle),
|
||||
[TF2Items](https://github.com/asherkin/TF2Items) (asherkin),
|
||||
[tf2attributes](https://github.com/FlaminSarge/tf2attributes) (FlaminSarge),
|
||||
[SM-TFUtils](https://github.com/nosoop/SM-TFUtils) / [SM-TFEconData](https://github.com/nosoop/SM-TFEconData)
|
||||
/ [SM-TFAttributeSupport](https://github.com/nosoop/SM-TFAttributeSupport) (nosoop),
|
||||
[TF2Classic](https://github.com/danielmm8888/TF2Classic) (danielmm8888),
|
||||
[Left4DHooks](https://github.com/SilvDev/Left4DHooks) & [Various_Scripts_Collection](https://github.com/SilvDev/Various_Scripts_Collection)
|
||||
(SilvDev), [L4D1-2_Signatures](https://github.com/Psykotikism/L4D1-2_Signatures) (Psykotikism),
|
||||
[l4d2_structs](https://github.com/ProdigySim/l4d2_structs) (ProdigySim),
|
||||
[l4d2_direct](https://github.com/ConfoglTeam/l4d2_direct) (ConfoglTeam),
|
||||
[Left4Downtown2](https://github.com/Attano/Left4Downtown2) & [L4D2-Competitive-Framework](https://github.com/Attano/L4D2-Competitive-Framework)
|
||||
(Attano), [L4D1_2-Plugins](https://github.com/fbef0102/L4D1_2-Plugins) (fbef0102),
|
||||
[L4D2-Competitive-Rework](https://github.com/SirPlease/L4D2-Competitive-Rework) (SirPlease),
|
||||
[l4dtoolz](https://github.com/lakwsh/l4dtoolz) (lakwsh),
|
||||
[atomicstrykers-codedump](https://github.com/AtomicStryker/atomicstrykers-codedump) (AtomicStryker),
|
||||
[insurgency-sourcemod](https://github.com/jaredballou/insurgency-sourcemod) (jaredballou),
|
||||
[Insurgency-dy-sourcemod](https://github.com/thecannons/Insurgency-dy-sourcemod) (thecannons),
|
||||
[ReGameDLL_CS](https://github.com/rehlds/ReGameDLL_CS) (ReHLDS).
|
||||
|
||||
## Schema / RTTI extraction & SDK generation
|
||||
|
||||
The projects that first mapped Source-2's schema system and RTTI, and generated typed SDKs from it.
|
||||
|
||||
- **SDK generators** — [source2gen](https://github.com/oxiKKK/source2gen) (oxiKKK, the surviving fork of
|
||||
neverlosecc/source2gen), [Source2Gen](https://github.com/praydog/Source2Gen) (praydog),
|
||||
[cs2-sdk](https://github.com/NotOfficer/cs2-sdk) (NotOfficer),
|
||||
[cs2-sdk](https://github.com/bruhmoment21/cs2-sdk) (bruhmoment21).
|
||||
- **Schema / RTTI dumpers** — [Source2SchemaDumper](https://github.com/GAMMACASE/Source2SchemaDumper) &
|
||||
[PltPatcher](https://github.com/GAMMACASE/PltPatcher) (GAMMACASE),
|
||||
[CS2-SchemaDumper](https://github.com/sneakyevil/CS2-SchemaDumper) (sneakyevil),
|
||||
[Source2-Schema-System-Dumper-CE](https://github.com/dr-NHA/Source2-Schema-System-Dumper-CE) (dr-NHA),
|
||||
[Source2Dumps](https://github.com/anarh1st47/Source2Dumps) (anarh1st47),
|
||||
[source2-dumper](https://github.com/eliasmoflag/source2-dumper) (eliasmoflag),
|
||||
[DumpSource2](https://github.com/ValveResourceFormat/DumpSource2) &
|
||||
[ValveResourceFormat](https://github.com/ValveResourceFormat/ValveResourceFormat) (the VRF team).
|
||||
- **Binary analysis / demo parsing** — [cs2-analyzer](https://github.com/a2x/cs2-analyzer) (a2x),
|
||||
[source2-demo](https://github.com/Rupas1k/source2-demo) (Rupas1k),
|
||||
[demofile-net](https://github.com/saul/demofile-net) (saul).
|
||||
|
||||
## Engine SDKs, headers & networking
|
||||
|
||||
- [hl2sdk](https://github.com/alliedmodders/hl2sdk) & [hl2sdk-manifests](https://github.com/alliedmodders/hl2sdk-manifests)
|
||||
(AlliedModders) — the Source engine SDK and its per-game manifests.
|
||||
- [source-sdk-2013](https://github.com/ValveSoftware/source-sdk-2013) &
|
||||
[GameNetworkingSockets](https://github.com/ValveSoftware/GameNetworkingSockets) (Valve).
|
||||
- [sourcesdk](https://github.com/Wend4r/sourcesdk) (Wend4r),
|
||||
[sourcesdk-gmod](https://github.com/RaphaelIT7/sourcesdk-gmod) (RaphaelIT7),
|
||||
[sbox-public](https://github.com/Facepunch/sbox-public) (Facepunch) — Source-2 headers via s&box.
|
||||
- [Half-Life-Alyx-FGD](https://github.com/gvarados1/Half-Life-Alyx-FGD) (gvarados1) — Source-2 entity/FGD
|
||||
definitions.
|
||||
|
||||
## Source-engine mod frameworks & runtime references
|
||||
|
||||
These defined the gamedata/format conventions source2rosetta emits into, the live-validation model, and the
|
||||
hooking/loader designs the companion loader work draws on.
|
||||
|
||||
- [CounterStrikeSharp](https://github.com/roflmuffin/CounterStrikeSharp) (roflmuffin) — the C# CS2 framework
|
||||
and the gamedata format the default output targets.
|
||||
- [metamod-source](https://github.com/alliedmodders/metamod-source) & [sourcemod](https://github.com/alliedmodders/sourcemod)
|
||||
(AlliedModders) — the Source mod loader + framework lineage (gamedata format, SourceHook).
|
||||
- The **swiftly-solution** ecosystem — [swiftly](https://github.com/swiftly-solution/swiftly) &
|
||||
[swiftlys2](https://github.com/swiftly-solution/swiftlys2),
|
||||
[s2binlib](https://github.com/swiftly-solution/s2binlib),
|
||||
[gamedata-validator](https://github.com/swiftly-solution/gamedata-validator),
|
||||
[codegen](https://github.com/swiftly-solution/codegen) — Source-2 binary/gamedata handling and validation.
|
||||
- [modsharp-public](https://github.com/Kxnrl/modsharp-public) (Kxnrl),
|
||||
[source2toolkit](https://github.com/SlynxCZ/source2toolkit) (SlynxCZ),
|
||||
[plugify-plugin-s2sdk](https://github.com/untrustedmodders/plugify-plugin-s2sdk) (untrustedmodders),
|
||||
[Source.Python](https://github.com/Source-Python-Dev-Team/Source.Python) (Source.Python team).
|
||||
- CS2 server projects — [CS2Fixes](https://github.com/Source2ZE/CS2Fixes),
|
||||
[StripperCS2](https://github.com/Source2ZE/StripperCS2),
|
||||
[MultiAddonManager](https://github.com/Source2ZE/MultiAddonManager) (Source2ZE),
|
||||
[cs2kz-metamod](https://github.com/KZGlobalTeam/cs2kz-metamod) (KZGlobalTeam),
|
||||
[SourceCoop](https://github.com/ampreeT/SourceCoop) (ampreeT),
|
||||
[cs2-modded-server](https://github.com/kus/cs2-modded-server) (kus),
|
||||
[gmod-holylib](https://github.com/RaphaelIT7/gmod-holylib) (RaphaelIT7),
|
||||
[Osiris](https://github.com/danielkrupinski/Osiris) (danielkrupinski),
|
||||
[SourceAutoRecord](https://github.com/p2sr/SourceAutoRecord) & [wormhole](https://github.com/p2sr/wormhole) (p2sr).
|
||||
- Host-capability references — [Ray-Trace](https://github.com/FUNPLAY-pro-CS2/Ray-Trace) (FUNPLAY-pro-CS2),
|
||||
[ResourcePrecacher](https://github.com/KillStr3aK/ResourcePrecacher) (KillStr3aK).
|
||||
|
||||
## Reverse-engineering tooling & techniques
|
||||
|
||||
The signature-making, diffing, and vtable-walking techniques source2rosetta's own passes are modelled on.
|
||||
|
||||
- Signature generation — [ida-sigmaker](https://github.com/mahmoudimus/ida-sigmaker) (mahmoudimus),
|
||||
[sigmakerex](https://github.com/kweatherman/sigmakerex) (kweatherman).
|
||||
- Binary diffing — [diaphora](https://github.com/joxeankoret/diaphora) (Joxean Koret).
|
||||
- Vtable / symbol walking — [vtable](https://github.com/asherkin/vtable) (asherkin),
|
||||
[ghidra_scripts](https://github.com/nosoop/ghidra_scripts) (nosoop),
|
||||
[IDA-Scripts](https://github.com/Scags/IDA-Scripts) (Scags),
|
||||
[ida-cs2-reversing-tools](https://github.com/oxiKKK/ida-cs2-reversing-tools) (oxiKKK).
|
||||
- References & indexes — [SourceEngineReverseEngineering](https://github.com/ReservedRegister/SourceEngineReverseEngineering)
|
||||
(ReservedRegister), [reverse-engineering-resources](https://github.com/srcdslab/reverse-engineering-resources)
|
||||
(srcdslab), [awesome-cs2](https://github.com/samyycX/awesome-cs2) (samyycX).
|
||||
|
||||
## Binary function similarity research
|
||||
|
||||
source2rosetta identifies functions across builds by fingerprinting and nearest-history matching. That design
|
||||
draws on the binary-code-similarity literature.
|
||||
|
||||
- Andrea Marcelli et al., **"How Machine Learning Is Solving the Binary Function Similarity Problem"**, USENIX
|
||||
Security 2022 (Cisco Systems), and the accompanying dataset/code
|
||||
[binary_function_similarity](https://github.com/Cisco-Talos/binary_function_similarity) (Cisco-Talos).
|
||||
- Steven H. H. Ding, Benjamin C. M. Fung, Philippe Charland, **"Asm2Vec: Boosting Static Representation
|
||||
Robustness for Binary Clone Search"**, IEEE S&P 2019.
|
||||
- Xiaojun Xu et al., **"Neural Network-based Graph Embedding for Cross-Platform Binary Code Similarity
|
||||
Detection"** (Gemini), CCS 2017 — via the "Genimi" re-implementation bundled under `refs/papers/Gemini`.
|
||||
- Alexander Hermans, Lucas Beyer, Bastian Leibe, **"In Defense of the Triplet Loss for Person
|
||||
Re-Identification"**, 2017 — the metric-learning framing that was pressure-tested for the fingerprint match.
|
||||
- Also consulted for failure-detection framing: **"SAFE: Multitask Failure Detection for Vision-Language-Action
|
||||
Models"** (arXiv:2506.09937).
|
||||
|
||||
## Knowledge from model training
|
||||
|
||||
The AI-assisted name-extrapolation pass — proposing names for functions no catalogue covers — relied on the
|
||||
general knowledge of the assisting model (Anthropic's Claude) about Source-2 / CS2 engine conventions, the
|
||||
Itanium C++ ABI, ELF, and Valve's naming patterns. That knowledge is itself distilled from publicly-available
|
||||
open-source code and documentation — in large part the very community projects credited above. Proposed names
|
||||
are always cross-checked against the derived RTTI/offsets, never trusted blind.
|
||||
|
||||
---
|
||||
|
||||
*If your work is used here and is miscredited or missing, that is an oversight, not intent — corrections are
|
||||
welcome. This tool is a small addition on top of a large community's effort.*
|
||||
Loading…
Add table
Add a link
Reference in a new issue