eXeL@B —› Вопросы новичков —› Взлом dll |
Посл.ответ | Сообщение |
|
Создано: 28 июля 2010 07:26 · Личное сообщение · #1 Есть Dll для генерации pdf файлов. В триальной версии она добавляет строчку "Demo version" в генерируемые pdf файлы. Чтобы ее зарегестрировать - необходимо в программе (которая будет использовать dll) прописать строчку dll.license:= (login,password); попробовал исследовать Dll с помощью IDA (дизасемблирование), вот что получилось: Схема: Кодец: Вопрос: 1.Как можно изменить данный код в dll ? (чтобы небыло условного перехода в Code:
Code:
2. можно ли отладить dll в IDA ? (чтобы просто подсмотреть Code:
3. hex редактор: можно ли с помощью него заменить условный переход на другую команду? 4. интересует любая информация по вопросу. p.s. можно просто удалить строчку "demo version" через hex редактор, но это не то. не труъ. хотелось бы через IDA, как полагается. |
|
Создано: 28 июля 2010 07:32 · Личное сообщение · #2 |
|
Создано: 28 июля 2010 08:13 · Личное сообщение · #3 И вторая фотка не верна Тебе надо чтоб call 1002f22a вернул al,1. Вариант 1(гиморный): идешь по адресу 1002f22a, жмешь Hex View-A, копируешь там штук 10 байт, открываешь dll в любом hex редакторе, ищешь свою последовательность из 10 байт и меняешь первые 4 на 33С040С3. Вариант 2: Открываешь dll в ollydbg,идешь по адресу 1002f22a,меняешь код на: xor eax,eax inc eax ret или mov al,1 ret Жмешь правую кнопку мыша->Copy to Executable->All modification |
|
Создано: 28 июля 2010 08:16 · Личное сообщение · #4 |
|
Создано: 28 июля 2010 11:37 · Личное сообщение · #5 |
|
Создано: 01 августа 2010 18:35 · Поправил: tekton · Личное сообщение · #6 Можно я влезу в тему ? Чтоб не создавать похожую. Значит ситуация такая: Есть прога, которая хранит ресурсы в DLL. DLL упакована аспаком. В ресурсах лежит Картинка GIF которая является водяным знаком. Как запатчить её я знаю. Вопрос: Можно ли Сделать типа инлайн патча для DLL и поместить этот код в EXE ??? Ну типа дождаться когда DLL распакуется в память, узнать нужный адрес и пропатчить ? Как это сделать? (Если можно поподробнеее) Можно конечно распаковать DLL, пропатчить, и юзать, но DLL много весит и патч получается здоровым. Заранее спасибо! |
|
Создано: 01 августа 2010 19:59 · Личное сообщение · #7 |
|
Создано: 01 августа 2010 20:25 · Поправил: tekton · Личное сообщение · #8 |
|
Создано: 01 августа 2010 21:10 · Личное сообщение · #9 Если при загрузке в отладчик длл уже загружена (Alt+E), то ищешь пустое место в exe и там пишешь примерно такой код: pushad pushfd PUSH dll_s_resursami.dll (dll_s_resursami.dll это имя твоей длл) call GetModuleHandleA mov byte[eax+1234],0eb ;в eax будет адрес по которому загружена dll,1234 смещение по которому нужно пропатчить. popfp popad jmp oep и меняешь в проге oep на свой код *********************************** Если длл подгружается позже, то стявь бряк LoadLibraryA(W) и после того как длл загрузится делаешь jmp в пустое место и там уже патчишь. |
|
Создано: 02 августа 2010 02:39 · Поправил: tekton · Личное сообщение · #10 |
|
Создано: 02 августа 2010 08:18 · Личное сообщение · #11 |
|
Создано: 02 августа 2010 21:44 · Личное сообщение · #12 |
|
Создано: 28 января 2017 06:14 · Поправил: AKAB · Личное сообщение · #13 Vovan666 пишет: Если при загрузке в отладчик длл уже загружена (Alt+E), то ищешь пустое место в exe и там пишешь примерно такой код: pushad pushfd PUSH dll_s_resursami.dll (dll_s_resursami.dll это имя твоей длл) call GetModuleHandleA mov byte[eax+1234],0eb ;в eax будет адрес по которому загружена dll,1234 смещение по которому нужно пропатчить. popfp popad jmp oep и меняешь в проге oep на свой код *********************************** Если длл подгружается позже, то стявь бряк LoadLibraryA(W) и после того как длл загрузится делаешь jmp в пустое место и там уже патчишь. прошу ещё раз написать как взломать Dll ----- это имя длл: df.dll адрес взлома 699395AA (003795AA) old byte 85 new bytre 31 --------- |
|
Создано: 02 марта 2017 07:22 · Поправил: harbor · Личное сообщение · #14 народ, я что-то очканул создавать новый топик, решил тут пока отписаться.. Вопрос у меня похожий про dll есть dll-ка которая защищает основную программу, то есть она проверяет лицензионный файл и если он не такой как задумано, то показывает окошко типа "блаблабла, неверная лицензия" и тупо закрывает программу. Так вот как бы сделать так, чтобы избежать закрытия, может быть можно вырезать из dll эту функцию, подскажите как. длл-ка в аттаче, вроде бы в ней должна быть функция проверки, если я не ошибся. |
|
Создано: 02 марта 2017 07:37 · Поправил: -=AkaBOSS=- · Личное сообщение · #15 harbor пишет: я что-то очканул создавать новый топик это правильно, но всё равно промахнулся - программа - да и к тому же [!] DONGLE - Rainbow SENTiNEL references detected ! вероятнее всего, анализировать надо софт целиком, а не одну длл. |
|
Создано: 02 марта 2017 08:49 · Поправил: harbor · Личное сообщение · #16 -=AkaBOSS=- можно плз не палить эту инфу об авторстве? я удалил свой архив из сообщения. посмотрел ddl-ку PE Explorer-oм, и увидел там похожие функции на проверку лицензии например CheckLicenseCRC и CheckComponentLicense вот если бы их можно было оттуда удалить или как-то перехватывать и не допускать выполнения.. пока я в этом не силен, но готов копать до победного конца. Вообще, я полагал, что при подключении этой длл в ней просто запускается отдельный поток, где крутится программа проверки лицензии, потому что пока не смог определить откуда может происходить вызов этих функций. Софт использующий эту dll использует скриптовый язык для работы с библиотеками Что касается Rainbow SENTiNEL - это защита основного софта через ключ, то есть используется этот драйвер для проверки лицензии. Поэтому возможно библиотека работает через этот драйвер. Но суть в том, что это уже наслойка авора проекта и я думаю что ее можно отключить. Отключить всю длл не получится, в ней есть математческие функции, нужные для работы проекта |
|
Создано: 02 марта 2017 09:21 · Личное сообщение · #17 harbor пишет: посмотрел ddl-ку PE Explorer-oм, и увидел там похожие функции на проверку лицензиинапример CheckLicenseCRC и CheckComponentLicense Собственно, только эти 2. Остальные, если ориентироваться на имена, к лицензии не имеют отношения. Удалять функции, не допускать их выполнения - не надо. Надо, чтобы они нужный результат возвращали. Попробуйте пропатчить CheckComponentLicense так, чтобы она всегда возвращала 0xFFFFFFFF. |
|
Создано: 02 марта 2017 11:15 · Поправил: harbor · Личное сообщение · #18 Prober я дизассемблировал ее PE експлорером, нашел коды этих функций пока не знаю как найти возврат значения и чем править собственно все это, чтобы потом собрать обратно может просто вырезать тела этих функций? _________ upd. вот на картинке вызов функции проверки. все что нужно это убрать вызов call что если место вызова функции просто забить нулями? там 5 байт начиная с адреса 432A09 по 432A0У или тупо команду retn передвинуть на адрес 432A09, получится ил нет без декомпиляции/компиляции?)) 7854_02.03.2017_EXELAB.rU.tgz - Screenshot-19.jpg Добавлено спустя 18 часов 10 минут Замена вызова call на retn не помогла, значит все же надо патчить CheckComponentLicense. Вопрос только - а где функция возвращает значение, в стеке или в аккумуляторе? а то может быть просто сразу в начале тела функции прописать в стек или акум 0xFFFFFFFF и вернуть его.. Попытался разобраться в теле, но там куча многоходовок с переходами.. буду думать. |
|
Создано: 07 марта 2017 13:50 · Личное сообщение · #19 Есть проблема, .dll накрыта themid'ой , после изнурительных работ, скрипт всё же сделал своё дело, и в конце всего этого была иконка UPLOAD , чтобы выгрузить fixed.dll но, после нажатия на upload ничего не вышло, файл не добавился, иконка upload это дополнение к оллидб как LoadDLL+ v0.1 Что можно сделать с этой напастью? ошибок не было, но он не выгружает это fixed |
|
Создано: 07 марта 2017 14:25 · Личное сообщение · #20 MoloF пишет: Есть проблема, .dll накрыта themid'ой Как-то нечётко вопрос сформулирован. Если хочешь, чтобы тебе помогли, приведи больше информации. Что за программа, ссылка на файл, чем конкретно пытался распаковать, какой использовал инструмент или скрипт, какая была последовательность действий. Если всё, что ты сделал - это запустил некий скрипт, то тут тебе совет один - в ----- EnJoy! |
|
Создано: 07 марта 2017 14:58 · Личное сообщение · #21 Вот проблема. Я использовал скрипт LCF-AT и у него увидел такую нужную вещь как loaddll UPLOAD то есть это дополненный loaddll.exe с расширенным функционалом. Так вот, после того как скрипт выполнился, появляется это окно с сообщением и кнопкой UPLOAD Чтобы можно было создать fixed.dll не трогая изначальный длл У меня же он просто напросто не желает сохранять, или же он сохраняет но не туда куда надо, я не знаю куда. Можно как нибудь это настроить или же что с этим делать? Вот это дополнение Смотрел туториалы у LCF-AT у него сразу всё добавлялось Тутор могу скинуть как ссылку eefc_07.03.2017_EXELAB.rU.tgz - dllUPLOAD.rar |
|
Создано: 07 марта 2017 15:37 · Личное сообщение · #22 |
|
Создано: 07 марта 2017 16:09 · Личное сообщение · #23 |
eXeL@B —› Вопросы новичков —› Взлом dll |