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

 eXeL@B —› Вопросы новичков —› вопрос о кряке Restorator'а (2006), патч+кейген, и пару смежных вопросов
Посл.ответ Сообщение

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

Создано: 12 мая 2007 01:30 · Поправил: slackhead
· Личное сообщение · #1

Хотелось бы сразу извениться за ламерские вопросы, но в правилах написано что можно задавать любые вопросы в этом разделе :-P
Сегодня пол дня просидел пытаясь крякнуть Restorator 2006 так ничего и не сделал. Локализировать защитный код получилось (по крайней мере частично), но что-то сделать больше - нет: утонул в большой куче вложенных функций, работы с сериалом и именем, реверсить все подряд не представляется реальным, и как дальше двинуться не знаю В кратце опишу что получилось. (находил на форуме сообщения людей которые уже успешно крякали эту софтину, мож они помогут мне продвинуться далльше).
Если можно я опишу что я делал, а вы говорите что я делал не так, что можно сделать лучше, где об этом прочить, вообщем пенайте\помогайте все кому не лень.
Итак поехали.
Играюсь с Restorator 2006 v 3.6.0.1534, если у кого нет, вытянуть можно здесь: http://rapidshare.com/files/30795318/Restorator_2006_3.60.1535.rar.htm l http://rapidshare.com/files/30795318/Restorator_2006_3.60.1535.rar.html кста сейчас на этом сайте версия уже новее.
Не пакован, написан на делфи.
При первом запуске софтина показывает окошко, в котором предлагается ввести name и license key. Бряки на MessageBox который ругаетя неправильной информацией, GetDlgItemText, SendMessage c WM_GETTEXT не дали никаких результатов, тут собсно вопрос как лучше поступить в такой ситуации?(вопрос №0)(кстати интересно как сие действо огранизовать в своей программе(№1)) ваще-то прога написана на делфи, и я знаю что есть декомпилер DeDe но это часный случай, а что если бы прога была написана на чём-то другом.. единственное что пришло в голову(или где-то прочитал не помню) это отыскать в памяти саму строку NAME/KEY и отследить все обращения к ней. Далее.. если в ольке это сделать (поставить бряк на найденную строку в памяти) то во время прорисовки окна обращение к этой переменной произойдёт десяток раз, а до нужного кода мы так и не доберёмся потому что он будет аж после нажатия кнопки, вопрос стостоит в том чтобы активировать бряк после прорисовки но до нажатия на кнопку в приложении. Как это сделать в ольке?(№2) у меня получается замкнутый круг потому что когда я ставлю бряк то естественно активно в этот момент окно отладчика, а чтобы нажать на пимпу в окне приложения нужно активировать окно приложения, а во время активирования опять всплывает отладчик и так по кругу. В прочем проблема решаема если прибегнуть к айсу.. но решаема она опять-же только частично. Дело в том что если ставить бряк на паттерн имени найденый в памяти то отладчик вовсе не всплывёт, т.е. обращение к имени не происходит после нажания на пимпу регистрации. Как такое возможно?(хотелось бы уточнить, комманда сайса s 0 L -1 'NAMENAMENAME', где 'NAMENAMENAME' это именно то слово которое было введено как имя, возвращает всего 1 паттерн, вообще-то он находит 2, но один в самой памяти сайса %), и к нему не происходит обращения, это же как такое ваще возможно???(№3) ) в прочем если проделать ту-же методику с ключем, то можно найти обращение и уже кое за что уцепиться.
Теперь ближе к телу. Уцепиться получается за код глубоко внутри user32 по адресу:
77e36157 REPZ MOVSD
EDI = 00F3AAA4

в edi в это время адрес на куче, так что он каждый раз разный. Этот movsd копирует в буфер (на кучу) ключь, и делее уже обращается в нему. Т.е. ставим бряк на этот адрес отпускаем отладчик, в следующий раз уже приземляемся в коде программы:

004C19DF |> 8B07 /MOV EAX,DWORD PTR DS:[EDI]
004C19E1 |. 0FB65C30 FF |MOVZX EBX,BYTE PTR DS:[EAX+ESI-1] <<<===--- приземлились тут
004C19E6 |. 80FB 20 |CMP BL,20
004C19E9 |. 76 05 |JBE SHORT Restorat.004C19F0
004C19EB |. 80FB 2C |CMP BL,2C
004C19EE |. 75 10 |JNZ SHORT Restorat.004C1A00
004C19F0 |> 8BC7 |MOV EAX,EDI
004C19F2 |. B9 01000000 |MOV ECX,1
004C19F7 |. 8BD6 |MOV EDX,ESI
004C19F9 |. E8 4E2FF4FF |CALL Restorat.0040494C
004C19FE |. EB 01 |JMP SHORT Restorat.004C1A01
004C1A00 |> 46 |INC ESI
004C1A01 |> 8B07 MOV EAX,DWORD PTR DS:[EDI]
004C1A03 |. E8 A42CF4FF |CALL Restorat.004046AC
004C1A08 |. 3BF0 |CMP ESI,EAX
004C1A0A |.^7E D3 \JLE SHORT Restorat.004C19DF

