Rambler's
Top100

Исследование защиты Аки Росс Про 1.0

Автор: FEUERRADER
Дата: 12.05.2003
Раздел: Reverse Engineering

Взлом Аки Росс Про 1.0

Программа: Аки Росс Про 1.0 Размер: 243200 байт Язык: Delphi Pascal Защита: Компонент для Дельфи - TmxProtector 1.23 Цель: взлом Инструменты: Restorator 2.51, Caspr 1.1, Delphi 5-6.

Исследование: При запуске программа просит ввести, как обычно, имя/р.н. и работает только 10 запусков, да при том еще только 2 минуты...идиотизм...
Итак, как я выяснил, программа запакована ASPack'ом, будем распаковывать. Для распаковки могут подойти разные инструменты. Я воспользоваля Caspr 1.1 by SAC. Можно было юзать и другие, здесь нет принципиального значения. Пишем в командной строке:
caspr akiross.exe
и получаем распакованный .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, это могло усложнить процесс взлома. Можно сделать вывод об использовании подобных компонентах в программах.



Все права защищены ©  2003 
...::FEUERRADER::...




Rambler's Top100