Исследование защиты программы HttpMaster
Скриншот программы HttpMaster
HttpMaster - мощнейший инструмент для тестирования различных API, веб-сервисов, сайтов, приложений и т.п. С его помощью вы можете сформировать и отправить любое количество запросов с указанием POST/GET параметров, HTTP-заголовков, а также других опций. Полученные данные тут же можно проанализировать и затем использовать эту информацию для следующего запроса в цепочке. Больше не надо рисовать тестовые скрипты, а тем более (ужас-ужас!) тестировать приложения в браузере. На сайте есть облегченная бесплатная версия и платная со всеми наворотами. На мелочи размениваться не будем, если любить, то сразу королеву.
Забираем с офсайта свеженький дистрибутив, устанавливаем, смотрим что и как.
Сообщение о неправильной регистрации
При первом запуске сразу вываливается уведомление, что триальный период закончился и надо его продлить или бежать в кассу. Блин, как он может закончиться, если я только сегодня установил эту программу? Ладно, по крайней мере у нас есть текст сообщения о неправильной регистрации. Программа написана на дотнете, стало быть в очередной раз нам потребуется dnSpy. Поиском по файлам определяем, что эта строчка содержится в файле HttpMaster.Texts.DLL. Ну логично, чо. Отправляем его в dnSpy, там поиском по строке выясняем, что индекс этой строки "invalidLicense". Возвращаемся к поиску по этому же файлу, но уже по строке индекса "invalidLicense", в анализаторе выясняем, что она используется в двух местах:
Использование индекса
Нас интересует метод, который вызывается при нажатии кнопки "OK" в форме ввода регистрационных данных.
Метод для проверки регистрации
Чем мне все-таки нравится дотнет, так это тем, что в большинстве случаев при декомпиляции получается вполне себе человекопонятный исходник. По порядку обработки радиобаттонов, выходим на конструкцию RegistrationManager().InstallLicense. Клик по названию приводит нас к менеджеру регистрации и лицензирования, который обитает в файле HttpMaster.Engine.DLL. Если посмотреть его методы, то кроме очевидных методов для проверки триальных дней, наличия триальной лицензии, обновления старой лицензии и т.п. можно обнаружить интересный метод NewLicenseKeyExists().
Метод проверки лицензии
Из реестра читаются некие сохраненные данные, при их отсутствии вываливаемся с кодом FALSE, иначе задействуется какое-то криптографическое колдунство над полученными данными, а потом по результатам проверки лицензии возвращается правильный или ложный ответ. Криптографию оставим тем, кому больше нечем заняться, открываем метод на редактирование.
Редактируем метод
Все его содержимое заменяем на "return true;" и компилируем сборку. Сохраняем модуль с внесенными изменениями. Запускаем программу, больше никаких уведомлений об истечении триального срока и никаких предложений зарегистрироваться не появляется. Цель достигнута. Единственный косяк, что при попытке открыть информацию о лицензии, вместо информации появляется сообщение об ошибке. Ну ничего, потЕрпите. Неча лазать туда, куда собака свой (х)вост не сувала. Убираем еще один полезный инструмент в набор web-мастера.
Просмотров: 1839 | Комментариев: 3
Внимание! Статья опубликована больше года назад, информация могла устареть!
Комментарии
Отзывы посетителей сайта о статье
ManHunter
(26.05.2020 в 19:34):
Для ответа на этот вопрос нужно как минимум попользоваться всеми этими программами. Лично у меня на проектах апи не такие зубодробительные, чтобы их надо было так тестировать.
Vladimir
(26.05.2020 в 19:33):
Программа сильно удобнее постмана? А то привык к связке Postman + SoapUI, а может что-то упускаю в жизни.
Luna ©orporation
(24.05.2020 в 15:45):
Спасибо)
Добавить комментарий
Заполните форму для добавления комментария