Автор статьи: -EXE- (https://xss.pro/members/275453/)Статья для форума: xss.pro
Ну как интересный, разработчик его расхваливает везде и всюду. А вот каким он функционалом обладает , то это вообще тема отдельного разговора
Ну и собственно о чем же пойдет речь. А сегодня мы рассмотрим защиту программы Антиплагиат киллер 2023 (Другого разработчика: https://killer-antiplagiat.ru/kupit-programmu-dlya-rerajta-teksta). По моим наблюдениям, в последнее время, в сети, подобный софт растет как грибы. И каждый разработчик преподносит, свое чудо программирования, как супер софт - не имеющий аналогов.
Что это вообще за софт и для чего он ?. Это программа для рерайта текста. Если сказать кратко, понятным (человеческим языком), софт для перефразирования текста.
Особенность в том что: смысл текста не меняется, но текст имеет высокий процент уникальности. Но это только то что говорит разработчик, что софту нет равных, его алгоритм уникальный, и так далее и тому подобное. А вот как, на самом деле, обстоят дела мы выясним !.
Я же, по своему принципу, всегда проверяю подобные вещи. Все за того что, на моей практике, насмотрелся на много чего нехорошего. А именно недобросовестных разработчиков что: продают то что есть бесплатно, или же его не так сложно написать самому. Простой пользователь, что вообще не связан с делом реверсинга или хотя бы анализа, будет думать что купил стоящий продукт и у него кнопка бабло в руках, не подозревая обратного. Про это все? мы поговорим, в процессе анализа.
- Основной: Вылечим программу (Покажу как снимается защита), рассмотрим по какому принципу работает защита, развеем миф о чудо алгоритмах программы.
- Второстепенный: Напишем такой же софт, покажу как это делается. Ну и конечно же исходный код (+ Готовый, скомпилированный проект) прикреплю к статье.
В финале, вы получите: такой же, написанный софт, только бесплатный, берите и работайте. Тут ничего сложного нет, но для тех людей кто не в курсе дела, будет особенно полезна статья. Мои планы Вам известны, давайте приступим к практике и реализации задуманного.
Немного забегая наперед, могу сказать что: Разработчик софта немного постарался. И есть нюансы, которые обязательно стоит показать при разборе защиты. Для начала, давайте перейдем на официальный сайт программы и почитаем что там говорится о демо-версии программы. А на официальном сайте все просто, там указано что: в лицензионной версии, нет ограничений на количество обработанного текста и все.
Ну тогда давайте запустим программу и визуально посмотрим, на принцип активации и где всплывает это ограничение. Проанализируем все, посмотрим как это все работает, запускаем программу. И вот уже при запуске софта, запускается и софт и всплывающее окно в котором нас предупреждают о ограничениях. Кстати, есть еще один нюанс, у кого монитор на ПК не большого размера, как у меня, то Вас ждет неприятный нюанс
Закрываем это окно и добираемся до основной (главной) формы софта. Далее видим такую картину: программа у нас состоит из трех софтов, даже программа для кодировки текста есть. Ничего себе, наверное что то крутое и уникальное, можно подумать
Вставляем текст в окно программы и пробуем его перефразировать, обработать, условно говоря. Тут стоит обратить внимание на вид текста до обработки и после. Так как полученный результат, мягко говоря, не очень. Не смотря на то что на сайте программы, утверждают обратное. Я, не просто так, показал примеры на картинках, в процессе анализа, все станет на свои места. Ну и в итоге получил результат.
Оригинальный текст:
Оригинальный текст:
Текст после обработки программой:
Как видим что демонстрационной версии программы доступно не более 20000 символов (Всего). Кстати, это ограничение всплывает и в остальных функциях, этого софта. То есть, я имею в виду, что одно и тоже ограничение по символам, для "Программа для рерайта, Синонимайзер и Программа для кодирования". Но тут есть еще один нюанс, на который стоит обратить внимание. После того как мы обработали текст, через эту программу, то из 20000 доступных символов (Демо-версии) количество уменьшилось и в остальном функционале.
Так вот, а как же тогда программа делает проверку, то есть с чем она сверяет ?. Возможно идет проверка в интернет ? И на основании этого идет считывания (ID компьютера, к примеру) и после математические вычисления (От доступного количества, отнимаем что использовали и отмечается на сайте разработчика). В общем, направлением мысли понятно, давайте это проверим, используя анализатор трафика HTTP Analyzer.
Проверять будем с самого начала, то есть сначала запустим HTTP Analyzer а после этого нашу программу. И, как раз, проверим не стучит ли программа, при запуске, на сайт разработчика. А в финале, проверим по какому принципу идет подсчет (Ограничение символов). Включаем наш анализатор, в режим сканирования траффика, запускаем программу и видим что софт, при запуске, обращается в интернет. Всплывают интересные факты, на которые стоит обратить внимание. Софт делает запрос, не на сайт разработчика (там где мы скачали программу) а на другой домен. При этом идет загрузка данных, так называемых настроек. Для полной картины нужно посмотреть что покажет нам анализатор.
А именно, обращаем свое внимание на обратный ответе от сервера, для каждого запроса (как видите тут он не один). Если такую информацию возможно посмотреть, то лучше это делать. В процессе анализа, каждая, полученная информация, принесет пользу. На такие, на первый взгляд, мелочные нужно обращать внимание, всегда. Так вот, получаем мы вот что (в ответе от сервера). И тут каждое действие и предположение, нужно прокомментировать. А именно:
Где то мы видел подобное. Точнее в оной из моих статей, где мы: разоблачили, подобного "разработчика". Получается, я осмелюсь предположить что и тут никакого уникального алгоритма нет. А используется, в качестве обработки текста, ресурсы Google, Yandex, Promt и Libre. То есть: перевод идет с русского на какой то язык а потом обратно. Вот Вам и уникальный текст
А вот ту самый основной момент, на это также обращаем внимание. Тут дело в том что это настройки что загружаются в программу. То есть, как загружаются, при запросе берутся параметры. И уже софт принимает их и использует у себя. А выходя из ситуации то можно сказать что так разработчик делает программу зависимую от сайта. Этим я хочу сказать что если даже софт взломают, разработчик убирает файл настроек и все софт бесполезен. В некоторых случаях, можно посмотреть, что принимает софт и просто в ручном режиме под отладчиком, прописать настройки напрямую. Но делать это, в нашем случае, не логично так как файл километровый
В этом нам поможет, как обычно, утилита ExeinfoPe (Анализатор исполняемых файлов, не только). Перетаскиваем исполняемый файл на форму утилиты и получаем результат.
- Имя нашего, анализируемого, исполняемого файла: Запуск АК demo.exe
- Разрядность (x32 или x64): Не определена (иногда бывает такое), но отладчик автоматически определил что версия x32.
- На чем написан софт \ обфускатор или пакер есть ли ?: Visual C# \ Нет, не обнаружено.
- Советы по использованию отладчика: но мы будем использовать, как обычно, DnSpy. Удобный инструмент, чего еще желать.
Ну и теперь можно приступить к исследованию защиты. А уже, после того, как вылечим программу то обязательно посмотрим и на принцип работы этого чудо-софта. Так как, кажется мне, вот что: своих клиентов, разработчик, разводит как школьников
Закидываем программу в отладчик DnSpy и приступаем к анализу. Вся нужная информация у нас имеется, осталось найти правильный подход и все. Начнем мы с того что, при запуске программы, постоянно, загружается надоедливое окно. Информация, с предупреждением, что мы используем демо версию. Давайте уберем это окно, после чего приступим к остальным правкам. Я предлагаю применить поиск по коду, то есть просто поищем слово "демо" что присутствует в диалоге. Отмечу что: не важно какой план действий, по анализу, вы составите. Главное чтобы понимать что мы делаем, так как вариантов, сломать софт, много.
Логика событий:
Мы видим, что этот диалог, загружается с ресурсов программы. То есть где то, где именно мы пока не знаем, программа считывает строки с startpage.baml
Если включить логику, то совершенно понятно, при загрузке софта идет и вызов этого окна. И далее, можно действовать по разному, что бы определить где именно. Если посмотреть на название startpage то можно, среди классов, найти такой же и класс. Что собственно, уже по названию, подталкивает нас, к правильному выводу. В startpage присутствует список функций, к примеру: диалог вывода информации о разработчике, кнопка купить программу и далее у нас идет Forward_Click. Это кнопка, по нажатию которой, закрывается диалог с отображением информации о демо версии. То есть условие .Visibility равно скрыть окно, проще говоря. Такого вида конструкция и тут ничего сложного нет, демонстрация на картинках. Как совет на будущее: если в чем то сомневаетесь, то просто ставите точку останова на функцию и запускаете её под отладчиком. После этого ситуация прояснится и все станет понятней.
Видео VD_ANP-1.wmv (Имеется и в архиве, на всякий пожарный).
Как заметно, на видео, программа подгружает информацию с сайта (о лицензии, проверяет количество оставшихся символов, ограничение демо-версии 20000). Если символы закончились, то софт выводит сообщение что все, капут и закрывается. А если нет то запускается и программа и демо-окно.
Участок кода в (StartPage(StartPageViewModel), только помог нам посмотреть на логику событий. Изменения, в этом участке кода, ничего не даст. Так как программа загружает и проверяет оставшиеся символы на стороне сервера (SymbolsCounter.UpdateFreeCount(0)
Потому, в этой ситуации, нужно отталкиваться от функций что вызываются в StartPage(StartPageViewModel. Конечно же нужно еще проанализировать и посмотреть на логику событий, но по факту то что есть. А первое, что нужно сделать, это убрать неприятное, демо-окно (Почему, действуем именно так, поймете дочитав статью).
Из увиденного выше, становится понятно, можно прописать код кнопки Forward_Click в начало функции public StartPage(StartPageViewModel. При этом, код функции, мы обрезать (глобально править) не будем. То есть выпиливать эти проверки, зачем, если можно поступить намного проще и с минимальным вмешательством в код.
Почему ?, ответ очень прост: она срабатывает, в случае, когда у нас закончились символы. А мы сделаем так что они никогда не закончатся
Реализовать задуманное не составит никаких сложностей, добавляем код в начало функции. Нажимаем, правой кнопкой мышки, по функции и в меню выбираем изменить метод. То есть, вот так, решение в лоб:
После этого, программа запустится и надоедливое, демо-окно, не загрузится. А сразу запустится главная форма программы, что удобно, думаю смысл понятен. С этим делом разобрались, идем далее.
Теперь осталось разобраться с ограничениями по количеству символов. Я показывал на видео и говорил, выше, что софт проверяет и делает загрузку доступных символов с сервера. И мы уже знаем: что это проверяется через Util.LicenseInfo.FreeSymbolsCount. Давайте перейдем и посмотрим на код. Что бы определится и составить план наших действий, после проделанного.
За что вообще отвечает и как работает get_FreeSymbolsCount, какая логика. Программа делает запрос на сервак, там отмечается сколько мы использовали символов. А в эту переменную загружается сколько нам доступно. Понятное дело что мы хотим максимум, зачем нам эти ограничения и все такое. В начале, статьи я говорил, что в этой программе - другая логика защиты. Так вот, это ограничение, принимается с сервера и сейчас я покажу как делать изменения подобного, если это возможно и не нарушит логику работы программы (не приведет к ошибкам).
Выходя из логики работы программы, мы можем исправить код вот так (Два варианта):
То есть, в ручную задать параметры, раз и навсегда
доступное, количество символов. И тем самым, получим без лимитную версию по символам, то есть то же самое что и в лицензионной версии.
А что еще важно: при работе софта, не будут списываться символы. То есть результат мы получим вот такой, собственного чего и добивались. И этот параметр сработает, сразу же, во всех настройках программах. То есть:
Для пользователей, кто не совсем понял что мы сделали, да и в целом для закрепления материала, сделал видео. На котором, полностью показан процесс крякинга а также демонстрация работы.
Видео VD_ANP-2.wmv (Имеется и в архиве, на всякий пожарный).
В итоге, на видео, все показано по сути дела. Нет никакой воды, только точечные изменения. В следствии чего: мы имеем, полностью полнофункциональный софт (Не хуже лицензии). Кстати, на видео, показано как убрать надпись "Без лицензии" и добавить туда любую информацию. Надпись уже никакой роли не играет, но для красоты её, желательно, исправить. Вот так будет выглядеть финальный вариант софта, после всех изменений, во всех вкладках программы.
Но вот есть нюансы, которые, сейчас прокомментирую и покажу. Если проанализировать и посмотреть весь код программы, именно запросы. То становится понятно что и этот разработчик держит своих клиентов за дураков. Для так называемого "Перефразирования" и "Уникальных алгоритмов", разработчик используем банальное обращение к онлайн переводчикам:
Тут и так понятно, перевод с английского на русский. А до этого переводит наоборот и получается перефразированный текст. Оригинально, однако.
Тут googleapis.com это служебный домен Google. То есть, на нем расположены инструменты для разработчиков, понимаете к чему я виду ?.
А еще вот это
Я привел факты, которых достаточно что бы получить негативное впечатление о разработчике и его программе. В итоге вырисовывается, вот такая картина: работа всего софта завязана на алгоритмов онлайн переводчиков. Нет в софте: волшебных алгоритмов, нет совести у разработчика софта а есть только хитрость и тяга к деньгам
Конечно это смешно, если посмотреть со стороны. Но, представьте себе ситуацию, если человек купил такое "Чудо". Это же надувательство чистой воды, тем более что цены, на минуточку (Это с официального сайта, я это не придумал):
Важное и последнее, что хотел сказать, про этот софт:
- Первое: Последний режим обработки, то есть "Кодировка файлов", это просто жесть
. Софт просто портит кодировку в надежде что такое прокатит. Если прямо сказать то - подставляет символы с заменой кодов (Это бред и так не работает). А разработчик софта говорит: что текст будет уникальный, на сервисах, где проверяют текст на плагиат. Так вот, если преподаватель, в университете, возьмет и просто текст с документа скопирует и вставит в антиплагиат онлайн то сражу же вранье раскроется. А если додумается распечатать то вообще будет в шоке, так как обман сплывет наружу.
- Второе: При установке софта, там навязывается установка библиотек C++ и Net Framework. Так вот если у вас версии выше, будьте готовы к тому что софт может глючено работать. Так как разработчик не додумался его оптимизировать. Это так к слову сказано.
- Третье: С этим софтом закончили, как активировать я показал, отвязывать его от сервера нет смысла - софт это сплошная ошибка и обман людей.
Переходим к интересному, второстепенному плану: Обещанный мой софт. Только бесплатно! (Реализация, готовый проект и исходник прилагается).
Давайте приступим и сейчас покажу как сделать подобный софт, намного проще.
Отличие моего софта будут в следующем
- Софт будет портативный и не требующий установки.
- Размер исполняемого файла будет не более 5 мегабайт, если сравнить с софтов выше у которого размер 290 метров, что отличается.
- Минимальное количество библиотек, это две.
- Работать будет не хуже.
- Ну и самое главное: он бесплатный и к нему прилагаются исходные коды.
Добавить, к всему сказанному выше, могу только одно: Запрограммировал я софт так что бы свести код к минимуму и показать что сложного тут нет ничего. Если у Вас возникнет желание то сможете легко переделать под себя (Исходники у Вас на руках).
Приступим, внешний вид, будет вот таким (Интерфейс резиновый, растягивается как угодно):
Как видите, в первой колонке оригинальный текст а во второй колонке текст после обработки. Отличие существует и можно подумать что мы создали уникальный софт, но я этого не говорил
По какому принципу работает софт.
- В окно, справа, вставляем наш текст и нажимаем на кнопку "Обработать текст".
- Программа делает запрос в переводчик онлайн Google - онлайн и переводит текст с русского на английский.
- Потом, программа снова делает запрос в переводчик Google - онлайн и переводит обратно с английского на русский.
- Результат выводится во второе окно, что справа.
- Вот и все манипуляции что нужно было запрограммировать.
Особенности работы с Google переводчиком. Так как, у google, api стал платный то: можно выкрутится и обойтись без оплаты. Использовать методы обхода, вот тут можете посмотреть варианты: https://github.com/ssut/py-googletrans/issues/268
Вот и я пошел этим путем и сделал пример, реализацию софта. Все сделано для того что бы человек, мало понимающий в этом деле, посмотрел на реализацию.
Код моей программы простейший, нет никаких подводных камней, просто показана реализация подобного софта.
Код кнопки "Обработать текст" выглядит вот так (Для наглядности, что бы понимать о чем речь):
Думаете не сработает, а я уверен что сработает. Давайте проведем, эксперимент на видео и посмотрим в работе: Мой софт (Текст Снайпер 1.0 Free) против Антиплагиат киллер 2023 (У которого, якобы, уникальный алгоритм, как бы не так
Видео VD_ANP-3.wmv (Имеется и в архиве, на всякий пожарный).
В итоге, у нас получился софт, что работает не хуже. Только наш софт бесплатный, портативный и имеет 3 мегабайт, с копейками, размер исполняемого файла. Финальный пример:
Подведем итоги
Первое: Анализируемый софт, Антиплагиат киллер 2023, можно смело сделать выводы и сказать что: это не более чем пустышка, пыль в глаза незнающим. По человечески, жалко тех людей, кто купил этот софт, не зная что внутри.
Надеюсь, статью почитаю много людей и разработчик программы также. Самый главный вопрос, мысль о том что: зачем было создавать такой громадный файл, напихать туда тучу не нужного, в том числе и загружать настройки с сервака (условно говоря)
Второе: Что касается моей программы, реализацию которой я показал, то весь код был написан максимально просто, для нормального восприятия. Можно было добавить и прогресс бар, вывести все в отдельный поток, добавить дополнительный функционал. Но цель была в другом, показать как это работает и предоставить аналог бесплатного софта.
В будущих статьях, я напишу и предоставлю исходники многих (своих) программ, утилит, что бы материал был интересный. Ну и на сегодня у меня все, надеюсь статья понравилась, всем хорошего дня.
В архиве, скриншот:
Инсталлятор программы Антиплагиат киллер 2023:
Virustotal: https://www.virustotal.com/gui/file/ef02eee8e9f0de40d9319ea4ee3672249998deee5b10ff7150f6c83a01498ee9
Мой софт (Текст Снайпер 1.0 Free) + Исходные коды):
Мой софт / Текст Снайпер 1.0 Free / Исполняемый файл / virustotal: https://www.virustotal.com/gui/file/fc77f18d67c51fd67e888e47871133a9d74b907f4748a2602185ffdbc849e388
Инструменты для анализа:
HttpAnalyzer / virustotal: https://www.virustotal.com/gui/file/f25541dee8f859b62c642d2e6e835c247900b5bc94a00cdbc4d894bab83796dd
DnSpy x32 / virustotal: https://www.virustotal.com/gui/file/7ce05f1aafaaa87d046bbad1b07801777e724251b084bc7f70cef71c98b08105
DnSpy x64 / virustotal: https://www.virustotal.com/gui/file/cc15f3f7836f5c976e058aabdd55af8635b484a6b9a5e94a2cb048856965f9e2
ExeinfoPe / virustotal: https://www.virustotal.com/gui/file/32e6df44a529d3bd543aae01365852990c0e7f3b4f84b5a7f9d7dfc18d6a46fd
Файлы к статье:
Инсталлятор программы Антиплагиат киллер 2023:
Virustotal: https://www.virustotal.com/gui/file/ef02eee8e9f0de40d9319ea4ee3672249998deee5b10ff7150f6c83a01498ee9
Мой софт (Текст Снайпер 1.0 Free) + Исходные коды):
Мой софт / Текст Снайпер 1.0 Free / Исполняемый файл / virustotal: https://www.virustotal.com/gui/file/fc77f18d67c51fd67e888e47871133a9d74b907f4748a2602185ffdbc849e388
Инструменты для анализа:
HttpAnalyzer / virustotal: https://www.virustotal.com/gui/file/f25541dee8f859b62c642d2e6e835c247900b5bc94a00cdbc4d894bab83796dd
DnSpy x32 / virustotal: https://www.virustotal.com/gui/file/7ce05f1aafaaa87d046bbad1b07801777e724251b084bc7f70cef71c98b08105
DnSpy x64 / virustotal: https://www.virustotal.com/gui/file/cc15f3f7836f5c976e058aabdd55af8635b484a6b9a5e94a2cb048856965f9e2
ExeinfoPe / virustotal: https://www.virustotal.com/gui/file/32e6df44a529d3bd543aae01365852990c0e7f3b4f84b5a7f9d7dfc18d6a46fd
Файлы к статье:
Скрытый контент для зарегистрированных пользователей.