![]() |
eXeL@B —› Крэки, обсуждения —› программа ReGSpy 1.72,немогу понять... |
. 1 . 2 . >> |
Посл.ответ | Сообщение |
|
Создано: 27 октября 2006 05:24 · Личное сообщение · #1 Решил поглядеть я такую прогу RegSPY 1.72.Программа следит куда какая прога обращалась в регистр.Сразу глянул PEiD'ом. Ничем не упакована. Загрузил в Olly Dbg.Из защиты проверяла только себя на IsDebuggerPresent и проверяла контрольную сумму файла. Неразегестрированная программа выдает в начале и при закрытии наг окно. Нашел я эти функции DialogBoxParamA. Тут такая заковырка. В DlgProc сообщается адрес 00414020,хотя адресно вызовы функций DialogBoxParamA находятся в разных местах, а там происходит "рисование" наг окна.Причем причем функции почти не вызываются, а происходит передача параметров в основном по регистрам. Как немогу понять себя эта прога проверяет на зарегистрированность.Если знаете подскажите.Уже ее разобрал по косточкам, но никак не пойму???Я еще не сильно опытный в этих делах, не пойму где делаю ошибку. ![]() |
|
Создано: 27 октября 2006 06:31 · Личное сообщение · #2 |
|
Создано: 27 октября 2006 06:38 · Поправил: aspirin · Личное сообщение · #3 |
|
Создано: 27 октября 2006 06:49 · Личное сообщение · #4 |
|
Создано: 27 октября 2006 10:02 · Личное сообщение · #5 |
|
Создано: 29 октября 2006 23:49 · Личное сообщение · #6 |
|
Создано: 30 октября 2006 06:55 · Личное сообщение · #7 |
|
Создано: 30 октября 2006 08:20 · Личное сообщение · #8 |
|
Создано: 30 октября 2006 08:39 · Поправил: sniperZ · Личное сообщение · #9 |
|
Создано: 30 октября 2006 09:03 · Личное сообщение · #10 sniperZ пишет: Тупо, т.к. прога требует её ребута, з.н. она данные где-то сохраняет. Да нигде она их не сохраняет, если просит ребут, значит работает в реестром, смотри всякими регмонами. Dark Star пишет: Кстати там СRC проверка походу есть я ее упаковал так она и запускаться не захотела. не факт, может трабла быть в ресурсах. ----- Ламер - не профессия :)) ![]() |
|
Создано: 30 октября 2006 09:13 · Личное сообщение · #11 |
|
Создано: 30 октября 2006 09:41 · Поправил: sniperZ · Личное сообщение · #12 sniperZ пишет: Тупо, т.к. прога требует её ребута, з.н. она данные где-то сохраняет aspirin пишет: Да нигде она их не сохраняет, если просит ребут, значит работает в реестром, смотри всякими регмонами. No comments. ![]() aspirin, ты сначала сам посмотри,а потом п#3ди. Dark Star пишет: Да а может она при верном серийнике ключ какой создает а при старте его ищет или файл. То нафиг ей че сохранять. Во-первых она любой ключ сохраняет,т.к. проверяет его правильность при перезагрузке. Dark Star пишет:Да а может она при верном серийнике ключ какой создает а при старте его ищет или файл. То нафиг ей че сохранять. aspirin пишет: Да нигде она их не сохраняет, если просит ребут, значит работает в реестром, смотри всякими регмонами. А во вторых создание ключа с данными и и есть сохранение данных. ![]() Хватит оставлять тупые посты ![]() ![]() |
|
Создано: 30 октября 2006 10:09 · Личное сообщение · #13 |
|
Создано: 30 октября 2006 12:21 · Личное сообщение · #14 sniperZ пишет: Во-первых она любой ключ сохраняет,т.к. проверяет его правильность при перезагрузке. А кто те сказал что она при загрузке его вообще проверяет. Ты нашел чтоли что она его юзает при старте проги? Объясню понятнее:Скорее всего она после ввода ключа проверяет его на valid'ность если так то создает либо файл на диске либо ключ или раздел в реестре(твои введенные данные ей и нафиг теперь не нужны) при запуске проверяет его существование если есть то зарегена. Как видиш твой рег код юзается лишь при проверке. ![]() |
|
Создано: 31 октября 2006 00:07 · Личное сообщение · #15 Я в первом посте писал про проверку на CRC, достаточно использовать плагин к PEiD, который fix'ит сумму и все в порядке. Тут дело в следующем. Логично, что у зарегистрированной программы наг окна не выдаются.Но в коде программы нет метода обхода НАГОВ. Т.е. нет никаких CMP или TEST, которые бы посылали прогу через функцию DialogBoxParamA.Программа при своем исполнении обязательно доходит до этой функции.Закачит заковырка где-то внутри. Там наг окно не просто ресуется, а происходит цикл, примерно из 14 кругов по одному и тому-же участку кода, и только потом по-элементно вырисовывается наг окно. Проверка где-то там, но где?А насчет регкода. То прога получив его при закрытии передает в reginj.dll и там начинаются какие-то безумные сверки, т.е. проверка ключа на валидность. Но я уверен, что потом прога проверяет себя на зарегистрированность именно в DialogBoxParamA. ![]() |
|
Создано: 01 ноября 2006 06:44 · Личное сообщение · #16 |
|
Создано: 01 ноября 2006 07:09 · Личное сообщение · #17 |
|
Создано: 02 ноября 2006 00:09 · Личное сообщение · #18 Xserg пишет: Максимум продвинулся 1. пароль ххХХ-ХХХХ-ХХХХ длинна = 0хЕ; Х = символы 1234567890ABCDEF 2. проверка в процессе REGSPY.exe Тут дело в следующем. Я тоже видел, что код такого типа.Но вот над чем стоит задуматься.Подбор кода может оказаться безрезультатным. А сама прога где-то проверяет, ты пользователь с ключом или без.Поэтому логично, что наги выводится не должны у легального пользователя. НО в программе наги вызываются функцией DialogBoxParamA, которые не обходятся кодом. Т.е. при любых раскладах программа зайдет в нее. Причем обязательно на адрес:00414020. С него и надо начинать искать. Я искал искал, но так и не нашел, а код подбирать может оказаться глупой затеей, надо хорошо знать криптографию, плюс возможно разработчики применили оригинальный алгоритм! ![]() ![]() |
|
Создано: 02 ноября 2006 05:45 · Личное сообщение · #19 |
|
Создано: 02 ноября 2006 06:37 · Личное сообщение · #20 |
|
Создано: 02 ноября 2006 06:56 · Личное сообщение · #21 Можно и мои пять копеек. В общем, так как программа не обращается ни к каким файлам на диске и не пишет в реестр, я понял, что это происходит только тогда, когда пользователь вводит правильный серийник. Значит, нужно следить за памятью, в которую вводится серийник. Проследив за нею, мы видим, что самое интересное происходит в reginj.dll, в которой запускается StartAppNT, когда мы закрываем RegSpy. Разбирать эту функцию - одно удовольствие. Опишу вкратце: 1) Берётся первое попавшееся окно - неважно, какое именно. Именно окно, потому что у него обязательно есть поток, обрабатывающий сообщения. В моём случае окнами были и explorer, и ida, и даже блокнот (его тред я вбивал сам). 2) На поток этого окна ставится хук WH_GETMESSAGE, обработчик MsgProc валяется там же, в reginj.dll 3) Этому треду посылается сообщение, чтобы сработал хук. 4) Хук срабатывает в контексте того процесса, на тред которого он был поставлен. В результате reginj.dll грузится в его адресное пространство. 5) Из MsgProc запускается функция 10001C20 (допустим, KewlProc), там всё и происходит. 6) KewlProc ждёт выгрузки процесса RegSpy.exe из памяти. Зачем, станет ясно позднее. 7) Проверяет серийник. Серийник, как тут правильно заметили, имеет вид XXXX-XXXX-XXXX. Это шестнадцатиричные числа. Схема проверки серийника довольно проста: xxAB-CCCC-CCCC. AB xor'ится с C8 и сдвигается влево на два. Это индекс в массиве. а СССС-СССС - это int, элемент массива. В ресурсах файла есть GIFка, которая на самом деле ни фига не гифка, а как раз проверочный массив. Одно мне было лень копать - этот массив при проверке серийника как-то изменяется одной функцией, но это уже работа для тех, кто хочет написать кейген. 8) Ладно, допустим, серийник совпал. Тогда KewlProc маппит в память regspy.exe (вот для чего она ждала его выгрузки), и изменяет поле MinorLinkerVersion заголовка PE на 01. Пересчитывает контрольную сумму, пишет её в одноименное поле и всё. Теперь программа запускается, показывает те же самые нагскрины, но только в окне about уже больше нет кнопочки 'Register'. Что там с наг-скринами (когда они же всё-таки должны пропасть) и с именем, на которое регится программа, я пока не знаю ![]() ![]() |
|
Создано: 02 ноября 2006 07:02 · Личное сообщение · #22 |
|
Создано: 02 ноября 2006 07:35 · Личное сообщение · #23 Начал разбирать прогу на работе, докопал пока только до reginj.dll, решил заглянуть в топик, а тут человек (akornilov) оказывается всё уже раскопал вдоль и поперек akornilov пишет: операции с реестром совсем не перехватываются Это одно из ограничений... - в наг скрине об этом сказано [i]akornilov пишет: изменяет поле MinorLinkerVersion заголовка PE на 01. Пересчитывает контрольную сумму, пишет её в одноименное поле и всё. Прога ведь должна проверять что у нее в MinorLinkerVersion установлено, в этом направлении еще покопать надо ![]() |
|
Создано: 02 ноября 2006 07:48 · Личное сообщение · #24 |
|
Создано: 03 ноября 2006 00:19 · Личное сообщение · #25 RAMZEZzz пишет: Прога ведь должна проверять что у нее в MinorLinkerVersion установлено, в этом направлении еще покопать надо Все верно, да и самый главный вопрос, где прога себя потом в RegSpy.exe проверяет на зарегистрированность. Наг исчезнет, если при прорисовке нага ( как сказал akornilov, выбока из массива) прога один раз скачет на функцию EndDlg и затем наг не выводится, но ведь где-то эта проверка идет??? RAMZEZzz пишет: Я гляжу вы ее уже почти неделю ломаете, так и не сломали скачал - вечерком посмотрю, завтра скажу результат Вечерок прошел, а результата нет ![]() ![]() ![]() |
|
Создано: 03 ноября 2006 00:21 · Личное сообщение · #26 да бред, она проверяет это только в одном месте ![]()
а вообще у меня сложилось впечатление, что либо там очень умная защита, либо её вообще не получиться зарегить... Почему я так подумал? да просто взял и посмотрел RegSpy 1.7 ![]() ![]() Например когда зарегится 1.7 она получает имя компа и выводит его в эбаут!
в 1.72 такуй функции вообще нету ![]() но это только предположения, кому интересно посмотрите версию 1.7 ----- [nice coder and reverser] ![]() |
|
Создано: 03 ноября 2006 01:53 · Личное сообщение · #27 |
|
Создано: 03 ноября 2006 01:56 · Личное сообщение · #28 |
|
Создано: 03 ноября 2006 02:17 · Личное сообщение · #29 akornilov пишет: А может, dimaxmaster - автор RegSpy или заинтересованное лицо? Выложить неполную версию проги крякерам и посмотреть, как они корячатся? ;) Такого я давно не слышал ![]() ![]() ![]() |
|
Создано: 03 ноября 2006 02:19 · Личное сообщение · #30 Hellspawn пишет: а вообще у меня сложилось впечатление, что либо там очень умная защита, либо её вообще не получиться зарегить... Почему я так подумал? да просто взял и посмотрел RegSpy 1.7 слишком много не стыковок Например когда зарегится 1.7 она получает имя компа и выводит его в эбаут! Меня тоже терзают сомнения, может демо-версия?Но ведь в наге написано trial 30 days??? ![]() |
. 1 . 2 . >> |
![]() |
eXeL@B —› Крэки, обсуждения —› программа ReGSpy 1.72,немогу понять... |
Эта тема закрыта. Ответы больше не принимаются. |