Исследование защиты программы Clear Memory
Скриншот программы Clear Memory
Программа Clear Memory, как можно догадаться из названия, предназначена для очистки оперативной памяти компьютера и, как заявлено на офсайте, каким-то образом она оптимизирует работу приложений в Windows. Полезность программы, а также соответствие ее заявленным параметрам я оставляю на совести разработчика, а вот с желанием шароварщиков нарубить бабла я мириться не могу.
Скачиваем программу, смотрим. Это не дистрибутив, а уже самодостаточная программа. Ну хоть на том спасибо. Теперь пробуем запустить. Сразу после запуска получаем такое окно:
Окно активации программы
Ну это уже ни в какие ворота не лезет. СМС с телефона я отправляю только любимой жене, и уж тем более никогда не отправлю СМС ни на один короткий номер. Да и вообще, как быть владельцам зарубежных телефонов? Короче, это реальный косяк и сейчас мы его будем давить.
Исполняемый файл упакован UPX без всяких модификаций, он легко снимается самими же UPX с ключом -d. Смотрим дальше. Программа работает в демо-режиме с некоторыми ограничениями, при этом в вкладке "О программе" к номеру версии приписано слово "Demo":
Вкладка "О программе"
Ну раз есть демо-режим, значит должен быть и нормальный полноприводный. Для начала поищем строчку "Demo" в распакованном файле. Никаких сюрпризов, все на виду. Оказывается, режим без ограничений по терминологии автора называется "Personal".
Нехорошая строка найдена
Вы ведь не забыли сразу же отправить распакованный файл в дизассемблер? Отлично, посмотрим в дизассемблере на код, где используются строчки о демонстрационной и полной версии.
Code (Assembler) : Убрать нумерацию
- CODE:004B3C98 push ebx
- CODE:004B3C99 mov ebx, eax
- ; По умолчанию установить текст "Demo"
- CODE:004B3C9B mov edx, offset _str_1_0_0_Demo.Text
- CODE:004B3CA0 mov eax, [ebx+3C0h]
- CODE:004B3CA6 call @Controls@TControl@SetText
- ; Controls::TControl::SetText(System::AnsiString)
- CODE:004B3CAB xor edx, edx
- CODE:004B3CAD mov eax, [ebx+3ECh]
- CODE:004B3CB3 call unknown_libname_554
- CODE:004B3CB8 mov dl, 1
- CODE:004B3CBA mov eax, [ebx+3F0h]
- CODE:004B3CC0 call @Controls@TControl@SetVisible$qqro
- ; Controls::TControl::SetVisible(bool)
- CODE:004B3CC5 mov eax, ds:off_4B6F2C
- CODE:004B3CCA mov eax, [eax]
- CODE:004B3CCC call sub_4B022C
- CODE:004B3CD1 test al, al
- CODE:004B3CD3 jnz short loc_4B3CE4
- CODE:004B3CD5 mov eax, ds:off_4B6F2C
- CODE:004B3CDA mov eax, [eax]
- CODE:004B3CDC mov edx, [eax]
- CODE:004B3CDE call dword ptr [edx+0ECh]
- CODE:004B3CE4 loc_4B3CE4:
- CODE:004B3CE4 mov eax, ds:off_4B6F2C
- CODE:004B3CE9 mov eax, [eax]
- ; Вызвать какую-то функцию проверки
- CODE:004B3CEB call sub_4B022C
- CODE:004B3CF0 test al, al
- ; Если она вернула AL не равный 0, то программа работает в полном режиме
- CODE:004B3CF2 jnz short loc_4B3D06
- CODE:004B3CF4 xor edx, edx
- CODE:004B3CF6 mov eax, [ebx+340h]
- CODE:004B3CFC mov ecx, [eax]
- CODE:004B3CFE call dword ptr [ecx+0CCh]
- CODE:004B3D04 pop ebx
- CODE:004B3D05 retn
- CODE:004B3D06 ; ---------------------------------------------
- CODE:004B3D06 loc_4B3D06:
- ; Заменить дефолтный текст на "Personal"
- CODE:004B3D06 xor edx, edx
- CODE:004B3D08 mov eax, [ebx+3F0h]
- CODE:004B3D0E call @Controls@TControl@SetVisible$qqro
- ; Controls::TControl::SetVisible(bool)
- CODE:004B3D13 mov edx, offset _str_1_0_0_Personal.Text
- CODE:004B3D18 mov eax, [ebx+3C0h]
- CODE:004B3D1E call @Controls@TControl@SetText
- ; Controls::TControl::SetText(System::AnsiString)
- CODE:004B3D23 pop ebx
Программа успешно "зарегистрирована"
Окно с предложением активации пропало, во вкладке "О программе" наблюдаем текст о персональной полнофункциональной версии. Кроме того, стала доступной функция оптимизации памяти, недоступная в демо-режиме. А главное, что программа стала портативной и будет прекрасно работать без всякой активации на любом компьютере. Вот так в очередной раз была побеждена человеческая жадность, а мы научились обходить несложную защиту, основанную на активации по СМС.
Просмотров: 6136 | Комментариев: 22
Метки: исследование защиты
Внимание! Статья опубликована больше года назад, информация могла устареть!
Комментарии
Отзывы посетителей сайта о статье
Alex
(23.02.2016 в 16:23):
То что фунция генерации на сервере, ничего еще не значит. Функция проверки на месте, можно ее разобрать, забрутить, найти коллизии, а далее набросать кейген. Правда эта прога того не стоит.
user
(30.07.2013 в 03:06):
Не могу не возразить на:
"Ну раз есть демо-режим, значит должен быть и нормальный полноприводный."
***
Не... Удаляю предположения, но вы поймёте.
"Ну раз есть демо-режим, значит должен быть и нормальный полноприводный."
***
Не... Удаляю предположения, но вы поймёте.
Роман
(15.10.2012 в 12:50):
Вы не можете мириться с запросами шароварщиков для всего софта или как то выборочно?
ManHunter
(06.10.2012 в 08:45):
Исходник, здесь не пансион благородных девиц. И если я где-то каких-то правил не читаю, то я в этом случае ничего там и не прошу.
Исходник
(06.10.2012 в 05:54):
ManHunter,SVS
Зачем такое хамство сходу? ну не все как-то озадачиваются читать ваши правила сайта, вы читаете все правила когда устанавливаете программы? нет, так можно просто ответить без матов и хамья, а то как-то такое ощущение что вы безупречные люди и никогда не тупите, или вам тоже так отвечают - че баран, поди почитай или прозрей потому что я вот знаю, а ты нет.
А то неприятно такое от вас читать, как-то по высокомерному и быковски выходит.
А за статьи спасибо, тренироваться удобно.
Зачем такое хамство сходу? ну не все как-то озадачиваются читать ваши правила сайта, вы читаете все правила когда устанавливаете программы? нет, так можно просто ответить без матов и хамья, а то как-то такое ощущение что вы безупречные люди и никогда не тупите, или вам тоже так отвечают - че баран, поди почитай или прозрей потому что я вот знаю, а ты нет.
А то неприятно такое от вас читать, как-то по высокомерному и быковски выходит.
А за статьи спасибо, тренироваться удобно.
SVS
(28.08.2012 в 11:16):
Для любителей оптимизаторов: есть куда более полезная прога - Anvir Task Manager http://www.anvir.net/ . Так вот, в этой проге есть как дополнительная бонус-фича - оптимизация памяти. Бесплатно и красиво на зависть шароварщикам. Дискете далеко до неё. К чему это написала? Для тех, кто ни жить, ни быть хочет именно шароварными прогами пользоваться, а ломать даже по картинкам не умеет. Не заморачивайтесь, тут несколько ссылок на подобные проги даны. А смысл статьи немного в другом так-то.
ManHunter
(26.08.2012 в 21:30):
Petr, камменты или правила читать не пробовал? Или похуй, читать - это не для тебя?
Petr
(26.08.2012 в 21:22):
А где ссылка на отломанную версию?
буратино
(11.08.2012 в 09:08):
Дискета.info как говорится - хотите ... всех?! сделайте её бесплатной и тем самым нанесите сокрушительный удар по статье ManHunter`a!
Руслан
(10.08.2012 в 17:19):
Есть на самом деле интересная утилитка CintaNotes, а не эта фигня, почитал бы ).
Когда-то по вашему руководству отучил от триала Sothink SWF Decompiler, за что вам желаю как минимум всегда иметь возможность готовить по вашим рецептам ). Не запускаю чтопопало на компе, а так и разминка для ума.
Когда-то по вашему руководству отучил от триала Sothink SWF Decompiler, за что вам желаю как минимум всегда иметь возможность готовить по вашим рецептам ). Не запускаю чтопопало на компе, а так и разминка для ума.
ManHunter
(10.08.2012 в 06:08):
Я так понимаю, что для активации теперь требуются админские права? Пойду попрошу у наших админов на работе, чтобы подняли уровень моей учетки, дабы я мог активировать программу :) А то они какие-то хмурые ходят, пусть хоть посмеются.
Anonymous
(10.08.2012 в 05:10):
Автор с испугу повысил версию программы аж до 1.5 :)
Но защиты никакой не появилось, ищем сообщение об успешной активации, чуть выше пара условных переходов, ведущих на "плохие" ответы. Так что делаем один безусловным, а второй нопим, после чего программа активируется любым номером даже без наличия интернетов.
ну и для любителей непатченых файлов: при успешной регистрации в реестре по адресу HKCU/Software/Microsoft создается ключ с именем Clear Memory. Выставляем ему любое значение, например, "MANHUNTER" - и мы зарегистрированы.
Ждем завтра версию 2.0 :D
P.S. Хранить свою регистрацию в разделе реестра, предназначенном для нужд ОС - руки за такое отрывать надо.
Но защиты никакой не появилось, ищем сообщение об успешной активации, чуть выше пара условных переходов, ведущих на "плохие" ответы. Так что делаем один безусловным, а второй нопим, после чего программа активируется любым номером даже без наличия интернетов.
ну и для любителей непатченых файлов: при успешной регистрации в реестре по адресу HKCU/Software/Microsoft создается ключ с именем Clear Memory. Выставляем ему любое значение, например, "MANHUNTER" - и мы зарегистрированы.
Ждем завтра версию 2.0 :D
P.S. Хранить свою регистрацию в разделе реестра, предназначенном для нужд ОС - руки за такое отрывать надо.
Anonymous
(09.08.2012 в 20:21):
"и на один компьютер" - а если сделал апгрейд или поменял компьютер, то покупай заново? Нифига себе...
ManHunter
(08.08.2012 в 09:29):
Где ты увидел взлом? Я указал на слабые места в твоей защите, а готовых ломаных файлов тут нет и никогда не будет.
Дискета.info
(08.08.2012 в 09:23):
Аяй, нехорошо ломать чужие программы!
hatebreed
(08.08.2012 в 03:49):
Есть и бесплатные (open source) тулзы для очистки памяти
http://www.henrypp.org/?product=memreduct
это я к тому - а вдруг эта прога юзает те же фичи, только платн
http://www.henrypp.org/?product=memreduct
это я к тому - а вдруг эта прога юзает те же фичи, только платн
Петр
(06.08.2012 в 16:30):
Спасибо
Балбес
(06.08.2012 в 13:19):
Я прекрасно понимаю, просто я выражаю свое мнение о том, что меня как раз интересует тематика узкая. Простите меня, эгоиста
SVS
(05.08.2012 в 23:56):
Балбес, здесь всего поровну. И уж тем более данный сайт не является узкотематическим, просто у некоторых, как бы помягче сказать, балбесов мозги узкие... простите меня грешную...
Балбес
(04.08.2012 в 11:35):
Ну наконец-то не варенье, а что-то более интересное
2
(04.08.2012 в 10:04):
как всегда всё кулл )
Добавить комментарий
Заполните форму для добавления комментария
А то версии меняются, и новичок уходит в ступор.
2.Подскажите, кто знает, пожалуйста, вот что...
Я не вижу у себя в IDA такое:
; По умолчанию установить текст "Demo"
CODE:004B3C9B mov edx, offset _str_1_0_0_Demo.Text
CODE:004B3CA0 mov eax, [ebx+3C0h]
CODE:004B3CA6 call @Controls@TControl@SetText
; Controls::TControl::SetText(System::AnsiString)
То есть, не нахожу "offset _str_1_0_0_Demo.Text"
Это потому что автор (может, с чьей-то помощью) уже поработал над защитой?
Или искать не умею?
Или IDA нужно как-то настроить, чтобы она такое показывала?
3. "Но защиты никакой не появилось, ищем сообщение об успешной активации, чуть выше пара условных переходов, ведущих на "плохие" ответы" - опять-таки, что за сообщение, и как его найти?
Я и "Activated", и "Reristered", и "Success" искал - нет такого.
Пока вижу только "Demo" и "Personal" в Hiew.