Если программа была написана на C #, вы можете получить исходный код в почти в первоначальном виде, используя .NET Reflector . Вы не сможете видеть комментарии и имена локальных переменных, но они очень удобочитаемы.
Если бы он был написан на C ++, это не так просто ... даже если бы вы могли декомпилировать код в допустимый C ++, маловероятно, что он будет напоминать исходный код из-за встроенных функций и оптимизаций, которые трудно изменить.
Обратите внимание, что путем обратного инжиниринга и изменения исходного кода вы можете нарушить условия использования программ, если только вы не написали их сами или не получили разрешения от автора.