цель этого кода насколько мне удалось выяснить это, вырезать из ключа запятые "," (2ch), пробелы (20h) и символы меньше 20h хотя нафига я так и не понял всё равно в эдит их не введёшь, хотя можно скопипастить, и считается длина нового ключа, потом мы выходим в вызывающую функцию

004C1A4F . E8 0041F9FF CALL Restorat.00455B54
004C1A54 . 55 PUSH EBP ; /Arg1
004C1A55 . E8 72FFFFFF CALL Restorat.004C19CC ; \Restorat.004C19CC <<<===--- отсуда мы вышли
004C1A5A . 59 POP ECX
004C1A5B . 8B45 E4 MOV EAX,DWORD PTR SS:[EBP-1C]
004C1A5E . E8 492CF4FF CALL Restorat.004046AC ; GET LEN
004C1A63 . 3D AA000000 CMP EAX,0AA ; if < GOTO INCORRECT
004C1A68 . 0F8E 3B020000 JLE Restorat.004C1CA9

тут вот сразу проверяется длина ключа, если она меньше 0хAA то почти сразу выводится мессаджбокс (который кстати не вызывает MessageBoxA\W вовсе) о неправильной информации. Если ключ больше то затем идёт длинные вложенные подсчёты, в которых я совсем потерялся. Вот тут то я и застраял, что дальше делать не знаю, может кто-то подскажет. Ато блин столько провозился уже нехочется останавливаться на пол пути. И вот ещё.. строки которые выводятся мессаджбоксом находятся в ресурсах, функция котрая загружает из ресурсов эти строки распологается по адресу 406530, я конечно могу её пропатчить что-бы она всегда выводила правельный результат, но вот только на этом все мои старания пока и останавливаются, те флаги по которым программа определяет что ключ валидный найти не могу

Такое. Пасиба всем откликнувшимся и не откликнувшимся

другие вопросы:
4) Почему в кряке к софтине используется кейген + патч. Почему именно так? только для того чтобы лицезреть свой ник в владельцах? но зачем тогда патч? с чем связана проблема использования чего-то одного, и если можно дайте плиз линки на статьи по этому вопросу.
5) Существует ли возможность где-то попросить о туториале?



Ранг: 1045.7 (!!!!), 31thx
Активность: 0.570
Статус: Участник

Создано: 12 мая 2007 03:56
· Личное сообщение · #2

Там весь взлом в практический один байт посылка 1 в переменную! занимает пару секунд !Что бы лицезреть свой ник достачоно
[HKEY_CURRENT_USER\Software\Bomers\Restorator\Registration]
"name"="Свое имя"
"Password"="любую билиберду"
"Type"="Regular"



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

Создано: 12 мая 2007 20:18
· Личное сообщение · #3

мдя не густо с ответами чё-то из шести вопросов ни на один никто не ответил
pavka сказал бы где что-ли.



Ранг: 1045.7 (!!!!), 31thx
Активность: 0.570
Статус: Участник

Создано: 13 мая 2007 04:06
· Личное сообщение · #4

slackhead пишет:
мдя не густо с ответами чё-то из шести вопросов ни на один никто не ответил

Какие ты ответы хочешь что бы я тебе показал где патчить? Там делов сделать универсальный патч пять секунд!
Не трогай саму проверку ключа ;) а найди флаг регистрации и запиши туда 1



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

Создано: 13 мая 2007 15:57
· Личное сообщение · #5

pavka пишет:
Какие ты ответы хочешь что бы я тебе показал где патчить?

Прости за наглый вопрос, но ты мой первый пост читал? Больше всего интересуют ответы на вопросы №0,2,3
Показывать где падчить мне не нужно.
pavka пишет:
Там делов сделать универсальный патч пять секунд!
Не трогай саму проверку ключа ;) а найди флаг регистрации и запиши туда 1

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



Ранг: 203.3 (наставник)
Активность: 0.220
Статус: Участник
UPX Killer -d

Создано: 13 мая 2007 16:39 · Поправил: AlexZ
· Личное сообщение · #6

Господа, а чем так хорош ресторатор, что о нем столько шуму? Или всё только из-за маньяческой защиты?
slackhead пишет:
комманда сайса s 0 L -1 'NAMENAMENAME', где 'NAMENAMENAME' это именно то слово которое было введено как имя, возвращает всего 1 паттерн,
ss вместо s для поиска более чем одного паттерна, если память не подводит (в TWR так точно было).

-----
Я медленно снимаю с неё UPX... *FF_User*




Ранг: 1045.7 (!!!!), 31thx
Активность: 0.570
Статус: Участник

Создано: 13 мая 2007 16:59
· Личное сообщение · #7

pavka пишет:
опиши плиз парой слов как ты его нашёл, за что зацепился хотябы.

Я тебе уже написал ;) Можешь цеплятся за что угодно за Наг, если триалка за надписи не имеет значения
Могу дать тебе генерик патч разберешь сам если хочешь



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

Создано: 13 мая 2007 20:23
· Личное сообщение · #8

