A collection of my projects dedicated to osu! patching.
Library used to deobfuscate names in obfuscated assembly while having a deobfuscated one already.
This may be useful if:
- You have EazFuscator key to deobfuscate assembly but the key only works on oldoldold assemblies (osu! key was changed after
target=3097
) - You have deobfuscated-by-hand assembly (very unlikely)
Both assemblies have to be opcode-identical (mostly), and you WANT to deobfuscate the control flow of method's bodies in clean assembly using de4dot (osu!patch already does this with obfuscated module), and after 391aca47
commit you also want to decrypt strings using de4dot/holly's string fixer/StringFixerLib.CLI (and again, osu!patch already does this with obfuscated module). Then you'll need to decrypt assembly names using any of two ways above.
TL;DR Clean osu! assembly recipe:
- Download latest osu! assembly which names are encoded with
recorderinthesandybridge
key (hint:target=3097
). - Deobfuscate control flow using
de4dot
--only-cflow-deob osu!.exe
. - Decrypt strings using either de4dot, HoLLy-HaCKeR's EazFixer or StringFixerLib.CLI.
- Decrypt names using HoLLy-HaCKeR's osu-decoder. I used my own program,
clean.exe
should be somewhere in this repo tho. - Done!
Typical usage:
var mapper = new NameMapper(cleanModule, obfuscatedModule, Console.Out);
mapper.BeginProcessing();
// obfuscatedModule is passed as reference, it is deobfuscated by now.
Note: semi-hard-coded to work only with osu!, you may change FindEntryPoint
method implementation and maybe it will work somehow with non-osu! assembly idk.
A simple CLI interface for NameMapper.
Typical usage:
C:\osu!stuff> NameMapper.CLI clean.exe obf.exe
This should be an osu! patching framework or something similiar. TODO description please i'm pretty lazy