
Исследование защиты программы Letasoft Sound Booster

Скриншот программы DxO ViewPoint
Программа Sound Booster предназначена для усиления до 5 раз уровня звука в любом приложении. Это очень удобно, особенно когда смотришь на ноутбуках фильмы с недостаточным уровнем громкости, ну или что-то в этом роде. Этакий прокси-сервер для звукового потока.
Скачиваем дистрибутив, устанавливаем, запускаем, смотрим, за что можно зацепиться при исследовании. В окне "О программе" находится характерная строчка "Trial Version":

Окно "О программе"
Поищем ее в файле. Эта строчка найдется в секции ресурсов с индексом 137 в десятичной или 89h в шестнадцатеричной системе счисления. Посмотрим в дизассемблере, где эта строчка загружается и используется.
Code (Assembler) : Убрать нумерацию
- ...
- .text:00403EEE call eax
- .text:00403EF0 lea edi, [eax+10h]
- .text:00403EF3 mov [esp+24h+var_10], edi
- ; Загрузить строку из ресурсов
- .text:00403EF7 push 89h ; unsigned int
- .text:00403EFC mov byte ptr [esp+28h+var_4], 1
- .text:00403F01 call ?AfxFindStringResourceHandle
- .text:00403F06 test eax, eax
- .text:00403F08 jz short loc_403F1D
- .text:00403F0A push 89h ; int
- .text:00403F0F push eax ; hModule
- .text:00403F10 lea ecx, [esp+2Ch+var_10]
- .text:00403F14 call sub_401C60
- .text:00403F19 mov edi, [esp+24h+var_10]
- ...
Code (Assembler) : Убрать нумерацию
- .text:00403E42 push esi
- .text:00403E43 push edi
- .text:00403E44 mov eax, dword_4DD520
- .text:00403E49 xor eax, esp
- .text:00403E4B push eax
- .text:00403E4C lea eax, [esp+24h+var_C]
- .text:00403E50 mov large fs:0, eax
- .text:00403E56 mov esi, ecx
- ; Активировано?
- .text:00403E58 push offset a20986331705021
- ; "20986331705021ca58edc424.96250074"
- .text:00403E5D call ds:IsActivated
- .text:00403E63 add esp, 4
- ; Функция должна вернуть EAX=0
- .text:00403E66 test eax, eax
- ; Если это так, то устанавливается флаг в регистре BL
- .text:00403E68 setnz bl
- .text:00403E6B xor eax, eax
- .text:00403E6D test bl, bl
- .text:00403E6F setnz al
- .text:00403E72 lea eax, ds:83h[eax*8]
- .text:00403E79 mov [esi+254h], eax
- .text:00403E7F call sub_401960
- .text:00403E84 mov ecx, [esi+20h]
- .text:00403E87 push ecx ; hWnd
- .text:00403E88 lea edi, [eax+4]
- .text:00403E8B call ds:GetMenu
- .text:00403E91 push eax
- ; На основании этого флага добавлять в меню пункт регистрации или нет
- .text:00403E92 call ?FromHandle@CMenu
- .text:00403E97 mov edx, [edi]
- .text:00403E99 push eax
- .text:00403E9A mov eax, [edx+14h]
- .text:00403E9D push esi
- .text:00403E9E mov ecx, edi
Code (Assembler) : Убрать нумерацию
- .idata:004BA388 ;
- .idata:004BA388 ; Imports from TurboActivate.dll
- .idata:004BA388 ;
- .idata:004BA388 extrn TrialDaysRemaining:dword
- .idata:004BA38C extrn Deactivate:dword
- .idata:004BA390 extrn GetFeatureValue:dword
- .idata:004BA394 extrn UseTrial:dword
- .idata:004BA398 extrn IsActivated:dword
Code (Assembler) : Убрать нумерацию
- .text:10010ADC public IsActivated
- .text:10010ADC IsActivated proc near
- .text:10010ADC
- .text:10010ADC var_68 = byte ptr -68h
- .text:10010ADC var_64 = dword ptr -64h
- .text:10010ADC var_60 = byte ptr -60h
- .text:10010ADC var_4 = dword ptr -4
- .text:10010ADC arg_0 = dword ptr 8
- .text:10010ADC
- .text:10010ADC push 5Ch
- .text:10010ADE mov eax, offset loc_10078C01
- .text:10010AE3 call __EH_prolog3_catch_GS
- .text:10010AE8 mov esi, dword_100A1840
- .text:10010AEE test esi, esi
- .text:10010AF0 jnz short loc_10010B09
- .text:10010AF2 call sub_100118BF
- ...

