Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » x32dbg, ключ из txt файла.

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки

Открыть новую тему     Написать ответ в эту тему

digital422

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Есть программа, купленная за деньги. В ней стоит защита на основе текстового файла, при установке генерируется код машины, отсылается разработчику и он присылает специальный файл с опциями и ключем. При замене мат. платы, HDD и т.д. код машины меняется и приходится отсылать заново, а это время, т.к. не всегда быстро разработчик реагирует на создание файла. Хочу сделать временную "заглушку", т.е. самому генерировать такие файлы на время пока разработчик не отвечает.
 
Пробовал x32dbg, Ollydbg, но там не могу понять, как формируется ответный ключ и можно ли вообще его получить? Подскажите, как работает этот механизм защиты?

Всего записей: 354 | Зарегистр. 19-04-2003 | Отправлено: 15:38 27-07-2016
RedLord

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
http://forum.ru-board.com/topic.cgi?forum=55&bm=1&topic=11721&start=800#lt

----------
Код скомпилировался - значит работает!

Всего записей: 730 | Зарегистр. 05-03-2004 | Отправлено: 17:33 27-07-2016
digital422

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
За деньги не надо, хочу сам понять. Насколько я понимаю идет процесс сравнивания 2-х значений, то, которое было загружено из файла и значение, сформированное самой программой. Тут без знания Ассемблера не обойтись.

Всего записей: 354 | Зарегистр. 19-04-2003 | Отправлено: 17:59 27-07-2016
ne_viens

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Обычно разработчик формирует структуру данных лицензии из ему присланного мак адреса, серийного номера BIOS'а итд; а также из разрешённых опций, имени, названия фирмы, итд; шифрует RSA приватным шифром и высылает файл клиенту. Прога расшифровывает файл RSA публичным шифром, читает структуру данных лицензии, проверяет мак адрес, серийный номер BIOS'а, разрешает разрешённое, вешает имя, название фирмы в About'е. Как-то так, если коротко.

Всего записей: 1530 | Зарегистр. 01-11-2004 | Отправлено: 21:30 27-07-2016
digital422

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Тут все гораздо проще. Программа генерирует код: например EGDHSN, этот код посылается разработчику, он в своем генераторе прописывает имя клиента, кол-во подключений и т.д. и присылает файл с уже сформированными полями и ключем WBSM-JRFNF-EDSM. Если в файле изменить хоть одну букву,  программа не принимает файл регистрации.

Всего записей: 354 | Зарегистр. 19-04-2003 | Отправлено: 07:26 28-07-2016
KDPoid



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
digital422
Если действительно происходит симметричное кодирование, ваша программулька генерирует код из параметров железа, разработчик у себя и них создаёт ключ.  
Программулька на вашей стороне по тому же алгоритму из кода генерирует ключ и сравнивает с ключом в файле.
Вы правы, чтобы узнать алгоритм на вашей стороне
Цитата:
Тут без знания Ассемблера не обойтись.

 
Вы какого результата ожидаете?
Чтобы кто-то вдруг угадал способ перевести EGDHSN в WBSM-JRFNF-EDSM?
 
Моя попытка:
Берём маску WBSM-JRFNF-___M
на пустые позиции подставляем 1-й, 3-й и 5-й символ исходного кода.
На имеющемся наборе примеров мой способ даёт 100%-е совпадение  

Всего записей: 404 | Зарегистр. 08-08-2006 | Отправлено: 07:48 28-07-2016
ne_viens

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
...присылает файл с уже сформированными полями и ключем WBSM-JRFNF-EDSM. Если в файле изменить хоть одну букву,  программа не принимает файл регистрации.

 
Это вариант электронной подписи. В классическом случае все данные лицфайла кроме ключа хешируются MD5 или SHA или другим алгоритмом, хеш шифруется приватным RSA ключём, приводится в читаемый вид, добавляется в лицфайл и высылается клиенту.
Прога читает лицфайл, хеширует все данные кроме ключа, переводит подпись (ключ) из ASCII в бинарный вид, расшифровывает его публичным RSA шифром, сравнивает расшифрованный хеш с подсчитанным на первом этапе.
В данном случае или всё сильно упрощено или в качестве алгоритма подписи использован HFE, у которого подпись очень короткая по сравнению с RSA, DSA, ECC алгоритмами. Если там всё просто, анализируем код и пишем генератор лицензии, если там HFE, тоже анализируем код и патчим прогу.

Всего записей: 1530 | Зарегистр. 01-11-2004 | Отправлено: 09:05 28-07-2016 | Исправлено: ne_viens, 09:08 28-07-2016
digital422

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
KDPoid - пример я просто набил от руки . С маской подставления не проходят, в имеющемся ключе даже нет тех символов, что генерируется у клиента. Пока мои исследования заканчиваются на том что я вижу как происходит импорт из файла и превращается это все в 16-ричный код. Дальше не хватает знаний и опыта.
ne_viens - в ASCII выводится подозрительный набор случайных символов (31 шт.), расположены они возле того места, где происходит принятие решение о принятии и непринятии ключа.  
 
Каким кодом в OllyDBG можно посмотреть результат расшифровки после этих случайный символов? Пробовал pop, но он выводит тоже самое, что в окне регистров.

Всего записей: 354 | Зарегистр. 19-04-2003 | Отправлено: 18:59 28-07-2016
ne_viens

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Результат расшифровки можно посмотреть в левом нижнем окне данных. Ctrl-g и ввести адрес массива.

Всего записей: 1530 | Зарегистр. 01-11-2004 | Отправлено: 23:40 28-07-2016
NeoAnomaly

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
digital422 опыт приходит с практикой, теорию чтения асма можно подчерпнуть здесь: http://beginners.re/

Всего записей: 418 | Зарегистр. 23-03-2010 | Отправлено: 11:17 29-07-2016
Открыть новую тему     Написать ответ в эту тему

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » x32dbg, ключ из txt файла.


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru