waqur: (Default)
[personal profile] waqur
Когда-то была такая программа для прототипирования интерфейсов: Balsamiq Mockups. Она была реализована на базе платформы Adobe AIR (для тех кто в танке, кратко суть: Adobe Flash для обычных приложений, вне браузера), по всей видимости разработчики хотели таким способом избежать сложности поддержки своей софтины для трёх платформ (Windows, Mac и Linux).

В те времена у Balsamiq Mockups был совершенно примитивный механизм защиты от пиратства: валидатор регистрационных ключей на базе асимметричной криптографии. Онлайн-активации не было. Традиционный для таких случаев подход (кряк, который заменяет открытый ключ + кейген на базе нового закрытого ключа) был не нужен. Всё было гораздо проще: прямо в программу был встроен блэклист утёкших в паблик регистрационных ключей (в кодировке base64). А далее просто берём готовый ключ из блэклиста, у которого в конце есть хотя-бы один символ паддинга ("="), и меняем последний символ перед "=" на такой, который сохраняет результат base64-декодирования; ну и разумеется, спокойно проходим активацию. It was like taking candy from a baby. В каком-то смысле, это была самовзламывающаяся программа.

Затем Adobe внезапно прекратила поддержку своей платформы AIR и ребятам из Balsamiq таки пришлось переписать свой продукт с нуля на native API для двух платформ: Windows и Mac. (Поддержка Linux по ходу где-то потерялась.) Теперь он называется Balsamiq Wireframes for Desktop. Не понимаю, почему, но почему-то в случае с Windows они решили, что нативной платформой является .NET. На сей раз с активацией всё по-взрослому: никаких вшитых в программу блэклистов, вместо этого есть обязательная онлайн-активация с привязкой к железу (хотя обещают, что лицензия привязана к юзеру, а не к железу — в общем, врут, гады; может, так пасут утечки, не знаю). С другой стороны, это же дотнет, а значит, в нашем распоряжении есть такой замечательный инструмент как dnSpy.

Прогресс в декомпиляторостроении для дотнетовской платформы, достигнутый в последние годы, меня просто поражает. Если вдруг вы не знали, dnSpy берёт дотнетовские сборки заданного процесса (туеву хучу DLLек, сотню или около того, размером в четвертьгига например) и просто, чёрт возьми, показывает их исходные коды! Можно открывать каждый namespace, каждый класс, каждое поле и каждый метод, читать код, ставить точки останова, step in и step over, изучать состояние локальных переменных, короче говоря, хозяйничать как будто это ваш исходный код! Разумеется, при таких раскладах, отучение нового Бальзамика от жадности заняло два дня, один из которых я потратил на изучение с нуля дотнетовского ассемблера и безрезультатные ковыряния в IDA.

Ну, я-то, бывалый C++ник, всегда подозревал, что Microsoft разработала платформу .NET с настолько богатыми метаданными, чтобы иметь возможность подглядывать в чужие исходники. Но чтобы так нагло? Просто полностью декомпилировать чужой код до последнего байта? (Единственное, что не учли в Microsoft'е, так это возможность разработки другими людьми таких же мощных инструментов для декомпиляции на дотнетовской платформе, хе-хе. И кстати, свою любимую винду они на дотнете переписывать не спешат. Ах, как жаль. Какая досада...)
This account has disabled anonymous posting.
If you don't have an account you can create one now.
HTML doesn't work in the subject.
More info about formatting

March 2024

S M T W T F S
     12
3456789
10111213141516
17181920212223
24252627282930
31      

Автор стиля

Развернуть

No cut tags
Page generated 2025-08-03 10:52 am
Powered by Dreamwidth Studios