Skip to content

Commit c1e5202

Browse files
committed
VTable I/O
1 parent 969260b commit c1e5202

2 files changed

Lines changed: 490 additions & 2 deletions

File tree

README.md

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ Name says it all, but this verifies SourceMod gamedata files. This requires Valv
2424

2525
Has a few quirks with it at the moment:
2626
- It does not support multi-line comments within gamedata files nor will it support multiple instances of `#default` keys. Parsing core SourceMod gamedata files is essentially verboten.
27-
- Windows or stripped VTable offsets cannot be verified.
27+
- VTable functions that are stripped cannot be verified, obviously.
2828
- Function overloads tends to mess up VTable offset checking; e.g. `GiveNamedItem`.
2929
- Offset checking is variably difficult depending on naming conventions. If the gamedata key name is not named exactly the same as the function name, it will not be found; e.g. `OnTakeDamage` -> `CBaseEntity::OnTakeDamage` and `CTFPlayer::OnTakeDamage` -> `CBaseEntity::OnTakeDamage` but `TakeDamage` != `CBaseEntity::OnTakeDamage`.
3030

@@ -41,4 +41,9 @@ Takes a SourceMod signature and jumps you to the function it's for. If it's a ba
4141

4242
### nameresetter.py ###
4343

44-
Resets the name of every function in IDA's database. Does not include library or external functions.
44+
Resets the name of every function in IDA's database. Does not include library or external functions.
45+
46+
47+
### vtable_io.py ###
48+
49+
Imports and exports virtual tables. Run it through a Linux binary to export to a file, then run it through a Windows binary to import those VTables into the database. This is similar to [Asherkin's VTable Dumper](https://asherkin.github.io/vtable/) but doesn't suffer from the pitfalls of multiple inheritance. Since it doesn't have those liabilities, it's function typing will almost always be perfect. It currently does not work with templated or nested classes. 32-bit only for now.

0 commit comments

Comments
 (0)