ё маё мне кто-нить что-то скажет по теме или нет
AlexZ пишет:
Господа, а чем так хорош ресторатор, что о нем столько шуму? Или всё только из-за маньяческой защиты?
не знаю, его выбор абсолютно случаен у меня
AlexZ пишет:
ss вместо s для поиска более чем одного паттерна, если память не подводит (в TWR так точно было).

что такое TWR я не в курсе, в айсе ss - работает с символами, s - возвращает первый попавшийся а при следющем вызове s ьез параметров следующтй , s -a .. - все, паттерны, в любом случае к делу это не иммет никакого отношения.
pavka пожалуйста перестань говорить теоретически
pavka пишет:
Можешь цеплятся за что угодно за Наг, если триалка за надписи не имеет значения

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

Патчер-кейген у меня есть чем он мне пожет помочь не вижу(кроме алго генерации серийника, но это позже) а что он патчит мне не интересно, интернсно самому найти

пожалуйста, если кто-то может, ответьте врозумительно на вопросы №0, №2, №3, теории не нужно
спасибо




Ранг: 353.0 (мудрец)
Активность: 0.370
Статус: Участник
resreveR

Создано: 13 мая 2007 21:09
· Личное сообщение · #9

Патчишь экспоненту на свою и кейгенишь.. все легкоslackhead пишет:
4) Почему в кряке к софтине используется кейген + патч. Почему именно так? только для того чтобы лицезреть свой ник в владельцах? но зачем тогда патч? с чем связана проблема использования чего-то одного, и если можно дайте плиз линки на статьи по этому вопросу.

если разложишь мне 1024 бита - я тебе просто кейген сделаю, без патча

-----
Тут не могла быть ваша реклама




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

Создано: 13 мая 2007 21:42
· Личное сообщение · #10

Патчится действительно правкой пары байт. Только потом вылазять праблы с с КРК. Пока не знаю как обойти.

lord_Phoenix пишет:
Патчишь экспоненту на свою и кейгенишь.. все легко

А вот это интересно! Можно поподробнее.



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

Создано: 13 мая 2007 21:43
· Личное сообщение · #11

lord_Phoenix спасибо уже кое что проясняется, имеется в виду рса?




Ранг: 221.8 (наставник)
Активность: 0.150
Статус: Участник

Создано: 14 мая 2007 00:48
· Личное сообщение · #12

slackhead пишет:
имеется в виду рса?

да там RSA + хеш какойто SHA вроде... подсмотреть кодес даж не пытайтесь и сделать кейген без патча пока тоже невозможно ибо миллионы лет...



Ранг: 1045.7 (!!!!), 31thx
Активность: 0.570
Статус: Участник

Создано: 14 мая 2007 03:46
· Личное сообщение · #13

Sturgeon пишет:
Патчится действительно правкой пары байт. Только потом вылазять праблы с с КРК. Пока не знаю как обойти.

Там нет ни какой проверки КРК? А траблы вылазят потому что патчишь переходы....
slackhead пишет:
нага нет пока, просто диалог ввода, как я уже говорил, за надписи зацепиться не получается так как они в ресурсах, т.е. прямых ссылок на надписи в коде нет

Чем тебе помочь? Нага ты не видишь строки в ресурсах! ;) Там уровень сложности как в кракми для начинающих ...
slackhead пишет:
Патчер-кейген у меня есть чем он мне пожет помочь не вижу(кроме алго генерации серийника, но это позже) а что он патчит мне не интересно, интернсно самому найти

Читай внимательней я не говорил о кейгене ..



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

Создано: 14 мая 2007 11:19
· Личное сообщение · #14

Как это нет проверки КРК? А что в ресурсах делают такие строки?

"CRC check failed. Please use repair function or reinstall Restorator"

Я не патчил переход. Я вставил команду, которая посылает еденицу в то место, которое проверяется на зареганность.
Ну да ладно. Я вроде сломал...



Ранг: 1045.7 (!!!!), 31thx
Активность: 0.570
Статус: Участник

Создано: 14 мая 2007 12:40
· Личное сообщение · #15

Sturgeon
Имел в виду что ни каких особенных хитрых проверок там нет, все стандартно ;)




Ранг: 353.0 (мудрец)
Активность: 0.370
Статус: Участник
resreveR

Создано: 14 мая 2007 14:20
· Личное сообщение · #16

Sturgeon пишет:
Имел в виду что ни каких особенных хитрых проверок там нет, все стандартно ;)

Проходишь цикл подсчета контр.суммы в файле с твоей экспонентой, подглядываешь новую к.сумму. Дальше меняешь старую на новую (она около хедера ;))

-----
Тут не могла быть ваша реклама




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

Создано: 18 мая 2007 05:35 · Поправил: slackhead
· Личное сообщение · #17

Сорри что не писал, всем пасиба, разобрался.
pavka - отдельный сенк
/офф
Red Bar0n, вопрос к вам, что это "B0646C686D7BA071707F6A6B606160A07176736A68" и имет ли оно отношение к 3des ?


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


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