EwanC / MrMangler

Generates mangled symbol from a function signature
MIT License
7 stars 1 forks source link

Namespaces and classes don't work (windows) #2

Open e-ave opened 10 months ago

e-ave commented 10 months ago

Hi. Thank you very much for this project first of all. I know this is old but I'm hoping you might have worked on this some more. I'm trying to make a plugin for IDA Pro that allows you to use restricted characters in names. IDA does not allow characters like < > but will auto-demangle and represent those restricted characters in the pseudocode, so if I can mangle the signature IDA, I can make a plugin that will allow those restricted characters and allow me to work without constantly running into invalid declaration errors; however, I have been having an incredibly hard time finding any tool that is capable of even basic mangling. This tool is the ONLY one I was able to find at all.

Here's an example mangled string from my IDA project _ZN5eastl12basic_stringIcNS_9allocatorEE15RangeInitializeEPKcS4__local_12693

And this is how IDA will represent it in pseudocode: char *__fastcall eastl::basic_string<char,eastl::allocator>::RangeInitialize(__int64 *, const void *, __int64)

So I try this, but I get syntax error. echo "eastl::basic_string<char, eastl::allocator>::RangeInitialize(char const*, char const*)" | MrManglerProject.exe Exiting, parse error 'syntax error'

So I tried to simplify it and it still cant parse echo "eastl::basic_string::RangeInitialize()" | MrManglerProject.exe Exiting, parse error 'syntax error'

Only finally parses with no class, but it mangles incorrectly. echo "eastl::RangeInitialize()" | MrManglerProject.exe _Z15RangeInitializev which demangles to RangeInitialize() so even when it parsed it's wiping the namespace.

Do you have a more updated version? Thanks

EwanC commented 10 months ago

Thanks for your interest in the project, unfortunately it is no longer maintained and I don't have a newer version to share with you.