Сейчас на форуме: _MBK_ (+5 невидимых) |
![]() |
eXeL@B —› Вопросы новичков —› Исследование программы, проверяющейся через сайт |
Посл.ответ | Сообщение |
|
Создано: 06 октября 2010 14:55 · Поправил: JohnJ2 · Личное сообщение · #1 Здравствуйте. Предыстория к вопросам: Сам я новичок в деле крэкинга, работаю в Win7. Прошёл 16 уроков "Введение в крэкинг с нуля используя OllyDBG". Дальше пошли уроки на тему запакованных программ, поэтому решил, что готов исследовать незапакованные сам, тем более что почти все crackme удавалось делать перед чтением урока. И вот нашёл интересный вариант: SLAVA Proxy Server. Его защита основана на другом принципе, чем у всех пройденных мною крэкми. Во-первых, я выяснил, что введённые данные не проверяются spsadmin.exe, а отправляются на "серверный процесс" spssvc.exe. Исследовав этот процесс отдельно, нашёл место (одно из нескольких, скорее всего), где данные вставляются в GET [url с введёнными параметрами]. Работаю с отключенным интернетом, так что мои потуги не будут замечены на сервере. Я открыл отдельно spssvc.exe в OllyDBG, для предварительного изучения, вот пример того, что я обнаружил: (прикрепил изображение к сообщению). Вопросы: 4. Может я полез не в ту степь? Проверил, что программа spssvc.exe делает с полученными данными - она ищет в них все введённые через форму поля, плюс строку "serial is valid". Я ей подсунул эти данные через фиктивный сервер, она скушала и, судя по всему, обрадовалась. Но дальше начинает генерировать какой-то хеш. И самое плохое, что непонятно, какие данные хеширует. И второе что мне пока не понятно - для чего его потом использует. Хеш каждый раз разный, значит в исходных данных что-то меняется. Может ли сервер синхронно генерировать по тем же правилам разных хеш каждый раз? Возможно, но пока не могу представить, какой переменный параметр для этого лучше подходит - время ведь может не совпадать на сервере и компьтере... ![]() ![]() |
|
Создано: 06 октября 2010 15:27 · Личное сообщение · #2 |
|
Создано: 06 октября 2010 16:01 · Личное сообщение · #3 |
|
Создано: 06 октября 2010 16:51 · Личное сообщение · #4 |
|
Создано: 06 октября 2010 20:24 · Личное сообщение · #5 |
|
Создано: 07 октября 2010 14:15 · Личное сообщение · #6 |
|
Создано: 08 октября 2010 13:07 · Поправил: JohnJ2 · Личное сообщение · #7 Хм... после длительного и местами тчательного исследования не удалось обнаружить, где используется хеш, зато обнаружил, что введённый серийный номер начинает проверяться... и это после отправки на сервер и т.п. На каком-то этапе, если частично код проверен успешно, создаётся spsreg.key и заполняется всякой бякой. Пока не разобрался отчего в нём такая "нечеловеческая" информация - возможно что серийный номер не удовлетворяет условиям проверки и нужные участки памяти не заполняются тем, чем надо... И сама проверка хитрая тоже... Сначала на основе серийного номера вычисляются "сумбурные" значения, а затем они сравниваются с определёнными частями серийного номера. Завтра буду изучать, по какому алгоритму вычисляются эти значения, чтобы понять, какой номер ему нужен, но уже складывается впечатление, что к этой программе с моим уровнем знаний кейген не написать ![]() Если кто-то заинтересовался и хочет присоединиться к исследованию (с целью самообразования и помощи новичку ![]() ![]() Написана она на Delphi, однако ни из DeDe, ни из IDR я не сумел выудить сколь-нибудь полезную информацию для себя, которой бы я ещё не знал после OllyDbg. Скорее всего это от того, что я ещё многого не понимаю... Надеюсь на подсказки знающих людей - может можно как-то облегчить процедуру взлома регистрации? Просто я боюсь, что иду по самому неверному пути из возможных, и правильнее было бы делать по-другому. ![]() |
![]() |
eXeL@B —› Вопросы новичков —› Исследование программы, проверяющейся через сайт |