Как декомпилировать программу?
если бы можно было просто взять и декомпилировать нужную программу, то мы жили бы в другом мире, без пиратства и копирайтерства.
Тут два варианта: открываете в dotPeek, если в файле есть CLR заголовок , то он позволит посмотреть классы и структуру файла, затем уже декомпилировать методы. Если же выведет "dll not supported" или "exe not supported", то это значит, что никаких классов и структуры программы там нет, только экспортируемые функции и суброутины (внутренние функции, процедуры), методов никаких нет, т.е. используется парадигма процедурного программирования (x86 - процедурный язык, как и любой другой машинный, соответственно декомпилированный C - тоже, ООП здесь нет и не предвидится, имейте в виду). Здесь уже надо использовать декомпилятор машинного кода, к примеру Ghidra; Hexrays устарел, но тоже как вариант можете попробовать. Потом извлечённый C-код компилируете и собираете, одна функция за другой, исправляя ошибки, которые может допустить декомпилятор. В случае с C#, если там был CIL, у вас будут классы, поля и методы. Если используется технология mixed dll/exe, то совмещать dotPeek и Ghidra.