Только для образовательных целей! |
|
Автор: | FEUERRADER [AHTeam] |
Уровень: | Для начинающих |
Программа: |
Размер: |
Язык: |
Тип защиты: |
Инструменты: |
Исследование: При запуске программа просит ввести, как обычно, имя/р.н. и работает только 10 запусков, да при том еще только 2 минуты...идиотизм...
Итак, как я выяснил, программа запакована ASPack'ом, будем распаковывать. Для распаковки могут подойти разные инструменты. Я воспользоваля Caspr 1.1 by SAC. Можно было юзать и другие, здесь нет принципиального значения. Пишем в командной строке: и получаем распакованный .exe. Далее толкаем прогу в Ресторатор, выбираем RCData, вроде бы не видно форм с названиями типа TRegForm, поэтому, скорее всего использовался какой-то дельфи-компонент для защиты. Открываем TFrm_mainwindow, видим там:
object mxProtector: TmxProtector CodeKey = 'Ignore' ProtectionTypes = [stRegister, stStartTrial] Options = [poAutoInit, poCheckSystemTime, poPasswordOnce] Expiration = 37162.6455092593 MaxStartNumber = 10 MaxDayNumber = 0 Version = '1.23' OnExpiration = mxProtectorExpiration OnStartTrial = mxProtectorStartTrial OnGetSerialNumber = mxProtectorGetSerialNumber Left = 368 UniqueCodeID = '7A3737414644363048273E35354A2224285150392C2524293423295825292A13' + '64176016605B' UniqueID = '210D5400640160667074776B0D546C6B726E696E1D001F0B4E046F7415600263' + '046079510322' end Ага, TmxProtector...интересно. Здесь можно здорово поиздеваться над защитой, например изменить MaxStartNumber = 10 на MaxStartNumber = 30, тогда программа будет запускаться 30 раз, а не 10. Или вообще поставить MaxDayNumber = 30, будет 30 дней работать. Но после срока, все равно заглохнет (хотя и на этот случай есть приемы). Попробуем сделать к ней кейген.
Взлом: чтобы ломануть прогу нам нужна Дельфи 5-6 и сам компонент TmxProtector 1.2x. Предположим все есть, что дальше? Исследуем алгоритм работы компонента. Почитаем к нему документацию:
Highly important: The serial number is generated from the username, and the component internal uniqeID. If you want to create registration key generator for your application you CANNOT drop a new TmxProtector on your form, because that will generate invalid serial numbers for the original application. The solution is that you HAVE TO copy the component to the clipboard, and Paste into the key generator's form. The Unique ID is a special string, which is generated when you drop it on your form. So, It will be every time different.
Для незнающих англиЦкий, сообщаю, зная UniqueID (строка), создающейся компонентом,мы можем сделать к любой проге, использующей защиту TmxProtector кей-генератор! Легко! Кто знает дельфи, тот быстро сообразил, что надо делать.
Действия: создаем в дельфи форму, бросаем TmxProtector component, делаем 2 TEdit (один для имени, другой для верного ключа) и кнопку. Для кнопки назначим сообщение OnClick, где впишем:
ValidKey.Text := mxProtector.GenerateSerialNumber( Name0fUser.Text ); Не забудем, что ключ генерируется совсем иной от нужного (UniqueID другой). Скомпилируем в exe. Пока всё. Идем снова в Restorator, там откроем сразу akiross.exe и нашу прогу-генератор. Выберем там TForm1 и найдем
object mxProtector: TmxProtector ...... UniqueID = ... ...... end Скопируем текст из akiross.exe object mxProtector: TmxProtector .... .... .... end вместо нашего object mxProtector: TmxProtector.
ВСЁ! Теперь наш генератор должен показывать настоящий номер! Программа взломана!
Заключение: существует много подобных защитных компонентов для дельфи-программ. Не все так легко можно взломать. Если бы строка UniqueID хотя бы кодировалась посредством операции xor, это могло усложнить процесс взлома. Можно сделать вывод об использовании подобных компонентах в программах.
|