This is more of a pseudo tool which explains how most pretty advance commercial obfuscators / packers / protectors / virtualizers expand expressions out. More generations past 50 will give more variations where you start to see less duplicates like (19/19) for example. Around 1000 or so cycles it will take around 10 minutes or so to complete tasks. This is because I did not make this multi-threaded and ConstantExpansion's split operation is the most time consuming sub task since it just tries to randomly brute-force algorithms for 30 seconds.
Please note that division and mods are currently not implemented and require additional type-casting in python for the expression to work.
Also note that pows are currently commented out as well since it is not a universal operator in other languages such as C and C++.
* I may throw in some final result cleaning regexes in the future to output with type-casts and pow function wrappers to get around this.
There may be some mistakes in the results due to some minor mistakes I made during some late nights working on this. If you find an issue please send me the entire expression JSON file or send the final resulting expression and I can trace it back to where the expansion failed; much thanks to another project I made along side this one.
As a side note galaxy is quite handy for more non-native based languages (.NET, Python, JavaScript, LUA, ETC) to confuse simple iterations and add beef on common logic.
This is still under active development so be patient 😊
Source: https://github.com/0xee1/galaxy
Demo:

Hi boys 'n grills,
A while ago I re-reversed the way the Nexon Launcher obtains the login token, so I could use my CLB again as well as my launcher. In case you wanted to code your own CLB or launcher, you can use these snippets to authenticate your accounts and obtain the required login token.
Code
How to use
WebApi webApi = new WebApi();
if(!webApi.AccessToken.IsValid())
{
await webApi.GetAccessToken(s.Context.Profile.Email, s.Context.Profile.Password);
}
NexonPassport passport = await webApi.GetPassport(webApi.AccessToken.Token);
Console.WriteLine(passport.Token);
Credits to Waty for the original structure of the WebApi class.

Did not test this yet. There could be an error for pointer not being initialized in the constructor. Since it is generic class, I think it could be auto assigned to pointer (idk) if not then just do pointer = address in constructor? after delete. The "delete this" may not be right action, so let me know what you all think. I think you can explictly use template and have a class be generic still but the typename would need to be set to either int, long, dword or whatever the pointer (0x02XXXXX) is written to.
#pragma once
template <class T, typename address>
class TSingleton
{
public:
TSingleton();
~TSingleton();
static T* getInstance();
static bool isInitialized();
private:
address pointer;
};
#include "TSingleton.h"
/**
* \brief explicit instantiation for dynamic usage. Add or remove
*/
template TSingleton<class T, int>;
template<class T, typename address>
TSingleton<T, address>::TSingleton()
{
delete this;
}
template<class T, typename address>
TSingleton<T, address>::~TSingleton()
{
delete this;
}
template<class T, typename address>
T * TSingleton<T, address>::getInstance()
{
return *reinterpret_cast<T**>(pointer);
}
template<class T, typename address>
bool TSingleton<T, address>::isInitialized()
{
return getInstance() != nullptr;
}