Сейчас на форуме: Adler, asfa, bartolomeo (+8 невидимых) |
![]() |
eXeL@B —› Вопросы новичков —› Как найти OEP для запакованной библиотеки DLL |
Посл.ответ | Сообщение |
|
Создано: 10 июня 2012 20:06 · Поправил: StarXruk · Личное сообщение · #1 С помощью программы GeTaOEP в режиме external dll loader получаются такие результаты: Dll has been injected into the target process at base address 0x10000000 Processing... Target imagebase: 0x00160000 Approximate OEP RVA: 0x000375D5 VA: 0x001975D5 Target process has been terminated Как теперь найти в отладчике,когда запущен основной процесс,этот адрес? По адресу 001975D5 ничего нет При загрузке программы,модуль этой Dll занимает область памяти: 00330000 - 00392000 ![]() |
|
Создано: 10 июня 2012 20:15 · Личное сообщение · #2 |
|
Создано: 10 июня 2012 21:35 · Личное сообщение · #3 |
|
Создано: 10 июня 2012 21:41 · Личное сообщение · #4 Значит GeTaOEP нашла неверный OEP ----- Nulla aetas ad discendum sera ![]() |
|
Создано: 10 июня 2012 21:47 · Поправил: -=AkaBOSS=- · Личное сообщение · #5 ну вот ![]() можно ведь просто скопировать нужный участок и оформить тегом кода во-первых, OEP находится там, где вызывается процедура, на которой у тебя открыт отладчик во-вторых, IAT далеко не всегда можно найти автоматически. посмотри, где у тебя начало блока с адресами импорта и впиши всё ручками ![]() Flint не, OEP походу правильный (почти, чуть назад надо вернуться) стандартный код для MSVC++ 8.0 /ADD: упс, и то верно. забыл, что это длл. ![]() ![]() |
|
Создано: 10 июня 2012 21:58 · Личное сообщение · #6 -=AkaBOSS=- пишет: во-первых, OEP находится там, где вызывается процедура, на которой у тебя открыт отладчик OEP длл это начало DllMain, где практически всегда есть проверка на DLL_PROCESS_ATTACH, что в отладчике выглядит как CMP DWORD PTR SS:[EBP+C],1 ----- Nulla aetas ad discendum sera ![]() |
|
Создано: 10 июня 2012 22:12 · Личное сообщение · #7 Flint пишет: OEP длл это начало DllMain, где практически всегда есть проверка на DLL_PROCESS_ATTACH, что в отладчике выглядит как CMP DWORD PTR SS:[EBP+C],1 Нет такого,вот только что есть: Code:
![]() |
|
Создано: 10 июня 2012 22:21 · Поправил: -=AkaBOSS=- · Личное сообщение · #8 |
|
Создано: 10 июня 2012 22:42 · Поправил: StarXruk · Личное сообщение · #9 Выше есть вот что: Code:
Но на адресе 338DA0 бряк не срабатывает и IAT не ищется. -=AkaBOSS=- пишет: а чем запаковано-то хоть? Frontline Protect Technology Starforce 4.70.8.0 Pro В аттаче сама библиотека,а вот дамп: ![]() ![]() |
|
Создано: 10 июня 2012 22:54 · Личное сообщение · #10 |
|
Создано: 10 июня 2012 22:58 · Поправил: StarXruk · Личное сообщение · #11 Смысл здесь в том,что проверку диска переместили из exe-файла в эту библиотеку.Если распаковать сам исполняемый файл,восстановить импорт - он запускается,но проверяет диск. Поэтому,нужно распаковать dll - для этого надо найти точку входа DllEntryPoint. Откуда я узнал,что проверка в этой библиотеке? Да очень просто,по наличию секции .sforce3 ,которая однозначно говорит о том что файл упакован Старфорсом. ![]() |
|
Создано: 10 июня 2012 23:07 · Поправил: -=AkaBOSS=- · Личное сообщение · #12 дык писал уже: -=AkaBOSS=- пишет: посмотри, где у тебя начало блока с адресами импорта и впиши всё ручками у тебя на скрине явно видны команды вида jmp dword ptr ds:[xxxxxxxx] и call dword ptr ds:[xxxxxxxx] найди в дампе один из этих адресов, и просмотри вверх, где он начинается вычисли RVA этого адреса и введи его в поле RVA в импрек после просмотри вниз, где этот блок кончается... вычти из большего меньшее, получишь размер введешь его в поле Size в импрек, нажмешь Get Imports StarXruk пишет: проверку диска переместили из exe-файла в эту библиотеку нет, просто на неё тоже навесили Старфорс, и она тоже грузит protect.dll, которая уже работает с дровами и проверяет диск StarXruk пишет: надо найти точку входа DllEntryPoint. дык, нашли ж уже то, что там ничего не останавливается, еще ничего не значит стар мог скопировать часть кода и выполнить его гдето в другом месте ![]() |
|
Создано: 10 июня 2012 23:32 · Личное сообщение · #13 |
![]() |
eXeL@B —› Вопросы новичков —› Как найти OEP для запакованной библиотеки DLL |
Эта тема закрыта. Ответы больше не принимаются. |