Исследование защиты программы SourceCop
Скриншот программы SourceCop
SourceCop - программа для защиты PHP-скриптов от модификации. Заявлена даже функция обфускации, но на самом деле аффтары лукавят - ее нет. Зато защита не требует установки на сервер дополнительного программного обеспечения, позволяет делать привязку скриптов к определенному серверу и устанавливать триальный срок работы. Поэтому SourceCop все еще пользуется популярностью у отечественных и зарубежных разработчиков, но сама программа почему-то платная.
Качаем дистрибутив, устанавливаем. Главный исполняемый файл ничем не упакован, анализ показывает, что он написан на Visual Basic. Сегодня воспользуемся утилитой vbaStrCmp от команды RESURRECTiON. Это вспомогательная утилита, облегчающая исследования программ, написанных на Visual Basic. Она состоит из модифицированной библиотеки msvbvm60.dll и файла-перехватчика vbaStrCmp2.dll. Принцип работы vbaStrCmp заключается в следующем: оба файла подкладываются в папку с исследуемой программой, программа запускается, а перехватчик в процессе ее работы сохраняет в лог параметры и результат вызова функций сравнения текстовых строк. Такие программы еще называют снифферами.
Распаковываем архив vbaStrCmp в папку с установленной программой SourceCop, запускаем, попробуем зарегистрировать. Installation ID должен быть числовой, а регистрационный ключ введем любой:
Вводим произвольные регистрационные данные
Теперь смотрим лог работы vbaStrCmp, там обнаруживаются очень интересные строчки:
Лог работы vbaStrCmp
Очевидно, что введенный нами неправильный серийный номер сравнивается с какой-то строкой. Попробуем повторить регистрацию с тем же Installation ID, но в качестве серийника используем строчку из лога SZ155577RT9111126. Сообщение о неправильном ключе не появляется, окно ввода регистрационных данных просто закрылось. При повторном нажатии на кнопку "Register" программа сообщает, что она уже зарегистрирована:
Программа успешно зарегистрирована
Вот таким нехитрым способом мы нашли ключ для программы, при этом не использовали ни отладчиков, ни дизассемблеров, и потратили на все лишь несколько минут. Теперь можно стереть файлы vbaStrCmp из папки с программой и наслаждаться свежезарегистрированным SourceCop. Конечно, утилита vbaStrCmp - не панацея и не универсальная ломалка для всего на свете, но в некоторых ситуациях очень помогает. Здесь оказался как раз такой случай, когда правильный регистрационный номер просто сравнивался с введенной строкой.
Защита SourceCop снимается с PHP-файлов тоже без особых проблем, причем в точности до исходного кода за исключением некоторых экзотических ситуаций. Алгоритм от версии к версии не меняется, так что один универсальный распаковщик справится со всеми защищенными скриптами. По личным причинам я не буду рассматривать здесь эти вопросы.
Просмотров: 7140 | Комментариев: 8
Внимание! Статья опубликована больше года назад, информация могла устареть!
Комментарии
Отзывы посетителей сайта о статье
ManHunter
(19.04.2011 в 03:15):
Тогда Zend тебе в помощь. Он установлен на всех приличных хостингах, и дает хоть какую-то защиту. Остальное все херня.
Viktor
(18.04.2011 в 22:45):
У меня проблема не в платных скриптах, а в том, что хочется защитить свои наработки (которые продавать я никому не собираюсь) от любопытных хостеров и хакеров.
SAY
(13.04.2011 в 21:26):
ManHunter, в точку. Каждый второй в стране гордо называет себя "системный администратор" и "программист", а на самом деле фуфло бестолковое. Первые ставят пользователям "крутые сборки винды", вторые переписывают программы с "исходники.ру". Прям бесят.
ManHunter
(13.04.2011 в 12:29):
Не лень, а просто нечего задействовать :) Сотни вузов штампуют полчища тупого бездарного мяса с дипломами "Программист", которые хотят жрать и не хотят думать.
64-ядерный процессор
(13.04.2011 в 09:12):
ManHunter, практика показывает, что задействовать мозги в нашем государстве не принято. Поэтому большинство людей просто называют этим громким словом - "веб-мастер", а по факту являясь всего лишь патлатым копирастом, который тырит чужие скрипты, выдавая за свои. Вот только одного не пойму - лень им мозги задействовать, али просто лень? Я вон сам по началу ничего не умел, так вот взял и выучил кое-что.
ManHunter
(13.04.2011 в 06:57):
Надо писать программы, за которые люди сами ЗАХОТЯТ перечислить денежку, и распространять как donationware. Но для этого придется задействовать мозги и писать ХОРОШИЕ программы, потому шароварщики и надеются на всякие защиты.
Viktor
(13.04.2011 в 02:47):
Спасибо за пост! А что посоветуете для защиты исходного кода php скриптов без применения дополнительных надстроек (типа nucoder, zend)?
Добавить комментарий
Заполните форму для добавления комментария
Вообще не переношу VB, а с этой тулзой попробую те проги на VB, которые давно отложил "на будущее"