![]() |
eXeL@B —› Программирование —› ASProtect OEPFinder и мемори брейкпоинты |
Посл.ответ | Сообщение |
|
Создано: 17 августа 2009 16:15 · Личное сообщение · #1 Всем доброго времени суток. Недавно столкнулся с необходимостью распаковки старых, но не очень, 2.0-2.1 версий аспра. Инфы по этому делу достаточно, так что распаковка у меня прошла без проблем. Но решил на будущее чисто для себя написать плагин для PeiD и Die для автоматического нахождения ОЕР. Суть в том, что в этом плагине с помощью отладочных АПИ реализую простенький цикл отладчика, перехватываю первое исключение аспра EXCEPTION_ACCESS_VIOLATION, далее к текущим атрибутам первой секции (границы секции считываю с диска) добавляю PAGE_GUARD, а когда происходит исключение по доступу к этим страницам, смотрю, не произошло ли оно по адресу, который находится в первой секции. Если нет, то отладчик передаёт далее DBG_CONTINUE, а если да, то мы, типа, нашли место рядом с ОЕР. Алгоритм вполне рабочий для старых версий, до ОЕР которых можно было дотопать по исключениям. Но проблема в том, что если без таких мемори брейкпоинтов, исключений происходило где-то 20-30, а срабатываний мемори брейкпоинтов и того меньше (так, например, происходит в ольке) то в моём минидебаггере срабатываний этих мемори брейкпоинтов штук 70. И ни один адрес не указывает на ОЕР, которое я нашёл в отладчике. Почему такое происходит - ума не приложу. Т.к. проект ещё не готов - исходники не прилагаются, ноесли кто-то считает, что действительно может помочь, то могу выложить в личку. ----- Stuck to the plan, always think that we would stand up, never ran. ![]() |
|
Создано: 17 августа 2009 16:26 · Личное сообщение · #2 |
|
Создано: 17 августа 2009 17:52 · Личное сообщение · #3 |
|
Создано: 17 августа 2009 18:01 · Личное сообщение · #4 |
|
Создано: 17 августа 2009 21:46 · Личное сообщение · #5 Написано на Delphi, но без ооп и другого фанатизма, я старался, чтоб код был прост и функционировал правильно, а распаковывал для простоты исследования, но тут вопрос не только и не столько в распаковке, сколько в проходе до ОЕР, не пойму, зачем может сама цель понадобиться? ----- Stuck to the plan, always think that we would stand up, never ran. ![]() |
|
Создано: 17 августа 2009 22:22 · Личное сообщение · #6 |
|
Создано: 17 августа 2009 22:31 · Личное сообщение · #7 В принципе, подойдет любая программа, запакованная аспром упомянутых версий, я ведь хочу сделать универсальный ОЕР поисковик, чтоб для всех версий аспра подходил, Если эта версия генерит исключения, то с помощью моего детища можно будет найти место либо непосредственно на оригинальной точке входа, либо рядом ----- Stuck to the plan, always think that we would stand up, never ran. ![]() |
|
Создано: 17 августа 2009 22:47 · Личное сообщение · #8 |
|
Создано: 18 августа 2009 09:19 · Личное сообщение · #9 В качестве цели, например, можно взять крякми из раздела рар-статьи, там статья про то, как некий аргентинский реверсер пытается снять зарегистрированную вторую версию, там нет краденных байт, поэтому вышеупомянутый алгоритм должен будет сразу показать ОЕР. Я бы привел ссылку для скачкавния на статью, но мне неудобно сделать это с мобилы ![]() ----- Stuck to the plan, always think that we would stand up, never ran. ![]() |
|
Создано: 19 августа 2009 18:11 · Личное сообщение · #10 |
![]() |
eXeL@B —› Программирование —› ASProtect OEPFinder и мемори брейкпоинты |
Эта тема закрыта. Ответы больше не принимаются. |