eXeL@B —› Вопросы новичков —› Реверсинг BitFontCreator Pro |
Посл.ответ | Сообщение |
|
Создано: 07 января 2015 10:59 · Поправил: injener · Личное сообщение · #1 Здравствуйте. Я являюсь начинающим исследователем программ и поэтому возникает куча вопросов. Пытаюсь понять принцип генерации серийника к программе BitFontCreator Pro 3.5. Серийник состоит из 4 шеснадцатиричных значений, разделенных символом "-" (sn1-sn2-sn3-sn4) Четвертая часть номера не меняется (0xBAF7 подобрана экспериментальным путем) и влияет на порчу выходного С кода, генерируемого из шрифтов. Для проверки серийника используется сумма кодов всех символов e-mail адреса (email_sum) Обнаружил 2 места проверки серийника : Непосредственно после ввода по адресу 0x40C2F0 с использованием условия 329*email_sum = 11*sn1+3*sn2+15*sn3 При запуске программы по адресу 0x437f80 с использованием условия 294*email_sum = 9*sn1+4*sn2+13*sn3 При попытке решения получившейся системы линейных уравнений получить целочисленное решение невозможно и в итоге серийник принятый в окне ввода не принимается при запуске, а номер прописанный сразу в реестр не принимается в окне ввода. Но программа при этом успешно запускается. Еще может подскажите как перехватить место в коде куда отправляет 4 часть серийника функция SendMesageW по адресу 0x42B38B . Перерыл кучу документации, но не смог найти как перехватить место обработки принятой информации из параметра lParam=sn4. Генератор номера написал, но его приходится ручками прописывать в реестр по причине того, что в окне ввода он бракуется. Прошу помощи по дальнейшему восстановлению алгоритма генерации номера. Файлы комментариев к коду из ollydbg 1.10 в аттаче. Исследуемый файл имеет имя BitFontCreatorPro (1).exe , чтобы сохранить исходный файл нетронутым. Заранее благодарен за помощь. 6fe4_07.01.2015_EXELAB.rU.tgz - BitFontCreatorPro (1).zip |
|
Создано: 07 января 2015 12:07 · Поправил: r_e · Личное сообщение · #2 Code:
Целочисленные решения существуют, но для этого нужно решить уравнение a*x mod n = c ----- старый пень |
|
Создано: 07 января 2015 14:41 · Поправил: DimitarSerg · Личное сообщение · #3 oops, 13*3 = 39 :D а не 52 как было Code:
Добавлено спустя 3 минуты и получается 434*sum - 21*sn3 должно делиться на 17 без остатка Добавлено спустя 39 минут Code:
(273*sum - 8*sn3) тоже должно делиться на 17 без остатка Добавлено спустя 44 минуты банальный перебор: Code:
ds ds@mail.ua 5F83-3C16-0005-BAF7 ----- ds | Сообщение посчитали полезным: injener |
|
Создано: 07 января 2015 15:55 · Личное сообщение · #4 |
|
Создано: 07 января 2015 16:04 · Личное сообщение · #5 |
|
Создано: 07 января 2015 16:34 · Поправил: DimitarSerg · Личное сообщение · #6 |
|
Создано: 07 января 2015 20:16 · Поправил: injener · Личное сообщение · #7 Всем огромная благодарность за помощь. По быстрому набросал генератор на базе AutoIt v3 и рекомендаций DimitarSerg. Буду дальше смотреть программу от этого же производителя BitFontCreator Grayscale. Защита немного посложнее, но довольно похожая. Может получится все-таки выяснить куда именно функция SendMessageW передает сообщение с четвертой частью серийника. Если интересно попробовать получившийся генератор ключей, то он в приложениях. При правильном значении экспорт чистый , а при неправильном ко всем символам применяется маска. На скринах один и тот же символ (ПРОБЕЛ 0x20) при разных значениях ключа 0xbaf7 и 0xbaf8 f1ad_07.01.2015_EXELAB.rU.tgz - keygen.au3 |
|
Создано: 07 января 2015 20:46 · Личное сообщение · #8 |
|
Создано: 08 января 2015 13:02 · Поправил: injener · Личное сообщение · #9 Я наконец докопался до истины где именно проверяется 4 часть серийника Сначала в процессе передачи сообщения функцией SendMessageW обработчик размещает данные в памяти (скрин 1), а затем номер проверяется при помощи битовых масок (скрин 2 и 3) sn4 & 0x000A , sn4 & 0x0001 , sn4 & 0x0200 , sn4 & 0x8000 В итоге число 0x820B будет принято успешно и в меню Help пропадает пункт меню Register. PS. Значение 0xFFFF тоже успешно проходит проверку, но отказывается сохранять файл |
|
Создано: 21 марта 2015 12:35 · Личное сообщение · #10 |
|
Создано: 07 марта 2017 05:13 · Поправил: jonmey · Личное сообщение · #11 |
|
Создано: 07 марта 2017 12:06 · Личное сообщение · #12 |
|
Создано: 07 марта 2017 21:50 · Личное сообщение · #13 |
eXeL@B —› Вопросы новичков —› Реверсинг BitFontCreator Pro |