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

 eXeL@B —› Основной форум —› Исследование ClubControl Platinum Demo
Посл.ответ Сообщение

Ранг: 34.6 (посетитель)
Активность: 0.020
Статус: Участник

Создано: 09 января 2006 12:43
· Личное сообщение · #1

Данная программа предназначена для использование в компьютерных клубах и интернет-кафе. Отличается от остальных гибкостью интерфейса и настроек за что и получила широкое распространение.

Откуда: clubcontrol.ru/demo/ClubControlDemo.rar
Размер: 5.7 MБ (5 936 344 байт)

Данная демо версия имеет два ограничения(работает только с 10:00-17:00 и не возможно изменить пароль главного админа), а так в принципе она полнофункциональна и пригодна для использования!

Устанавливаю себе на комп серверную часть
Лезу в PEiD и смотрю "Microsoft Visual C++ 7.0", ага, прога ничем не запакована
отлично!
Первое что необходимо снять это "защита временем"
ставлю бряк на GetLocalTime и запускаюсь, но олька не прерывается, выскакивает наг сообщающий о наличии ограничений, после чего выскакивает второй наг о том что типа время выбрал не удачное
и прога завершает работу.
вот и вопрос созрел
как прога ещё может проверять время на компе?




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

Создано: 09 января 2006 19:14
· Личное сообщение · #2

nobody пишет:
как прога ещё может проверять время на компе?

способов туева хуча !

Попробуй так. Если ломаешь в Оле - CTRL+N -> ищешь все апи со словом time -> забрячиваешь их (можно разными способами, но лучше всего, имхо, "Toggle breakpoint on import").
Или другой способ.
Посмотреть какие АПИ вызывает прога с помощью любого АПИ шпиона. (Kerberos очень неплох)

-----
Ни одно доброе дело не должно остаться безнаказанным !!!





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

Создано: 09 января 2006 20:17
· Личное сообщение · #3

nobody, возьми любой справочник по API функциям, там будет около 15 функций, связанных непосредственно с временем. Самый действенный способ предложил [EXE]_cutor. Если неохота ставить бряки на все 15 функций, то вот тебе 5 самых распространённых имхо в защитах: GetTickCount,
GetLocalTime, GetSystemTime, GetSystemTimeAsFileTime, GetFileTime. За полным списком обращайся к WinAPI справочнику.




Ранг: 110.0 (ветеран), 1thx
Активность: 0.090
Статус: Участник

Создано: 09 января 2006 20:33
· Личное сообщение · #4

Обязательно засунь прогу в IDA, примени Microsoft VisualC 2-7/net runtime, MFC 3.1/4.0/4.2/7.1 32bit

Поставь брэкпоинт на мессаджбокс, когда прервёшся второй раз. Смотри по листинку выше может есть какие-нибудь функции для работы со временем, распознаные идой.

Увидел функцию:
__localtime64 (В другой проге помню как то встретил COleDateTime::GetTime)
Ну вообщем нужно занопить:
.text:004D4A76 jz loc_4D505B
.text:004D4A76 jz loc_4D505B
.text:004D4A9B jge loc_4D505B
------------------
Слива в том что там потом ещё идет проверка времени и если оно не в нужном интервале то далеко не MessageBox выводится. Славо богу!!! что я это заметил и пропатчил.
Ну вообщем занопь эти переходы и посмотри что произойдёт с твоим компом.

-----
Никто не знает столько, сколько не знаю я




Ранг: 34.6 (посетитель)
Активность: 0.020
Статус: Участник

Создано: 10 января 2006 15:25
· Личное сообщение · #5

Спасибо за советы
но я пошел немного другим путём...может более геморным, но не менее эффективным
я протрассировал прогу в нормальном режиме работы(благо до нага кода там немного и времени ушло минут 5) и когда прога запускается в "не рабочее" время
сравнил переходы и заменил несколько условных джампов на безусловные(занопить тоже что-то пришлось, но я почему-то забыл это законспектировать в блокноте)...
прога конечно запустилась, но тут же порадовала аварийным выключением компа ))
есесно посмотрел какие апи вызывают выключение(кстати, кроме апи, выключение ещё происходит и через запуск Rundll32.exe с параметром shell32,SHExitWindowsEx 1), поставил бряки и к своему удивлению обнаружил, что проверки на "правильное" время стоят повсюду!!! и если прогу всё-таки удается запустить, то она тут же отрубается(по аналогии с наномитами видимо, я назвал это Родномитами(от фамилии автора проги )) вместе с компом...
общий принцип проверок я понял и всё свелось к тому чтобы занопить от 3 до 6 джампов и поменять 2 джампа на безусловные...
половину проги я уже "научил" работать как надо, но тяжелее всего приходится с основной функцией - "постановки времени на клиентский комп"!
Satanael, если ты тоже смотришь эту прогу, попробуй посмотреть эту функцию
начинается она где-то рядом с 004E67A5 (сверху)



