Re:Overriding C++ virtual functions at run time
by greesil on Sunday August 09, 2020 @09:18AM
(#24099424)
Are you willing to share any info on how you got stuck with this project, and what this "codebase" was? Can you call it a codebase is it doesn't have source code?
[ Parent
| on HN ]
Re:Overriding C++ virtual functions at run time
by topiolli on Sunday August 09, 2020 @10:02AM
(#24099691)
I really cannot recall which library it was exactly. I worked on a project that had many proprietary dependencies. It might have been a GenICam camera driver that caused us a lot of other headaches as well.
Re:Overriding C++ virtual functions at run time
by Google234 on Sunday August 09, 2020 @09:22AM
(#24099456)
I would guess a normal project that involves this would be making a hack for a video game
Re:Overriding C++ virtual functions at run time
by greesil on Sunday August 09, 2020 @09:40AM
(#24099572)
Games ship with symbols unstripped?
Re:Overriding C++ virtual functions at run time
by MaulingMonkey on Sunday August 09, 2020 @01:15PM
(#24101083)
You'd be suprised what games accidentally ship. I've seen everything from pdbs to unoptimized debug builds accidentally included. If you don't make those mistakes, you might still have std::type_info (or custom equivalents) / RTTI info and __FILE__ / __LINE__ spam from macros, that can still sneak their way in.
Suppose you fix all that - the game still has a good chance of including 1 or more scripting languages. They may be included complete in their original unobufscated glory. Or the bytecode might include unstripped debug information. Or the C++ <-> script binding layer might still include unobfuscated string identifiers.
If you're clever, you'll rebrand this lack of obfuscation as being "mod friendly" ;)
Re:Overriding C++ virtual functions at run time
by diath on Sunday August 09, 2020 @10:07AM
(#24099726)
Wouldn't that be useful for crash reporting?
Re:Overriding C++ virtual functions at run time
by antiuniverse on Sunday August 09, 2020 @11:12AM
(#24100073)
The standard approach to this, at least on Windows, is to build the debug symbols into a separate database (PDB file), and reconnect the addresses to the symbol names on the back end. Microsoft makes tons of symbols available for their own code via a symbol server which debuggers can query by the combination of a module hash and a relative virtual address.