Russian Qt Forum

Компиляторы и платформы => Windows => Тема начата: Igors от Октябрь 06, 2012, 16:40



Название: Проверить DLL
Отправлено: Igors от Октябрь 06, 2012, 16:40
Добрый день

Как проверить что загруженная dll - "та самая", т.е. не подвергалась никакой модификации?

Да, это гнусные проблемы copy-protection. Софтина защищена hardware ключом, однако очень старым (более 10 лет). Нужно ставить драйвер ключа - 2 dll, ну и одна из них за истекшее время была успешно поломана.

Понятно можно загрузить файл диска и сравнить CRC - но это пробивается с пол-пинка. Нет ли чего-то похитрее?

Спасибо


Название: Re: Проверить DLL
Отправлено: V1KT0P от Октябрь 06, 2012, 19:09
Дык почитай статьи, ничего сверх нового что бы решило проблемы не появилось да и врятли появится. Либо пользоваться готовыми решениями, либо читать про всякие трюки. Сравниваешь CRC на диске, в памяти, все эти проверки должны быть размазаны по коду. Но если кому очень надо будет, все равно найдут способ.


Название: Re: Проверить DLL
Отправлено: Igors от Октябрь 06, 2012, 19:32
почитай статьи
Этот ответ может быть дан на любой вопрос - вот только цена его нулевая :) 

"СRC в памяти" меня вполне бы устроило, но что это? Существует ли оно вообще? С чего мы взяли что загруженный образ постоянный?


Название: Re: Проверить DLL
Отправлено: V1KT0P от Октябрь 06, 2012, 19:40
Этот ответ может быть дан на любой вопрос - вот только цена его нулевая :) 

"СRC в памяти" меня вполне бы устроило, но что это? Существует ли оно вообще? С чего мы взяли что загруженный образ постоянный?
Ну почитай хотя бы самый популярный в рунете сайт посвященный взлому ПО: http://exelab.ru/faq/%D0%9F%D1%80%D0%BE%D0%B2%D0%B5%D1%80%D0%BA%D0%B0_%D1%86%D0%B5%D0%BB%D0%BE%D1%81%D1%82%D0%BD%D0%BE%D1%81%D1%82%D0%B8_%D0%BA%D0%BE%D0%B4%D0%B0_CRC (http://exelab.ru/faq/%D0%9F%D1%80%D0%BE%D0%B2%D0%B5%D1%80%D0%BA%D0%B0_%D1%86%D0%B5%D0%BB%D0%BE%D1%81%D1%82%D0%BD%D0%BE%D1%81%D1%82%D0%B8_%D0%BA%D0%BE%D0%B4%D0%B0_CRC)
Всяких способов усложнить взлом куча, например одним из популярных является зашифрованные функции которые расшифровываются только с помощью валидного ключа. Этим ключем может быть одна часть серийника. Еще одним из ставших популярным стало создание виртуальной машины в программе и вынос туда части логики и проверки лицензии, это значительно усложняет взлом.
Но естественно что взломщики не сидят на месте и большинство защит обходятся автоматически с помощью скриптов.


Название: Re: Проверить DLL
Отправлено: Igors от Октябрь 06, 2012, 19:49
Ну почитай хотя бы
Витя, по существу пожалуйста. На следующую "воду" отвечать не буду


Название: Re: Проверить DLL
Отправлено: V1KT0P от Октябрь 06, 2012, 19:59
Ну почитай хотя бы
Витя, по существу пожалуйста. На следующую "воду" отвечать не буду
Смотри весь твой код грузится в память и из памяти начинает выполняться. В какой-то момент начинает выполняться код твоей защиты, он считает CRC и проверяет с эталонным. Для того чтоб он узнал сколько занимает код и какой CRC то в программе после компиляции заменяем обнуленные значения теми что нужны нам. Если ты хочешь получить именно код, то лучше найди исходники протектора у которого есть такая функция.


Название: Re: Проверить DLL
Отправлено: Igors от Октябрь 17, 2012, 19:10
Корявенько но сделал - почти для всего нашлось API


Название: Re: Проверить DLL
Отправлено: vregess от Октябрь 18, 2012, 11:44
Корявенько но сделал - почти для всего нашлось API

Не стесняйся, поделись опытом)