Здравствуйте, уважаемые знатоки! На повестке дня (а у меня - на повестке всей предидущей недели) стоит, и довольно остро вопрос - как обфусцировать сурс C#?
Стоит, наверное, посянить - зачем мне вообще это понадобилось?
Где то в январе меня сильно ударила по голове идея начать кодить, и для старта я выбрал шарп и юнити, а для практики я начал писать плагины для игры Rust под моддинговую платформу Oxide, ныне uMod. Плагины закидываются в формате сурс кода и компилируются встроенным, собранным разработчиками платформы компилятором, то бишь можно прямо в процессе работы сервера загружать и выгружать аддоны.
Уже через месяц я вышел на уровень "не стыдно пацанам показать", и мы с партнером (тоже кодер) открыли свой маркетплейс.
В то время, когда мы пишем чтото эксклюзивно для одного проекта серверов, его владельцы сами заинтересованы в том, чтобы плагин не появился у других. С другой стороны, когда покупают наши плагины, которые лежат на сайте, и доступны для покупки всем желающим, велика вероятность того, что твоя работа в скором времени всплывет где то в интернете, и попадет в руки другим кодерам, которые на ее основе сделают что либо свое.
Для меня как человека, перепробовавшего работы в куче мест от макдональдса до яндекс.еды в попытке справиться со студенческой бедностью, те деньги, что приносит в данный момент это предприятие ($100-150 в неделю), стратегически важны для выживания в суровых условиях Москвы.
Закончив с долгим вступлением - объясню, что уже сделано.
С товарищем мы сначала рассматривали вариант написания своей либы, которая бы качала плагин с нашего сервера в формате байт массива, но отказались от этой идеи, т.к. многие клиенты используют shared хостинги, и у них нет доступа к папке ~/Managed/, куда и нужно закидывать подобного рода библиотеки. Так же мы реализовали весьма топорный способ получения имен переменных через рефлексию, но, как вы и сами понимаете - способ и правда очень топорный, ведь требует в каждый плагин добавить код, взаимодействующий с рефлексией, затем обфусцировать через прогу, что мы также написали, полученные имена, и удалить код из плагина.
В сети не смог найти ничего дельного по теме обфускации именно сурса, ибо для обфускации скомпилированных файлов (exe/dll) есть довольно много готовых решений.
Итак - смиренно прошу поделиться знаниями о том, как получить имена переменных из исходного текста, спасибо.