Сейчас на форуме: igorcauret, Rio (+6 невидимых) |
![]() |
eXeL@B —› Вопросы новичков —› Не могу найти точку входа OEP |
. 1 . 2 . >> |
Посл.ответ | Сообщение |
|
Создано: 18 марта 2015 15:52 · Личное сообщение · #1 Здравствуйте, не могу отучить программу от Hasp ключа. Делай вроде как учили PEid v0.95, говорит файл запакован UPolyX v0.5 *, отладкой Олли нашёл записи в стек регистров,причём не pushad, а 4 раза PUSH , затем начинает доставать из стека по одному значению и редактировать их (то складавая с целыми значениями,то делая логические сдвиги), затем записывает обратно в стек.Было найдено несколько условных JMP(JNE,JE), все адреса были проверены на точку входу, но увы не один дам не запустился.Что делаю не так, или вообще файл не запакован и я не туда копаю? Добавлено спустя 14 минут http://rusfolder.com/43240617 - Сама прога ![]() |
|
Создано: 18 марта 2015 16:39 · Личное сообщение · #2 |
|
Создано: 19 марта 2015 16:51 · Личное сообщение · #3 MrProxe пишет: все адреса были проверены на точку входу hr esp-4 Можно безболезненно срезать все секции, кроме первых двух. Shubka75 пишет: Копаешь ты совсем не туда - твоя прожка накрыта протом HASP HL. Зрение проверьте и этот тутор ему не поможет, коли ключа нет, так что глупый совет. ----- TEST YOUR MIGHT ![]() |
|
Создано: 19 марта 2015 22:57 · Личное сообщение · #4 Ключик есть Добавлено спустя 2 минуты Не понял, а с ключиком всё срежится, если делать по предложенной инструкции? Добавлено спустя 21 минуту Что с ключом,что без ход программы в Олли не меняется,так и должно быть? Добавлено спустя 1 час 15 минут да и При загрузке программы в ollydbg, оля ругается module has entry point outside of code ![]() |
|
Создано: 20 марта 2015 01:52 · Поправил: unknownproject · Личное сообщение · #5 MrProxe пишет: Не понял, а с ключиком всё срежится, если делать по предложенной инструкции? После успешной инициализации, распаковки кода и заполнения IAT прот передает управление проге, так что OEP будет найти легко. MrProxe пишет: да и При загрузке программы в ollydbg, оля ругается module has entry point outside of code Это патчится. MrProxe пишет: Что с ключом,что без ход программы в Олли не меняется,так и должно быть? Не исключено, что палится отладчик. ----- TEST YOUR MIGHT ![]() |
|
Создано: 20 марта 2015 08:46 · Личное сообщение · #6 |
|
Создано: 20 марта 2015 17:41 · Поправил: unknownproject · Личное сообщение · #7 MrProxe пишет: С антиотладчком вроде разобрался, теперь прога запускается,но выдаёт окно не соответствие CRC суммы и закрывается. Как с этим быть? Поставить после вызова мессадж бокса отладку на паузу, перейти к дереву вызовов (Calls) - кнопка K, перейти к соответствующей функции и поставить бряк на RETN.Продолжить отладку, нажать ОК, должно произойти прерывание на выходе из функции (тот самый бряк на RETN).После этого выйти по F8 в код программы и, если он не сжат/виртуализирован/обфусцирован, то поискать выше вызовы MapViewOfFile и GetFileSize, ну и условные переходы рядом с ними. ----- TEST YOUR MIGHT ![]() |
|
Создано: 25 марта 2015 16:21 · Личное сообщение · #8 Нашёл точку входа в программу a28868, Вычислил RVA EOP a28868-400000=62886.Нажал AutoSerch,он нашёл этот адрес,вверху было YES без единого Invalid,выбрал дамп- ImpRec написал все Ок success. запускаю прогу она не запускается, просто ничего не происходит. Куда копать дальше??? Добавлено спустя 19 минут Да и заметил ещё один интересный факт, если запустить программу с ключом немного поработав в ней, взять и выдернуть ключ, то через некоторое они выкинет и скажет,что ключ не обнаружен...Куда копать??? ![]() |
|
Создано: 25 марта 2015 17:04 · Личное сообщение · #9 MrProxe пишет: Нашёл точку входа в программу a28868, Вычислил RVA EOP a28868-400000=62886 Скорее всего Вы ошиблись и нашли неверную точку входа. MrProxe пишет: Да и заметил ещё один интересный факт, если запустить программу с ключом немного поработав в ней, взять и выдернуть ключ, то через некоторое они выкинет и скажет,что ключ не обнаружен...Куда копать??? Значит наличие ключа проверяется как во время запуска, так и в процессе работы в цикле. ----- TEST YOUR MIGHT ![]() |
|
Создано: 25 марта 2015 17:07 · Личное сообщение · #10 http://rusfolder.com/43302195 - вот распакованный exe Добавлено спустя 3 минуты Настолько всё совпало, hr-esp4 прям указал на Jmp, перед которым был POP.Перешёл по jmp и я решил,что это и есть ОЕР.И импортирование прошло без сучка и задоринки. А как же мне найти цикл в котором она обращается к ключу? Добавлено спустя 5 минут Проверка распакованного файла в PEid пишит теперь про какой-то alias pix/vivid img graphics format ![]() |
|
Создано: 25 марта 2015 17:13 · Личное сообщение · #11 |
|
Создано: 25 марта 2015 17:18 · Личное сообщение · #12 |
|
Создано: 25 марта 2015 17:20 · Личное сообщение · #13 |
|
Создано: 25 марта 2015 17:25 · Личное сообщение · #14 |
|
Создано: 25 марта 2015 17:33 · Личное сообщение · #15 |
|
Создано: 25 марта 2015 17:42 · Личное сообщение · #16 Скрин запушенной проги ![]() Добавлено спустя 0 минут сама прога ![]() ![]() |
|
Создано: 25 марта 2015 17:53 · Поправил: unknownproject · Личное сообщение · #17 Судя по коду сначала отрабатывает SFX пакера, потом передается управление коду протектора, а далее уже при наличии ключа переход на OEP проги.Судя по количеству секций это MS C++, значит с бОльшей вероятностью, что рядом с OEP расположен вызов функции GetVersion или GetVersionExA. ----- TEST YOUR MIGHT ![]() |
|
Создано: 25 марта 2015 17:59 · Личное сообщение · #18 Искал через Find Command ни того ни другого не нашёл Добавлено спустя 3 минуты Хотя в Hex нашёл кидаю скрин,но долековато от OEP ![]() Добавлено спустя 7 минут Прям рядом с ОЕР есть GetModuleHandle ![]() |
|
Создано: 25 марта 2015 18:09 · Поправил: unknownproject · Личное сообщение · #19 Разберитесь с функционалом отладчика и внимательно прочтите мое сообщение через одно выше.Первая секция - это секция кода.OEP должно быть в пределах ее адресного пространста. MrProxe пишет: Добавлено спустя 7 минут Прям рядом с ОЕР есть GetModuleHandle Это справедливо для Layer2.Как дела обстоят с OEP самой программы - догадки. ----- TEST YOUR MIGHT ![]() |
|
Создано: 25 марта 2015 18:10 · Личное сообщение · #20 НАШЁЛ НЕПОДАЛЁКУ ОТ ОЕР GetVersionExA Добавлено спустя 2 минуты вот скрин ![]() ![]() |
|
Создано: 25 марта 2015 18:15 · Поправил: unknownproject · Личное сообщение · #21 |
|
Создано: 25 марта 2015 18:18 · Личное сообщение · #22 |
|
Создано: 25 марта 2015 18:32 · Поправил: unknownproject · Личное сообщение · #23 Первая инструкция - это PUSH EBP. MrProxe пишет: это ОЕР? Возьмите любую неупакованную и незащищенную программу и посмотрите инструкции, расположенные на точке входа.Думаю, что вопросов больше не возникнет. MrProxe пишет: Добавлено спустя 13 минут Нажимаю дальше F9 прога запускается Понятно, что она запускается.Проверяйте импорт.Если он определится неверно (не в плане валидности функций, а размер и начало), то смотрите дамп второй секции в окне дампа и ищите его начало, конец и размер. ----- TEST YOUR MIGHT ![]() |
|
Создано: 25 марта 2015 18:49 · Личное сообщение · #24 Взял обычный блокнот, посмотрел инструкции на точке входа, код очень похож. Получаестя MOV EDI,EDI и есть начало работы незащифрованной программы? Добавлено спустя 0 минут после Mov и есть первая инструкция.... Добавлено спустя 12 минут Можно как-то поподробней,что-то я совсем не догоняю Добавлено спустя 13 минут Или ссылку где можно об этом почитать? Добавлено спустя 1 час 12 минут Нашёл первую инструкции,долго шёлкая F7 (первое появление PUSH EBP), кстати когда ставил Breakpoint, Олли предложила установить на этом месте Set real SFX enter. Но я поставил хардвея и прога после перезапуска проскочила эту точку спокойно запустившись.Но меня удивило кое, что. Это видно в принт скрине. Но есть ещё один push EBP, на котором прога останавливается,но это первый мой найденный ОЕР. Я окончательно запутался и не знаю,что делать. Можете дать какую нить литературу,почитав её я бы понял,что всё это значит??? ![]() ![]() |
|
Создано: 01 апреля 2015 08:31 · Личное сообщение · #25 ну видимо,касаемо моего вопроса идей больше нет. Жаль,хотя я вот подумал,если я найду эту точку входа OEP мне это не поможет. Ведь ещё прога обращается к ключу во время своей работы, а как с этим бороться я даже теоретически не представляю,поэтому все мои поиски бесмысленны. Моё утверждение верно,или я ошибаюсь? ![]() |
|
Создано: 01 апреля 2015 09:18 · Поправил: unknownproject · Личное сообщение · #26 Идеи в первую очередь должны быть у Вас, так как программа никому из здесь обитающих уж точно не нужна, да и я предостаточно намекнул.Без ключа я могу только гадать, так как форма программы предо мной не предстанет, а значит окончания инициализации защиты и передачи управления коду программы мне также не видать.Если хотите понять самостоятельно - читайте разделы из шапки каждой страницы, анализируйте, изучите спецификацию PE, сравнивайте с другими файлами.От вас пока только лишь поступают вопросы, причем те, которые можно найти в справке по отладчику.Если бы Вы обладали достаточным опытом, то уже определяли все на глаз.Не думайте, что Вас кто-то будет водить за ручку, а полагайтесь на свои силы, а то Ваши фразы невольно склоняют к мысли о том, что Вам кто-то должен, но это не так.Удачи. ----- TEST YOUR MIGHT ![]() |
|
Создано: 15 апреля 2015 11:13 · Личное сообщение · #27 Снова,здравствуйте, подтянув немного теорию (изучил форумы почитал книгу "Введение в крекинг"),появилось несколько вопросов.1.Согласно теории, брейкпоинт поставленный на выполнение (доступ) на закодированную секцию,говорит,что данная секция раскодированна. В моём случае это абсолютно не так, если посомотреть на эту секцию, до запуска программы и во время остановки на брейкпоинте они идентичны.Соответственно вопрос, как программы пытается выполнять код, не раскодировав его? Добавлено спустя 3 минуты hr esp-4 - тоже показывает не переход на ОЕР, так как при переходе в первую секцию,просмотрев её в hex, она идентична,той что было до запуска проги.Поэтому я делаю вывод,что она не раскодирована,мои утверждения верны? ![]() |
|
Создано: 15 апреля 2015 12:19 · Личное сообщение · #28 |
|
Создано: 15 апреля 2015 12:27 · Личное сообщение · #29 Да цикл, я обнаружил в протекторе,но он не модифицирует первую секцию,он делает арифметические вычисления без записи. Просто как мне здесь объясняли,программа накрыта Hasp конвертом,ну и действительно Hasp ключ имеется.Просто вопрос Hasp ключ обязательно,должен что-то кодировать? Добавлено спустя 3 минуты если долго трассировать,то можно найти момент,что в первой секции оказываются совсем другие данные,брейк поинт на запись в секцию приводит к прерыванию программы с ошибкой 39 (сессия Hasp прервана) и всё. Как поймать момент модификации кода в первой секции??? И нажен ли мне этот момент для нахождения OPE??? ![]() |
|
Создано: 15 апреля 2015 12:54 · Личное сообщение · #30 MrProxe пишет: ак поймать момент модификации кода в первой секции??? Открыть ее бинарный дамп и трассировать, наблюдая изменения.Раз вылазит ошибка, значит запалился отладчик и нет прав на запись в эту секцию (протектор их еще не выставил).Важен или нет ? Важен.Если визуально определить точку входа в программу проблематично, то придется ее искать, протрассировав всю SFX секцию в поисках заветных Jmp/call eax-ebx-ecx etc или retn. ![]() |
. 1 . 2 . >> |
![]() |
eXeL@B —› Вопросы новичков —› Не могу найти точку входа OEP |