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

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

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

Создано: 04 октября 2008 01:32 · Поправил: aleks22
· Личное сообщение · #1

помогите пожалуйста,не могу найти подход к такому типу защиты,когда при вводе серийника прога благодарит,и сообщает,что ее нужно перезагрузить для подтверждения правильной регистрации.В этом случае в отладчике нет генерации кода,я предпологаю,что программа где то производит key file,но как его найти?А может тут другой принцип,а вот какой-не могу догнать.Опыта мало,потому и обращаюсь с просьбой помочь.




Ранг: 118.1 (ветеран)
Активность: 0.140
Статус: Участник

Создано: 04 октября 2008 01:58
· Личное сообщение · #2

Если программа на любом языке кроме VB, то бряк на MsgBox, если на VB, то на rtcMsgBox

-----
PSP-Gamer.ru





Ранг: 673.3 (! !), 400thx
Активность: 0.40.31
Статус: Участник
CyberMonk

Создано: 04 октября 2008 02:41
· Личное сообщение · #3

=) Getwindowtexta или w ставь , если не поставится значит ставь Getwindowtexta + 4 , серийник должен считаться , а потом пойдет работа с ним. Ставь бряки на буфера и следи что происходит.

-----
RE In Progress [!] Coding Hazard [!] Stay Clear of this Cube




Ранг: 24.2 (новичок), 1thx
Активность: 0.030
Статус: Участник

Создано: 04 октября 2008 04:01
· Личное сообщение · #4

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



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

Создано: 04 октября 2008 07:31
· Личное сообщение · #5

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




Ранг: 340.0 (мудрец), 22thx
Активность: 0.120
Статус: Участник
THETA

Создано: 04 октября 2008 08:17
· Личное сообщение · #6

aleks22 пишет:
В этом случае в отладчике нет генерации кода,я предпологаю,что программа где то производит key file

Вовсе не обязательно что она keyfile ищет. Просто после ввода серийника возможно что она просто принудительно закрывается, если еще не зарегана. А так раз посл перезапуска проверка на зареганность, то в начале кода где-то флаг регистрации.
В общем случае можно использовать Point-H, для нахождения места, де происходит считывание введенного серийника. Так как бряки на MessageBox, GetWindowText и GetDlgItemText прокатывают далеко не всегда.
А в конечном итоге многое зависит от компилятора еще.

-----
Программист SkyNet




Ранг: 384.1 (мудрец)
Активность: 0.250
Статус: Участник
www.int3.net

Создано: 04 октября 2008 09:15
· Личное сообщение · #7

Loco
Delphi рисует свое окошко,
в Solo мессаджи графически отрисовывает программа, поэтому не стоит так однозначно утверждать...

FrenFolio
+1

-----
Подписи - ЗЛО! Нужно убирать!





Ранг: 568.2 (!), 464thx
Активность: 0.550.57
Статус: Участник
оптимист

Создано: 04 октября 2008 09:29 · Поправил: ClockMan
· Личное сообщение · #8

Ну необезательно что гдето создаёться файл,информация при закрытии может записываться в реестр, а при новом запуске оттуда считываться.Поставь бряки на считывание реестра(RegOpenKeyA,RegOpenKeyExA )

-----
Чтобы правильно задать вопрос, нужно знать большую часть ответа. Р.Шекли.





Ранг: 213.0 (наставник), 4thx
Активность: 0.220
Статус: Участник
Тот ещё Lamer

Создано: 04 октября 2008 09:31
· Личное сообщение · #9

лично я на 99% уверен, что программа просто создаёт ключ в реестре и проверяет его при запуске, а не перед выдачей сообщения... может стоить копнуть в этом направлении?

-----
Do Not Get Mad Get Money! ;)





Ранг: 60.7 (постоянный), 12thx
Активность: 0.040
Статус: Участник
KpTeaM

Создано: 04 октября 2008 11:18
· Личное сообщение · #10

Возможно, что прога накрыта ASProtect'ом
Поскольку ASPR инициализирует свои API только в начале загрузки, то прога не может определить сразу правильный ключ или нет.



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

Создано: 04 октября 2008 11:58
· Личное сообщение · #11

