This is a Hex-Rays IDA plugin (7.2) for Frostbite games, and is really only useful for people reversing frostbite games.
The plugin used IChooseYou's FBTools plugin as a base, you can find it on unknowncheats.me frostbite engine section, and maybe also wiki.
Most stuff this plugin uses is custom, and barely has any original code from ICY left.
I dont like the way i did the TypeFactory, but its not that bad and works allright. Probably isnt even a factory by programming terms.
Should probably have some interface like thing instead for this.
- Frostbite 2
- Tested:
- bf3 release (32 bit)
- Tested:
- fb2013
- Tested:
- bf4 (64 bit)
- Not tested:
- bf4 (32 bit)
- Tested:
- fb2014
- Tested:
- MEC Closed Beta
- bf1
- Not tested:
- early bfv
- NFS Rivals
- Tested:
- fb2017
- Not tested:
- anthem closed alpha
- Not tested:
- fb2018
- Tested:
- late bfv
- Tested:
maybe some more games i didnt test
- Add dumpers
- Finish ida struct stuff (
Actions/CreateTypes.h
)
- Print types to ida output
- Rename typeinfo with mangled names
- Find message handlers
- Rename message vtables, and some related functions
- Automatically rename typeinfo with mangled names
- rename default instance if it has one
- create local ida type from field data (seems annoying with the ida sdk docs)
- dump to FBT or cpp format
- rename message vtables(might have an issue with base messages...)
- rename message constructors, and seperate defaultmessage constructor (works but is a bit broken)
- rename message handler functions (has an issue as of now...)
-
Copy dll
a. CopyBin/FBTools64.dll
to ida plugin dir (for 64 bit support)
b. CopyBin/FBTools.dll
to ida plugin dir (for 32 bit support) -
Run IDA!
This should work:
-
Load this project into VisualStudio (i use 2019 for now)
-
Fix ida sdk paths in solution settings (Make sure you have right configuration and platform!)
VC++ Directories -> Include Directories
VC++ Directories -> Library Directories
(Seems to be some extra stuff here, might be able to remove that (damn vs))
-
Compile
In the toolbar you will have a new entry "FBTools"
once typeinfo is found, more options are aded in this submenu!
- jd62 (some fb2018 stuff)
- ICY
- Reunion (bf4 sdk)
- Some guy on uc for ptr fix code (not used)
Also credits to anyone else involed i guess
- txt
- ICY (used as a base)