![]() |
eXeL@B —› Вопросы новичков —› нужна помощь в исслдовании C++ |
Посл.ответ | Сообщение |
|
Создано: 07 февраля 2009 23:31 · Личное сообщение · #1 Привет из Севастополя ![]() Пытаюсь получить ключ и как-то вытянуть его с видеокурсов (...Технические Моменты Онлайн Бизнеса...) Хочется научится научится WEB дизайну, и приходится ламать другое... Суть защиты: Программа при запуске выдает окошко с ID номером и Кодом в одном окне - и требует Ключ активации( для активации) Проделанная работа (2 дня знаю, что такое crack ![]() Выявлено, что защита напсана на Microsoft Visual C++ 6.0 с помощью PED, соответсвенно она не запакована. Предполагаю, что нужно изучить алгоритм генерации ключа с помощью отладчика Softice. Но с ним траблы даже при установки ![]() ![]() Может есть какие нибудь у кого ссылки на отладчик или поделится опытом на взлом подобных защит? Буду внимательно слушать ![]() ![]() |
|
Создано: 07 февраля 2009 23:44 · Личное сообщение · #2 SULTAN Запусти PE-Tools посмотри какие там Win32API ф-ции импортируются Найди и закачай себе Olly Debug можешь тут на сайте послушать возгласы за какую-либо сборку этого дебагера Ну и опиши суть ограничений, которая налагает эта прога, т.е. если не активировать че будет ? ----- My love is very cool girl. ![]() |
|
Создано: 08 февраля 2009 02:45 · Поправил: SULTAN · Личное сообщение · #3 через PEID Entrypoint - 001A7849 EP Selection - .text File Offset - 001A7849 First Bytes - 55,8B,EC,6A Linker Info - 6.0 Subsystem - Win32 GUI Microsoft Visual C++ 6.00 ограничений нет она может вечно лежать, пока не приобретешь ключ на какой нибудь раздел - вводишь правильный ключ программа выдает окошко типо ключ принят пожалуйста перезапустите меня ![]() вот собственно о чем речь http://www.allmoments.at.ua/index/0-15 http://www.allmoments.at.ua/index/0-15 . Как видите их уже взломали и еще и перепродают. Снизу на странице увидешь окошко само как выглядит. Вообще, автор этих курсов исключительно высылвет на заказ, и не заливает их. Но взломщик взломал, сделал сайт, залил на фтп сервера курсы ( причем на разные и разбил на 135 архивов ) . После скачивания и распаковки архивов - есть папки (уроки) и exe-ный файл ( т.е. ничего инсталировать не надо). Этот хакер ![]() ![]() Удивительно, что у разных людей ID первого раздела уроков разные. Т.е. есть предположение, что программа при 1 ом же запуске считывает некую информацию с железа или ОС компа - и автоматом генерирует ID и ключ в сооствествии с железом или ОС компа. При перезапуске программы ID и номер ключа на одном и том же компьютере не меняются никогда Что касается OLLYDBG то пока темный лес в этом, буду разбираться (тяга к знаниям ![]() P.S. Интерестно что теперь после моего ковыряния запускающегося файла самой защиты - PEID стал выдавать уже не Microsoft Visual C++ 6.00 а Microsoft Visual C++ 6.00 [Overlay]. Хотя на другой копи распакованного варианта ( котрый находится на другом винте) все таже Microsoft Visual C++ 6.00. Чтобы это значило? ![]() |
|
Создано: 08 февраля 2009 10:26 · Поправил: Lampik · Личное сообщение · #4 |
|
Создано: 08 февраля 2009 10:36 · Поправил: progopis · Личное сообщение · #5 |
|
Создано: 08 февраля 2009 13:11 · Личное сообщение · #6 progopis ты ссылку указал на 1 ый диск, там насколько я понял идет речт о базе сайтостроения, о языках html css. Сам лично не скачивал тот диск,защита там предполагаю, что такая же как и на 2 ом, т.к. из одной серии. HTML и CSS я знаю, поэтому и мучаюсь со 2 ым диском (РhP и MySQ) Lampik у меня 2 копии как раз ( одна копия на диске С другая на D) - запускал, что на том, что на том - ID и ключ одинаковые выдает на обоих дисках. За ссылку спс - может получится привязать1 ый ID для всех разделов, к котрому у меня есть активациооный ключ. И тоже смотри в личку ![]() ![]() |
|
Создано: 08 февраля 2009 13:51 · Личное сообщение · #7 SULTAN Вопрос такой же защитой книги(если не ошибаюсь) обсуждается ещё здесь http://www.exelab.ru/f/action=vthread&forum=5&topic=12521 ![]() |
|
Создано: 08 февраля 2009 18:18 · Личное сообщение · #8 Везде почитал - выглядит защита на видеоруки также как и на электронные книги, представленные участниками форума. Но все предоставляемые книги были с PEStubOEP 1.6 -> GPcH Soft [Overlay] у меня же Microsoft Visual C++ 6.00 или Microsoft Visual C++ 6.00 [Overlay] - что очень странно. я даже не знаю с чего начать. Какие программы нужны для поюбора ключа или обхода ID для этого случая? Чтобы знать в каком направлении идти. Препробован loader по сссылки предложенный работал видимо только с той книгой или защитой. ![]() |
|
Создано: 08 февраля 2009 22:32 · Личное сообщение · #9 |
|
Создано: 27 февраля 2009 19:59 · Личное сообщение · #10 SULTAN Не стоит PEiD слишком доверять - надо проверять ![]() Насчет отладчика. Если программа не устанавливает никаких драйверов, значит SoftIce здесь излишен - тут достаточно OllyDbg. >Что касается OLLYDBG то пока темный лес в этом Отладчик действительно простой в изучени - при знании английского назначение всех кнопок понять труда не составит. Если ты юзал раньше отладчики, встроенные в Delphi или VisualC++, то проблем будет еще меньше. Теперь насчет хака. >требует Ключ активации В смысле ввести текст, а не выбрать ключевой файл с диска? Есть 2 варианта (используй один из них): 1) Сделать так, чтобы окошко не появлялось и программа вводить ключ не требовала Тогда тебе надо найти место в программе, к-е вызывает это окно. В той же OLLY ставишь бряки на функции, создающие диалоговые окна. Их несколько - это четыре CreateDialog-функции, т. е. те, которые начинаются с этого слова, и DialogBox (поправьте, если что-то упустил). Тебе надо запустить программу под отладчиком, и найти эти функции в ее памяти. Если эти ф-ии импортируются, то их адреса записываются в память процесса до его запуска. Тогда достаточно просмотреть таблицу импорта программы (на диске или в памяти) - там слева от имени ф-ий, занимая 4 байта, будут расположены dword-значения, в которых записан адрес, по которому распологается эта ф-я. По этому адресу ставишь бряк (можно не в начале ф-ии, а через несколько команд, н-р, на 3-ей). Итак, ставишь бряки на все эти ф-ии и запускаешь программу. Перед появлением диалога вызовется одна из этих ф-ий. Запоминаешь - с какого адреса она была вызвана (адрес лежит на стеке). Вместо бряков можно просто создать лог, в к-ый программа запустится в режиме трассировки и в файл будут писаться имена, адреса и аргументы тех ф-ий, которых ты укажешь. Для этого можно использовать отдельную программу - API-шпион (н-р Kerberos или API Logger от Рустима). Просматривая этот лог, ты увидишь все адреса, с к-х вызывались интересуемые тебя ф-ии. Когда появится диалог, можешь остановить лог (тогда нужный адрес будет в логе последним). Узнал адрес. Теперь можно исследовать код выше него, чтобы узнать - каким образом программа приняла решение что ключ еще не введен и отломать проверку. Разумеется, исследование кода лучше проводить в дизассемблере. 2) Узнать один из правильных ключей Найдя адрес, с которого происходит создание диалога, можно найти процедуру, проверяющую введенный ключ. При создании диалога функции передается адрес, на к-ый будет передаваться управление при получении этим диалогом сообщений (н-р, нажатие на кнопку 'OK'). Установим бряк на этот адрес и нажмем 'OK'. Трассируем этй ф-ю. Данная ф-я стандартизирована она проверяет аргументы, к-е означают - какому элементу управления какое сообщение поступило. Проверка аргументов чаще всего происходит оператором switch (для C++). - трассировка обязательно через нее пройдет. Трассируй, пока не перейдешь на case-ветку. Вот теперь ты там, где находится код, получающий управление при нажатии на кнопку 'OK'. Теперь, исследуя этот код в отладчике и в дизассемблере пытаемся найти функцию, которая занимается проверкой введенного ключа. В помощь можно найти в памяти ключ, к-ый мы ввели (это строка символов и поставить бряк на чтение к нему). Найдя код проверки ключа, можно: - проанализировать его и написать кейген, генерирующий ключи (пассивный взлом) - отключить проверку ключа, изменив 1-2 команды (активный взлом) 3) Анализ открываемых файлов / записей в реестре. Это все были активные методы анализа. А теперь пассивный. Чтобы знать - ввел пользователь ключ или не ввел, программа должна хранить где-то об этом информацию. В реестре или в файле. Воспользуемся файловым и реестровым монитором (программы Filemon и Regmon от Руссиновча, есть на www.sysinternals.com, там есть Procmon, который включает в себя обе программы). Эти проги устанавливают драйверы, так что работать будут только от админа. В фильтр мониторов запишем имя взламываемой проги - чтобы мониторы отслеживали только ее операции. Если это первый запуск программы, то отслеживаем все операции. Если программу уже запускали, то не отслеживаем операции записи и успеха. Включаем мониторинг. Запускаем программу и после появления диалога о вводе ключа, останавливаем мониторы. Перед нами - длинный список всех обращений к файловой системе и реестру, сохраняем логи в файл (на всякий случай). Затем, просматривая эти логи (лучше в самих мониторах), анализируем - какие файлы / записи реестра она открывала, зачем и что в них писала / читала. Можно совместить мониторы с отладкой. P.S. Стоит обратить внимание на логи 'NOT FOUND'. Иногда программы просят регистрацию, если файл не существует и после регистрации - этот файл создают. Если у тебя есть уже зарегистрированная копия, то взламывать будет еще проще. Но это - тема отдельного разговора. ![]() |
|
Создано: 02 ноября 2009 19:00 · Личное сообщение · #11 Есть желание восполнить пробел в знании относительно обработки очереди сообщений в Си программах Что можно по теме почитать? Интересно каким образом визуально опознать обработку нажатия клавиш, движения мыши и т.д. и как найти сами обработчики как пример: есть такая прожка: www.colorpilot.com/image2pdf.html на первый взгляд чистая демка, но там в ресурсах лежит форма для ввода RegCode есть подозрение, что она вызывается в результате определённых действий, но где я так и не нашёл ![]() на сам цикл обработки сообщений выйти легко, а где описание кодов найти, что что обрабатывает? ----- z+Dw7uLu5+jqLCDq7vLu8PvpIPHs7uMh ![]() |
|
Создано: 03 ноября 2009 13:28 · Поправил: OKOB · Личное сообщение · #12 Isaev пишет: есть подозрение Всего в ресурсах шаблоны для 4х диалогов (ID 129, 201, 202, 203). Два создаются через CreateDialogParamA (129 - text:0041B3A7, 203 - text:00425A77), один через DialogBoxParamA (201 - text:00425B08), а 202 (RegCode) - нет. Наверное просто в ресурсах осталась от полной версии. ----- 127.0.0.1, sweet 127.0.0.1 ![]() |
|
Создано: 03 ноября 2009 16:58 · Личное сообщение · #13 как-то странно... смысл то в чём тогда полной версии? там единственное ограничение в триале, что надпись шлёпает на каждую страницу, можно просто запатчить в конце концов... хотел просто ключик сделать ![]() прога порадовала, оптимизирует не плохо, не большой размер pdf на выходе получается и в общем-то во всём устраивает ----- z+Dw7uLu5+jqLCDq7vLu8PvpIPHs7uMh ![]() |
|
Создано: 04 ноября 2009 11:20 · Поправил: tundra37 · Личное сообщение · #14 |
|
Создано: 04 ноября 2009 14:23 · Личное сообщение · #15 |
|
Создано: 04 ноября 2009 14:55 · Личное сообщение · #16 |
|
Создано: 06 ноября 2009 12:56 · Личное сообщение · #17 |
|
Создано: 07 ноября 2009 08:23 · Поправил: tundra37 · Личное сообщение · #18 _ruzmaz_ пишет: Да, есть там такая кнопка, но если сделать ее видимой и нажать, то не происходит ничего) Ну так, если не получается с диалогом, то надо искать где в проге ее делают видимой - там же и должна быть активизация алгоритма регистрации, если такое заложено. Кстати, искали все только в проге, а почему не поискать в DLL. Я уже такое видел, что часть защиты прятали в другом месте ![]() ![]() |
|
Создано: 09 ноября 2009 12:57 · Личное сообщение · #19 |
![]() |
eXeL@B —› Вопросы новичков —› нужна помощь в исслдовании C++ |