Добрый час.
Меня интересует как ломают .Net приложения.
Есть одно приложение от одной очень известной фирмы-производителя оптики.
Которое не хочет работать со "старым" оборудованием.
Хотя функционально они ничем не отличаются (старое оборудование от нового).
При подключении старого оборудования какое то время все работает и потом через время приложение ругается на то что оно (оборудование) не лицензионное.
Есть .Net собрка, предположительно написана на C# назовем ее license.dll в которой как мне кажется происходит вся "магия" проверки серийного номера оборудования.
В этой dll по сути два класса CKeyLicense с интересным методом isValid и DES в котором имплементирован как я предполагаю из название одноименноый алгоритм.
Проблема в том что весь код обфусцирован.
Все что можно подсмотреть я подсмотрел через dnSpy и dotPeek.
Что я уже делал: — побыстренькому набросал свою сборку с классом CKeyLicense в котором реализовал не обфусцированные методы. И подменил оригинальную dll своей.
Приложение стартует и даже работает. Но при подключении оборудования падает. Наверно потому что не все методы реализованы.
Вопрос 1: Можно ли как то деобфусцировать все прилоэение целиком и при этом сохранить его работоспособоность, так что бы поковырять/поправить его код.
Вопрос 2: Можно ли частично переписать/переопределить метод у класс у офусцированной dll
Вопрос 3: Приложение работает c оборудование через COM порт. Для этого оно утсанавливает драйвер com0com (
http://vse-draivera.net/manufacturers/vyacheslav+frolov/others.html).
Можно ли как то подслушать что там ходит?
Что вообще можно сделать?
Какие инструменты, тулы и гайды посоветуете?