Сейчас на форуме: Rio (+10 невидимых) |
![]() |
eXeL@B —› Основной форум —› System Safety Monitor 2.1b - need help |
Посл.ответ | Сообщение |
|
Создано: 28 июня 2006 14:22 · Личное сообщение · #1 В опчем, проблемка с сабжем - прога очень хороша в плане возможностей обеспечения безопасности системы, - может блокировать запуск/остановку указанных в настройках программ, контролирует доступ к реестру, мониторит окна етк. Программам можно задавать права - на доступ к ФС, на запуск дочерних процессов и много ещё чего. Может работать в интерактивном режиме (напоминает Аутпост/КАВ 6), либо, не выдавая себя особо, запрещать пользователю всё, что явно не разрешено. Короче мегаполезная штука (много наград получала етк.), но хочет денег и работает месяц. Лекарства в природе, по все видимости, не существует - асталависта, руборд, просто гугл - все молчат насчёт ключа или ретейла. Решил попробовать вылечить сам. Ставлю. Дистр на NSIS, предлагает ввести ключ и сам же оповещает, что ключ не подходит (т.е. ключ проверяется прямо инсталлятором - либо подтягивается длл-ка, либо алгоритм в скрипте. NSIS я разбирать не умею, поэтому согласился с триальным ключом). Потом вешается драйвер и в винлогон регистрируется дллка. Ребут. Мониторил Ашампу унинсталлером - в реестре записей минимум делается, на винт особо подозрительных файлов не пишется (это я о том, где мог бы прятаться триал). Ок, загрузился. Ни пакеров, ни протекторов не заметно, основной ехе - на Дельфи, остальное местами на сях (длл-ки, выгруженные в темп инсталлятором вообще не опознались на предмет компилятора...). В папке с прогой есть key.dat с двоичным на вид содержимым. Запустившись, прога считывает из него триал-лицензию. При загрузке в Олю получаю ошибку "типа, не удаётся установить брейкпоинт", отладка не получатеся - брейкпоинты недоступны как класс, - чтож, значит, драйвер защищает. Отключаю автоматическую загрузку драйвера, перегружаюсь. При запуске осн прога ругается что не может найти драйвер и не стартует. Гружу в Олю, всё ок. Нахожу место проверки драйвера, заставляю перепрыгивать, грузится, ок. Далее - см процедуру регистрации (не люблю Дельфи, но в таких случаях этот компилер на руку - в DeDe всё легко нашлось). Поигрался с ней некоторое время - кончилось тем, что рабочий триальный ключ прога перезаписала на ту белиберду, которую вводил я. После перезапуска получаю ошибку - "ключ недействителен, давай регаться?". Ок. Оля, вырубаю проверку ключа на старте, прога запускается, в окне about вместо триал-лицензии светится "зарегистрировано на:__ количество лицензий:0 срок окончания:__" т.е. всё пусто, лицензий ноль, но и триала-то нет! Гуд, думаю, прибиваю key.dat вообще, запускаю - арбайтен. Включаю обратно драйвер, ребут - облом. Прога запускается, о триале ни слова, но теперь ограничения не работают - видимость правил есть, но не испольняются они напрочь - так, как будто драйвер не загружен. Смотрю его статус - всё ок, онлайн. А прога не работает. Начинаю экспериментировать. Делаю версию, в которой обрубаю только проверку ключа, + версию, не проверяющую загруженность драйвера, + версию, в которой явно отключил все джампы, способные увести от процедуры загрузки драйвера (я пришёл к выводу, что драйвер запускается, или как-то активизируется самой прогой). Просматриваю в хекс-режиме файл драйвера на предмет упоминаний того ключа - чисто. Выходит, триал должен быть в самой проге, а не в драйвере. Перегружаюсь снова и начинаю пробовать варианты. Версия с пропатченой проверкой ключа ругается на отсутствие драйвера (хотя он запущен). Версия, с пропатченой проверкой драйвера запускается и ничего не делает. Версия, в которой обязательно должна выполняться процедура подгрузки драйвера тоже не работает. === Соответственно в итоге просьба - кому не лень - посмотрите прогу, мож я чё пропустил? Патчил эти точки: От проверки драйвера: (работает) 53E63A: je -> nop 53E660: jnz -> jmp От проверки ключа: (работает) 535E2B: je -> nop 535E39: jnz -> jmp Попытка гарантировать загрузку драйвера: (эффекта не дало) 53E410: je -> nop 53E426: jnz -> nop 53E43C: je -> nop 53E446: je -> nop Прога очень полезна, а ни кейгена, ни патча пока нет - помогите поправить недоразумение ![]() Дистр на офсайте http://syssafety.com/download/ssm-2.1.0.575b.exe?pid=102 (3.2Мб) ![]() |
|
Создано: 29 июня 2006 00:31 · Поправил: r99 · Личное сообщение · #2 |
|
Создано: 29 июня 2006 09:02 · Личное сообщение · #3 |
|
Создано: 29 июня 2006 14:27 · Личное сообщение · #4 |
|
Создано: 30 июня 2006 10:05 · Личное сообщение · #5 2 SergSh : спасибо огромное - помогло ![]() ![]() 2 All : в этой Ssmutil.dll через 3 строки от EP в EAX уже кладётся 1, так что совет SergSh можно применить так: 5310D4AC: PUSH 0C -> nop 5310D4AE: PUSH 531189F8 -> nop 5310D4B3: CALL 5310B408 -> nop 5310D4B8: XOR EAX,EAX 5310D4BA: INC EAX 5310D4BB: MOV [DWORD EBP-1C],EAX -> ret Триальный key.bin нужно оставить - файл с валидной лицензией(пусть и триальной) прога должна видеть. В About (кстати - русский интерфейс в комплекте есть - просто я выставяю инглиш, пока смотрю прогу в отладчике - чтоб не было путаницы со стрингами) отображается та же инфа, которую описывал раньше. Триал отключился, прога работает как надо. Ещё раз большое спасибо за помощь, тема закрыта. ![]() |
![]() |
eXeL@B —› Основной форум —› System Safety Monitor 2.1b - need help |