Программа успешно "зарегистрирована"
Сообщение о триальном режиме пропало. Из меню в трее пропал пункт о регистрации. Программа не "щелкает" каждые три минуты при усилении звука. Значит наша цель достигнута! И, как мне кажется, одной такой пропатченной библиотеки должно хватить и на все будущие версии программы. Можно даже написать свою dll с теми же экспортируемыми функциями, но сразу же возвращающую нужные значения.
Просмотров: 18824 | Комментариев: 12
Метки: исследование защиты

Внимание! Статья опубликована больше года назад, информация могла устареть!
Комментарии
Отзывы посетителей сайта о статье
ManHunter
(05.12.2015 в 08:23):
Я ничего никуда не высылаю. И любые ваши проблемы - это ВАШИ проблемы, а не мои.

User3
(05.12.2015 в 00:17):
ManHunter, можешь кинуть и мне уже исправленный TurboActivate.dll?? Дизассемблер я не нашел, та и пользоваться трансляторами не умею) Буду очень благодарен за помощь. Почта Yurec@LinkinPark.ru

Lieder
(08.04.2015 в 14:34):
Скиньте pls исправленный TurboActivate.dll на lieder@bk.ru

ManHunter
(30.07.2014 в 14:08):
Ситуацию не отслеживаю, не знаю. Может кто и ломал. Я ей все равно не пользуюсь.

denis7656
(30.07.2014 в 14:03):
ManHunter, а че последнюю версию еще никто не крякнул ?
Она более стабильная. а крека нигде нету.
Она более стабильная. а крека нигде нету.

Rice
(05.05.2014 в 00:02):
Для kukish-mukish. Я мониторю громкость приложений стандартным "Микшером громкости", c:\Windows\System32\SndVol.exe.

kukish-mukish
(25.03.2014 в 02:28):
Кто-нибудь знает программу для защиты слуха и убавления внезапно усилившейся громкости? К примеру, смотришь тихий фильм в наушниках, вроде негромко, а тут бабах спецэффект и оглох. Или разговариваешь по скайпу на полной громкости, а тут внезапно другая софтина как заорет со всей дури и оглох.

user
(27.09.2013 в 17:35):
К сожалению, прога оказалась негодной - при просмотре видео онлайн подвешивает Flash-Player наглухо.

user
(25.08.2013 в 16:45):
Согласен с sim31,
с уточнением, что эта программа не "усиливает" звук,а "нормирует" его (просто более точный термин).
Причём нормирует туповато, без динамической подстройки уровня нормирования, как это умеет делать упомянутый плагин к Winamp (называется AudioStocker).
То-есть, если у меня уже 100% отнормированная запись, то увеличения громкости от этого бустера не происходит (просто некуда уже), но сильно обрезаются пики и, как следствие, сильные периодические шумы. Просто нужно вручную регулировать уровень нормирования.
Впрочем, полезная штука, именно для просмотра фильмов, когда можно пренебречь качеством звука.
с уточнением, что эта программа не "усиливает" звук,а "нормирует" его (просто более точный термин).
Причём нормирует туповато, без динамической подстройки уровня нормирования, как это умеет делать упомянутый плагин к Winamp (называется AudioStocker).
То-есть, если у меня уже 100% отнормированная запись, то увеличения громкости от этого бустера не происходит (просто некуда уже), но сильно обрезаются пики и, как следствие, сильные периодические шумы. Просто нужно вручную регулировать уровень нормирования.
Впрочем, полезная штука, именно для просмотра фильмов, когда можно пренебречь качеством звука.

sim31
(18.07.2013 в 14:01):
Сильно усиленный звук начинает хрипеть, так как уходит в насыщение, зашкаливает 16 бит цифровой канал. Тоже использую Media Player Classic, но усиление не на максимум, в 1.5-2 раза. С алгоритмом усиления непонятно, хотелось бы усиления слабых звуков, но не трогать громкие звуки, для winamp был такой плагин.

ManHunter
(01.07.2013 в 10:59):
Не все же пользуются MPC, да и рипы не всегда идеальные, особенно старые. Опять же, на одном только MPC звуковые программы на компе не заканчиваются, и не в каждой звучащей софтине есть свой встроенный бустер. Так что прога имеет место быть.

semenov
(01.07.2013 в 05:40):
У Media Player Classic есть свой бустер, но сейчас рипы все нормальные попадаются, не помню когда включал. ИМХО софт сомнительной нужности

Добавить комментарий
Заполните форму для добавления комментария
