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

 eXeL@B —› Вопросы новичков —› Исследование программы, проверяющейся через сайт
Посл.ответ Сообщение

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

Создано: 06 октября 2010 14:55 · Поправил: JohnJ2
· Личное сообщение · #1

Здравствуйте.
Предыстория к вопросам:
Сам я новичок в деле крэкинга, работаю в Win7. Прошёл 16 уроков "Введение в крэкинг с нуля используя OllyDBG". Дальше пошли уроки на тему запакованных программ, поэтому решил, что готов исследовать незапакованные сам, тем более что почти все crackme удавалось делать перед чтением урока.
И вот нашёл интересный вариант: SLAVA Proxy Server. Его защита основана на другом принципе, чем у всех пройденных мною крэкми.
Во-первых, я выяснил, что введённые данные не проверяются spsadmin.exe, а отправляются на "серверный процесс" spssvc.exe. Исследовав этот процесс отдельно, нашёл место (одно из нескольких, скорее всего), где данные вставляются в GET [url с введёнными параметрами]. Работаю с отключенным интернетом, так что мои потуги не будут замечены на сервере.
Я открыл отдельно spssvc.exe в OllyDBG, для предварительного изучения, вот пример того, что я обнаружил: (прикрепил изображение к сообщению).

Вопросы:
1. Правильно ли я понимаю, что такой вид защиты можно обойти только заменой одного из переходов на другой адрес, чтобы проскочить обращение к сайту и проверку на правильность?
2. Я заметил, что после надписи "serial is valid" идёт вызов функции, после которой проверка и по результатам этой проверки выполняется всего один move. Скорее всего это флаг для других частей программы, но я не очень опытен и хотелось бы это проверить. Возможно ли подключить к OllyDBG уже запущенный процесс для исследования? И как перехватить приём данных от другой программы? Впрочем, я мог бы просто поставить там bpx в начале, перед инициализацией сокета.
3. Вопрос касается темы, но уже не совсем по крэкингу: я заметил, что spssvc.exe работает в фоновом режиме только когда запускается "автоматически", а когда запускаю я - быстро завершается. Подозреваю, что не хватает каких-то параметров запуска? Где их можно посмотреть?
4. Может я полез не в ту степь? Проверил, что программа spssvc.exe делает с полученными данными - она ищет в них все введённые через форму поля, плюс строку "serial is valid". Я ей подсунул эти данные через фиктивный сервер, она скушала и, судя по всему, обрадовалась. Но дальше начинает генерировать какой-то хеш. И самое плохое, что непонятно, какие данные хеширует. И второе что мне пока не понятно - для чего его потом использует. Хеш каждый раз разный, значит в исходных данных что-то меняется. Может ли сервер синхронно генерировать по тем же правилам разных хеш каждый раз? Возможно, но пока не могу представить, какой переменный параметр для этого лучше подходит - время ведь может не совпадать на сервере и компьтере...

9ee7_06.10.2010_CRACKLAB.rU.tgz - листинг.png




Ранг: 164.6 (ветеран), 65thx
Активность: 0.120
Статус: Участник
Волшебник

Создано: 06 октября 2010 15:27
· Личное сообщение · #2

3. Что значит запускается "автоматически"? Прописан где-то в автозагрузке или возможно spssvc.exe - это сервис, который должен запускаться менеджером сервисов а не напрямую пользователем.

-----
Следуй за белым кроликом




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

Создано: 06 октября 2010 16:01
· Личное сообщение · #3

"Запускается автоматически" - я имел ввиду при загрузке виндовса. Но в списке "Автозагрузка" его нет, и в msconfig тоже не обнаружил...
Благодаря подсказке neomant-а, я нашёл, что spssvc действительно запускается в сервисах. Спасибо




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

Создано: 06 октября 2010 16:51
· Личное сообщение · #4

Как вариант ты можешь поставить локальный сервак и снифать все обращения программы к нему, чтобы потом сделать эмулятор ответов.

-----
EnJoy!




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

Создано: 06 октября 2010 20:24
· Личное сообщение · #5

Про первый вопрос понятно теперь, что существуют другие варианты. Спасибо, буду изучать дальше
Про второй - сам обнаружил в меню File пункт Attach, поставил бряки, а spsadmin запускаю "свободным" процессом и бряки срабатывают в spssvc сами.



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

Создано: 07 октября 2010 14:15
· Личное сообщение · #6

Появился новый вопрос, я добавил его в первый пост за номером 4.



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

Создано: 08 октября 2010 13:07 · Поправил: JohnJ2
· Личное сообщение · #7

Хм... после длительного и местами тчательного исследования не удалось обнаружить, где используется хеш, зато обнаружил, что введённый серийный номер начинает проверяться... и это после отправки на сервер и т.п. На каком-то этапе, если частично код проверен успешно, создаётся spsreg.key и заполняется всякой бякой. Пока не разобрался отчего в нём такая "нечеловеческая" информация - возможно что серийный номер не удовлетворяет условиям проверки и нужные участки памяти не заполняются тем, чем надо...
И сама проверка хитрая тоже... Сначала на основе серийного номера вычисляются "сумбурные" значения, а затем они сравниваются с определёнными частями серийного номера. Завтра буду изучать, по какому алгоритму вычисляются эти значения, чтобы понять, какой номер ему нужен, но уже складывается впечатление, что к этой программе с моим уровнем знаний кейген не написать .
Если кто-то заинтересовался и хочет присоединиться к исследованию (с целью самообразования и помощи новичку ), то программу можно скачать отсюда: http://www.slava-soft.com/downloads/sps_setup26.exe Это ни в коем случае не запрос на взлом, это предложение о помощи или о совместной работе...
Написана она на Delphi, однако ни из DeDe, ни из IDR я не сумел выудить сколь-нибудь полезную информацию для себя, которой бы я ещё не знал после OllyDbg. Скорее всего это от того, что я ещё многого не понимаю...
Надеюсь на подсказки знающих людей - может можно как-то облегчить процедуру взлома регистрации? Просто я боюсь, что иду по самому неверному пути из возможных, и правильнее было бы делать по-другому.


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


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