декомпилировать в ASM, как это можно делать с C#
то есть с дизассемблерами вы не знакомы? Это можно сделать с либым бинарником содержащим исполняемый код. И для справки, в случае шарпов там не ассембелр а байткод по сути для CLR (виртуальная машина, рантайм). И да, обфускация должна помочь, как и в случае с компилируемыми языками.
C# тяжелый? Тогда просто забейте. Можно конечно глянуть в сторону Rust но... боюсь и он будет вам сложным в таком случае.