Ранг: 34.6 (посетитель)
Активность: 0.020
Статус: Участник

Создано: 10 января 2006 15:39
· Личное сообщение · #6

Satanael пишет:
Славо богу!!! что я это заметил и пропатчил.

в смысле ты пропатчил какую-то глобальную проверку? или имеешь ввиду что пропатчил только то чтобы прога запускалась в любое время?




Ранг: 110.0 (ветеран), 1thx
Активность: 0.090
Статус: Участник

Создано: 10 января 2006 18:21
· Личное сообщение · #7

nobody
в смысле ты пропатчил какую-то глобальную проверку? или имеешь ввиду что пропатчил только то чтобы прога запускалась в любое время?
------------------
Да это я про перезагрузку, лично я раньше с прогами которые так кординально поступают не сталкивался.

-----
Никто не знает столько, сколько не знаю я




Ранг: 34.6 (посетитель)
Активность: 0.020
Статус: Участник

Создано: 10 января 2006 20:19
· Личное сообщение · #8

Satanael пишет:
Да это я про перезагрузку, лично я раньше с прогами которые так кординально поступают не сталкивался.

что именно и где патчил?
самый простой способ конечно это занопить вызовы процедур выключения, но не факт что прога будет работать правильно...
я же сделал по другому: исключил возможность перехода на эти фукнции путём нопа джампов проверок и изменения некоторых условных джампов на безусловные....
но таких проверок функций в программе около 30!!!!!
и после первого десятка мне уже это порядком поднадоело!
Satanael, а как ты обошел это?




Ранг: 110.0 (ветеран), 1thx
Активность: 0.090
Статус: Участник

Создано: 11 января 2006 00:32
· Личное сообщение · #9

Хм, странно я вроде в одном месте пропатчил прогу, запустил всё вроде нормально работало.
Попыток вроде перезагрузки небыло (хотя у меня была много программ запущено, вдруг какая-то не дала виндам перезагрузится).
-------
Пропатчить так что бы в 30 местах не мучатся, очень просто:
возьми да и пропатч функции определения времени __localtime64.

-----
Никто не знает столько, сколько не знаю я





Ранг: 605.2 (!), 341thx
Активность: 0.470.25
Статус: Модератор
Research & Development

Создано: 11 января 2006 04:48
· Личное сообщение · #10

помню я эту прогу...
не советую запускать клиентский модуль без особой надобности и бэкапа... инета можно запросто лишиться или того хуже...
что касается ребута, то проще в самой функции, которая отвечает за отрубание компа и сделать преждевременный выход из этой функции, также мона изменить SHExitWindowsEx на что-нить более безобидное
но ранний ret всего верней ;)

-----
EnJoy!




Ранг: 34.6 (посетитель)
Активность: 0.020
Статус: Участник

Создано: 11 января 2006 20:23
· Личное сообщение · #11

Satanael пишет:
возьми да и пропатч функции определения времени __localtime64.

это тоже самое что и лишить мужчину его полового органа!
это программа обязана "работать со временем", т.к. основная её функция это как раз работа со временем(подсчёт оставшегося времени на клиент.компе например)
Jupiter пишет:
не советую запускать клиентский модуль без особой надобности и бэкапа... инета можно запросто лишиться или того хуже...

Да! есть такое поэтому давно обзавелся VMware'ом
Jupiter пишет:
что касается ребута, то проще в самой функции, которая отвечает за отрубание компа и сделать преждевременный выход из этой функции, также мона изменить SHExitWindowsEx на что-нить более безобидное
но ранний ret всего верней ;)

вот именно что отдельной функции отрубания компа нет и каждый раз в процедурах эта функция описывается и врубается вместе с полезным кодом...
т.е. даже если программа обнаружит что время "не то", но при этом будут занопены вызовы SHExitWindowsEx, то всё равно прога продолжит своё правильное выполнение )))
Jupiter, тебе приходилось работать с полной версией проги? не помнишь где там регистрационная инфа зашита?


 eXeL@B —› Основной форум —› Исследование ClubControl Platinum Demo
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


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