Первое,ВСЕМ огромное спасибо!Второе-извините за краткость сообщения,просто вчера бился над прогой целый день и уже полусонный написал просьбу.Далее-мои знания пока на довольно низком уровне,инструмент-Олька,WinDasm.HDasm,Masm32-до SoftIce еще не дорос хотя у меня и стоит версия 2.7,но пока не могу ее освоить,в руководствах найденых в интернете расхождения начинаются уже с описания рабочего окна,начав учиться я столкнулся со следующей проблемой-в пособиях по ассемблеру после счислений и изучения команд обычно идет обучение составлению программ нам же нужно понять структуру защиты найти ее то самое уязвимое место и победить,да-в других,например у Криса Каперского есть примеры по взлому, но вся загвоздка в том,что он не обясняет почему он делает именно так,или объяснение ужасно сложное по своей краткости,расчитанное на совершенное знание программирования.Первую прогу я сломал по его руководству,но когда самостоятельно взяял другую прогу то оказался так же слеп как и прежде.С крякмисами этап прошел быстро-он научил лишь одному-пользоваться инструментом,и сломать самую примитивную защиту,когда сгенерированный серийник уже сразу можно увидеть при первом же бряке на вывод окна о неверной или успешной регистрации.Стал искать туториалы по взлому настоящих программ,их море,но проблема в том,что в доброй половине тутов ссылки на проги просто устарели.таких версий уже нет,а все поисковики выводят лишь на кряк порталы,либо пример дается на SoftIce с применением бряка на hmemcpy,какой отсутствует в Ольке,и главное опять таки,автор просто показывает шаги-ставим бряк сюда,заходим туда,трассируем до сюда,смотрим сюда и ура мы победили!Из-за сложности объяснения и краткости отсутствуют пояснения о некоторых,а порой и важных основ,подразумевается что это должны знать,а новичку как раз и нужно разжевать это самое,ну допустим мы догнали сами,а вот пошаговой мысли автора и ответа на-а почему он делает именно так,нет,как нет и объяснений как он читает программу,лишь утверждение,здесь выполняется то-то,здесь загруз нашего серийника,там генерация,здесь правильный серийник,допустим я понимаю,а ктото нет,к тому же Олька сразу выдает с пояснениями что и куда перемещается,пока не дойдет до заветного CMP,а вIce нужно четко понимать что происходит,чтобы в нужном месте набрать команду и увидеть содержимое регистра или памяти.Хорошие туты редки,и как назло прог к ним уже нет(такая страница не найдена).Таким образом туты ведут за ручку новичка,но как только он отрывается от мамы тут же теряется снова,поэтому приходиться достигать своим умом.Подопытный материал я беру обычно с www.softpedia.com там море shareware




Ранг: 1288.1 (!!!!), 273thx
Активность: 1.290
Статус: Участник

Создано: 04 октября 2008 12:13
· Личное сообщение · #12

ну а что мешает дать ссылку на сотину, которую ковыряешь? Большинство вопрососв сразу отпадут.
Loco пишет:
бряк на MsgBox

нету такой WinAPI



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

Создано: 04 октября 2008 12:53
· Личное сообщение · #13

Там море shareware и trial программ-одна из них-http://shareme.com/details/winx-burner-master.html Накачал их пачки и тут происходит следующее:когда мы сталкиваемся со стандартной защитой-username-serial number-где серийник генерируется от введенного имени или имя по барабану,а просто сверка с уже готовым номером,то в 90% тут дело техники,находим в Dasme адреса на вывод плохого или удачного юзера,переходим в Ольке по этим адрессам,ставим бряки на call,cmp или test поподаем на какойнибудь из них,берем ручку,бумагу,начинаем трассировать и записывать-попадаем в точку генерации-и либо уже здесь видим либо дальше в банальном сравнении двух регистров.Вот тут я и столкнулся с другим типом защиты который встречается на shareware сайтах примерно каждая из 3-4х:ввод имени-затемсерийного номера программы(не всегда) и третье поле-регистрационный код.Когда мы его заполняем и жмем то либо ничего не происходит-данные не верны-а если верны то окно исчезает и запускается прога то есть вообще отсутствует вывод сообщения на неверную регистрацию-либо,как уже говорил,выскакивает сообщение-спасибо за покупку,перезапустите программу для подтверждения введенного кода.При трассеровке до этого вывода попадаем в очень похожие на генерацию места где просто мешанина из арифметических комбинаций,куча сравнений и тестов,но того что нужно нет,либо я тупой не вижу-в финале идет точное написание не помню а типа-setregkey-




Ранг: 213.0 (наставник), 4thx
Активность: 0.220
Статус: Участник
Тот ещё Lamer

Создано: 04 октября 2008 13:09
· Личное сообщение · #14

aleks22 пишет:
финале идет точное написание не помню а типа-setregkey

ну, это работа с реестром... проверяй регистрацию при запуске и далее 2 варианта:
1. найти серийник (активационный код)
2. сделать так, чтобы работала с любыми данными

-----
Do Not Get Mad Get Money! ;)




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

Создано: 04 октября 2008 13:44
· Личное сообщение · #15

продолжение3-потом идет closeregkey ну и сохранение наших данных,и вывод сообщения о поздравлении-В данном случае совет о бряке на RegOpenKeyA,RegOpenKeyExA очень похож на правильный,попробую позже.Часто при правильной регистрации прога создает в своей папке файл ini куда и записывает рег.данные.не справившись с серийником я предположил что сверка можнт происходить во время вызова первого рег.окна,ставил бряки на все MessageBoxы,SendMessage,GetWindow..ShowWindow..GetDlgitmTextA,Messageb eep и т.д на все что можно и безрезультатно-словом не понимая принцыпа защиты я не понимаю с какого бока подойти,где найти нужные знания или вопрос заключается в технике.ссылка-http://www.conceiva.com/products/downloadstudio/default .asp
о ссылках-дело в том,что в поисках материала я переходил с одного сайта на другой,скачивал все подряд на рабочем столе просто завал,беру устанавливаю,а откуда она уже и не знаю
www.softpedia.com/get/CD-DVD-Tools/AutoRun-Builders/CD-Autorun-Creator.shtml



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

Создано: 04 октября 2008 14:12
· Личное сообщение · #16

shareapp.net/dvd-lab_download/
вот та прожка над которой бился вчера-имя-сер.номер программы(состоять должен не меньше 8 цифр)-и регистрационный код(состоит из 15 символов-cmp...,0F)-если условия совпадают-сообщение"thank you.."и просьба о перезапуске программы.Я думаю,что может серийный номер генерируется из имени,а код из серийника-огромное всем спасибо,и извините за любительские ошибки,обязательно приму к сведению ваши советы как более опытных и знающих.



Ранг: 42.9 (посетитель), 33thx
Активность: 0.040
Статус: Участник

Создано: 04 октября 2008 14:48 · Поправил: Konstantin
· Личное сообщение · #17

aleks22
на примере проги winx-burner-master
Code:
  1. 00402468   68 74414D00    PUSH WinXBurn.004D4174 ;<- ключ 1 - с которым идет сравнение
  2.                                                       ;у меня(KB8EB-EIX2X-Q5DKKM-2QDHO-CP1SP)
  3. 0040246D   51             PUSH ECX                    ;<- ключ 2 берется из реестра
  4. 0040246E   E8 6ECA0600    CALL WinXBurn.0046EEE1      ;<- вот сдесь сравниваются ключики
  5. 00402473   83C4 08        ADD ESP,8
  6. 00402476   85C0           TEST EAX,EAX
  7. 00402478   75 07          JNZ SHORT WinXBurn.00402481 ;<- если ключики равны, eax=0 чтобы переход не выполнился -> nop-им его

После того как запустить патченную прожку ключик автоматом сабжем занесется в реестр.
Или чтобы не патчить прогу достаточно занести в реестр ветку:

[HKEY_CURRENT_USER\Software\WinXBurnerMaster\LicenseInfo]
@="KB8EB-EIX2X-Q5DKKM-2QDHO-CP1SP"


Вот и вся регистрация .

p.s. До этого место можно дойти банальной трассировкой с EP проги, это не долго, у меня заня ло пару минут.



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

Создано: 04 октября 2008 15:14
· Личное сообщение · #18

извините,ссылки на DVD-lab битая,прошел по ней а файл не найден,нашел другую
www.developer-resource.com/product.download.mirrors.php?id=64228
также и Downloadstudio переходит на какойто левый сайт,сейчас поищю еще(говорил же,что черт его знает где скачивал
по поводу упаковки-первым делом я всегда определяю запакована прога или нет,и конечно распаковываю.Далее-Talula замечает: программа просто создаёт ключ в реестре - это работа с реестром... проверяй регистрацию
я над этим думал,и вроде простая вещь-посмотреть в реестре-но признаюсь,что бывает в самых простых вещах я полный профан-я не знаю как посмотреть в реестре,как работать с реестром и проверить регистрацию.Так же я не знаю,что такое POINT-H а который указывает FrenFolio
mak пишет:Ставь бряки на буфера и следи что происходит
тоже просто-буфера обмена-если я правильно понимаю,но как на них поставить бряк?-если не трудно и не смешно поясните пожалуйста.



Ранг: 64.4 (постоянный)
Активность: 0.050
Статус: Участник

Создано: 04 октября 2008 15:23
· Личное сообщение · #19

aleks22 пишет:
я не знаю как посмотреть в реестре

запусти C:\WINDOWS\regedit.exe
затем нажми, ctrl+f для поиска введи че надо и ищи
Ara пишет:
нету такой WinAPI

он че знает что-ли
ClockMan пишет:
Поставь бряки на считывание реестра

Я иногда ставлю на закрытие



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

Создано: 04 октября 2008 15:29
· Личное сообщение · #20

aleks22 пишет:
Так же я не знаю,что такое POINT-H

POINT-H - это адрес в USER32, куда ставят бряк для получения эффекта Hmemcpy из Win9x

aleks22 пишет:
но признаюсь,что бывает в самых простых вещах я полный профан

кури статьи для новичков, на cracklabe их много =)



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

Создано: 04 октября 2008 16:52
· Личное сообщение · #21

www.conceiva.com/
ссылка на Download studio
Konstantin огромное спасибо!!все получилось,но без вашей подсказки я не смог бы найти этот адрес.Я попробовал с банальной трассировки с EP,на пути встал вызов программы всплыло окно после чего прога ушла в module ntdll,как всегда,тут только одно-перейти вручную в главный модуль,но тогда нельзя трассировать если не поставить бряк на каком-нибудь известном адресе,подскажите,пожалуйста,как вы прошли трассировкой до этого адреса?



Ранг: 42.9 (посетитель), 33thx
Активность: 0.040
Статус: Участник

Создано: 04 октября 2008 18:11 · Поправил: Konstantin
· Личное сообщение · #22

Трассировал shift+F8. На адресе 4705a5 прожка запуститьс. Ставим на нем breakpoint (F2) и перезапускаем программу(Ctrl+F2). Далее shift+F9 останавливаемся на бряке, убираем его входим в call (жмем F7). Обратно трассируем shift+F8. На 4C247a программа опять запуститься. Все повторяем заново.(Ставим на нем breakpoint (F2) и перезапускаем программу(Ctrl+F2). Далее shift+F9 останавливаемся на бряке, убираем его входим в call (жмем F7). Трассируя далее по shift+F8 я обратил внимание на адрес 402468 описанный мной в моем посте выше(в стороке комментариев в ольке там высвечивался какойто номерок). Обратив внимание на код далее и из собственного опыта я предположил что это какое-то сравнение. Ну далее дело техники забил nop на переходнике -> shift+F9 прога запустилась без нага.
Все!!!



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

Создано: 04 октября 2008 19:02
· Личное сообщение · #23

Konstantin-еще раз благодарю!!вот теперь все получилось,и спасибо вам,много полезного прибавилось-кстати,я попробовал поставить бряк на RegQueryValueA и тоже сработало.Также спасибо Flashback/TMX за то что научил пользоваться регистром
спасибо всем,за 1 день я больше извлек чем за полмесяца долбежки.




Ранг: 279.1 (наставник)
Активность: 0.160
Статус: Участник
wizard

Создано: 05 октября 2008 21:51
· Личное сообщение · #24

Flashback/TMX пишет:
запусти C:\WINDOWS\regedit.exe
затем нажми, ctrl+f для поиска введи че надо и ищи


Только сначала надо знать ,что программе в реестре надо ,Regmon в помощь.

-----
Что один человек сделал , другой всегда сломать может...



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


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