![]() |
eXeL@B —› Вопросы новичков —› прошу совета по исследованию защты программ |
Посл.ответ | Сообщение |
|
Создано: 04 октября 2008 01:32 · Поправил: aleks22 · Личное сообщение · #1 помогите пожалуйста,не могу найти подход к такому типу защиты,когда при вводе серийника прога благодарит,и сообщает,что ее нужно перезагрузить для подтверждения правильной регистрации.В этом случае в отладчике нет генерации кода,я предпологаю,что программа где то производит key file,но как его найти?А может тут другой принцип,а вот какой-не могу догнать.Опыта мало,потому и обращаюсь с просьбой помочь. ![]() |
|
Создано: 04 октября 2008 01:58 · Личное сообщение · #2 |
|
Создано: 04 октября 2008 02:41 · Личное сообщение · #3 |
|
Создано: 04 октября 2008 04:01 · Личное сообщение · #4 |
|
Создано: 04 октября 2008 07:31 · Личное сообщение · #5 |
|
Создано: 04 октября 2008 08:17 · Личное сообщение · #6 aleks22 пишет: В этом случае в отладчике нет генерации кода,я предпологаю,что программа где то производит key file Вовсе не обязательно что она keyfile ищет. Просто после ввода серийника возможно что она просто принудительно закрывается, если еще не зарегана. А так раз посл перезапуска проверка на зареганность, то в начале кода где-то флаг регистрации. В общем случае можно использовать Point-H, для нахождения места, де происходит считывание введенного серийника. Так как бряки на MessageBox, GetWindowText и GetDlgItemText прокатывают далеко не всегда. А в конечном итоге многое зависит от компилятора еще. ----- Программист SkyNet ![]() |
|
Создано: 04 октября 2008 09:15 · Личное сообщение · #7 |
|
Создано: 04 октября 2008 09:29 · Поправил: ClockMan · Личное сообщение · #8 |
|
Создано: 04 октября 2008 09:31 · Личное сообщение · #9 |
|
Создано: 04 октября 2008 11:18 · Личное сообщение · #10 |
|
Создано: 04 октября 2008 11:58 · Личное сообщение · #11 Первое,ВСЕМ огромное спасибо!Второе-извините за краткость сообщения,просто вчера бился над прогой целый день и уже полусонный написал просьбу.Далее-мои знания пока на довольно низком уровне,инструмент-Олька,WinDasm.HDasm,Masm32-до SoftIce еще не дорос хотя у меня и стоит версия 2.7,но пока не могу ее освоить,в руководствах найденых в интернете расхождения начинаются уже с описания рабочего окна,начав учиться я столкнулся со следующей проблемой-в пособиях по ассемблеру после счислений и изучения команд обычно идет обучение составлению программ нам же нужно понять структуру защиты найти ее то самое уязвимое место и победить,да-в других,например у Криса Каперского есть примеры по взлому, но вся загвоздка в том,что он не обясняет почему он делает именно так,или объяснение ужасно сложное по своей краткости,расчитанное на совершенное знание программирования.Первую прогу я сломал по его руководству,но когда самостоятельно взяял другую прогу то оказался так же слеп как и прежде.С крякмисами этап прошел быстро-он научил лишь одному-пользоваться инструментом,и сломать самую примитивную защиту,когда сгенерированный серийник уже сразу можно увидеть при первом же бряке на вывод окна о неверной или успешной регистрации.Стал искать туториалы по взлому настоящих программ,их море,но проблема в том,что в доброй половине тутов ссылки на проги просто устарели.таких версий уже нет,а все поисковики выводят лишь на кряк порталы,либо пример дается на SoftIce с применением бряка на hmemcpy,какой отсутствует в Ольке,и главное опять таки,автор просто показывает шаги-ставим бряк сюда,заходим туда,трассируем до сюда,смотрим сюда и ура мы победили!Из-за сложности объяснения и краткости отсутствуют пояснения о некоторых,а порой и важных основ,подразумевается что это должны знать,а новичку как раз и нужно разжевать это самое,ну допустим мы догнали сами,а вот пошаговой мысли автора и ответа на-а почему он делает именно так,нет,как нет и объяснений как он читает программу,лишь утверждение,здесь выполняется то-то,здесь загруз нашего серийника,там генерация,здесь правильный серийник,допустим я понимаю,а ктото нет,к тому же Олька сразу выдает с пояснениями что и куда перемещается,пока не дойдет до заветного CMP,а вIce нужно четко понимать что происходит,чтобы в нужном месте набрать команду и увидеть содержимое регистра или памяти.Хорошие туты редки,и как назло прог к ним уже нет(такая страница не найдена).Таким образом туты ведут за ручку новичка,но как только он отрывается от мамы тут же теряется снова,поэтому приходиться достигать своим умом.Подопытный материал я беру обычно с www.softpedia.com там море shareware ![]() |
|
Создано: 04 октября 2008 12:13 · Личное сообщение · #12 |
|
Создано: 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- ![]() |
|
Создано: 04 октября 2008 13:09 · Личное сообщение · #14 |
|
Создано: 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 ![]() |
|
Создано: 04 октября 2008 14:12 · Личное сообщение · #16 shareapp.net/dvd-lab_download/ вот та прожка над которой бился вчера-имя-сер.номер программы(состоять должен не меньше 8 цифр)-и регистрационный код(состоит из 15 символов-cmp...,0F)-если условия совпадают-сообщение"thank you.."и просьба о перезапуске программы.Я думаю,что может серийный номер генерируется из имени,а код из серийника-огромное всем спасибо,и извините за любительские ошибки,обязательно приму к сведению ваши советы как более опытных и знающих. ![]() |
|
Создано: 04 октября 2008 14:48 · Поправил: Konstantin · Личное сообщение · #17 aleks22 на примере проги winx-burner-master Code:
После того как запустить патченную прожку ключик автоматом сабжем занесется в реестр. Или чтобы не патчить прогу достаточно занести в реестр ветку: [HKEY_CURRENT_USER\Software\WinXBurnerMaster\LicenseInfo] @="KB8EB-EIX2X-Q5DKKM-2QDHO-CP1SP" Вот и вся регистрация ![]() p.s. До этого место можно дойти банальной трассировкой с EP проги, это не долго, у меня заня ло пару минут. ![]() |
|
Создано: 04 октября 2008 15:14 · Личное сообщение · #18 извините,ссылки на DVD-lab битая,прошел по ней а файл не найден,нашел другую www.developer-resource.com/product.download.mirrors.php?id=64228 также и Downloadstudio переходит на какойто левый сайт,сейчас поищю еще(говорил же,что черт его знает где скачивал по поводу упаковки-первым делом я всегда определяю запакована прога или нет,и конечно распаковываю.Далее-Talula замечает: программа просто создаёт ключ в реестре - это работа с реестром... проверяй регистрацию я над этим думал,и вроде простая вещь-посмотреть в реестре-но признаюсь,что бывает в самых простых вещах я полный профан-я не знаю как посмотреть в реестре,как работать с реестром и проверить регистрацию.Так же я не знаю,что такое POINT-H а который указывает FrenFolio mak пишет:Ставь бряки на буфера и следи что происходит тоже просто-буфера обмена-если я правильно понимаю,но как на них поставить бряк?-если не трудно и не смешно поясните пожалуйста. ![]() |
|
Создано: 04 октября 2008 15:23 · Личное сообщение · #19 |
|
Создано: 04 октября 2008 15:29 · Личное сообщение · #20 |
|
Создано: 04 октября 2008 16:52 · Личное сообщение · #21 www.conceiva.com/ ссылка на Download studio Konstantin огромное спасибо!!все получилось,но без вашей подсказки я не смог бы найти этот адрес.Я попробовал с банальной трассировки с EP,на пути встал вызов программы всплыло окно после чего прога ушла в module ntdll,как всегда,тут только одно-перейти вручную в главный модуль,но тогда нельзя трассировать если не поставить бряк на каком-нибудь известном адресе,подскажите,пожалуйста,как вы прошли трассировкой до этого адреса? ![]() |
|
Создано: 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 прога запустилась без нага. Все!!! ![]() |
|
Создано: 04 октября 2008 19:02 · Личное сообщение · #23 Konstantin-еще раз благодарю!!вот теперь все получилось,и спасибо вам,много полезного прибавилось-кстати,я попробовал поставить бряк на RegQueryValueA и тоже сработало.Также спасибо Flashback/TMX за то что научил пользоваться регистром ![]() спасибо всем,за 1 день я больше извлек чем за полмесяца долбежки. ![]() |
|
Создано: 05 октября 2008 21:51 · Личное сообщение · #24 |
![]() |
eXeL@B —› Вопросы новичков —› прошу совета по исследованию защты программ |