Сейчас на форуме: Rio (+10 невидимых)

 eXeL@B —› Основной форум —› System Safety Monitor 2.1b - need help
Посл.ответ Сообщение

Ранг: 3.0 (гость)
Активность: 0=0
Статус: Участник

Создано: 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Мб)




Ранг: 328.7 (мудрец), 73thx
Активность: 0.170.01
Статус: Участник

Создано: 29 июня 2006 00:31 · Поправил: r99
· Личное сообщение · #2

кроме ру-борда есть еще -imho.ws



Ранг: 3.0 (гость)
Активность: 0=0
Статус: Участник

Создано: 29 июня 2006 09:02
· Личное сообщение · #3

Есть на imho.ws System Security Monitor, и даже 2.2. И даже крякнутый. Вот только для наладонников и производится другой конторой (т.е. это скорее всего просто совпадение названий)
Моя просьба актуальна.



Ранг: 115.3 (ветеран)
Активность: 0.030
Статус: Участник

Создано: 29 июня 2006 14:27
· Личное сообщение · #4

STaNN - обрати внимание на Ssmutil.dll. Попробуй изменить ЕР на
mov eax,1
retn
Думаю результат тебя удивит.



Ранг: 3.0 (гость)
Активность: 0=0
Статус: Участник

Создано: 30 июня 2006 10:05
· Личное сообщение · #5

2 SergSh : спасибо огромное - помогло Ума не приложу - ведь просматривал эту длл-ку, и как это сам не обратил внимания на то, что она делает и подозрительное её пристрастие к обнулению EAX

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
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати