Сейчас на форуме: tyns777, zds, JustLife, 2nd, morgot, Rio (+4 невидимых)

 eXeL@B —› Программирование —› ASProtect OEPFinder и мемори брейкпоинты
Посл.ответ Сообщение


Ранг: 681.5 (! !), 405thx
Активность: 0.420.21
Статус: Участник
ALIEN Hack Team

Создано: 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.




Ранг: 101.0 (ветеран), 344thx
Активность: 1.150
Статус: Участник

Создано: 17 августа 2009 16:26
· Личное сообщение · #2

ARCHANGEL пишет:
если кто-то считает, что действительно может помочь


Ну смотря на чём написано. На самом деле лучше бы выложил пример того что распаковал. Может найдётся способ попроще для нахождения OEP, нежели ловить исключения.



Ранг: 255.8 (наставник), 19thx
Активность: 0.150.01
Статус: Участник
vx

Создано: 17 августа 2009 17:52
· Личное сообщение · #3

Если не секрет, зачем распаковывать ?



Ранг: 101.0 (ветеран), 344thx
Активность: 1.150
Статус: Участник

Создано: 17 августа 2009 18:01
· Личное сообщение · #4

Может быть потому что инлайн это полу ламерское решение?

P.S. Хотелось бы вопросов и предложений по существу, а не флуда.




Ранг: 681.5 (! !), 405thx
Активность: 0.420.21
Статус: Участник
ALIEN Hack Team

Создано: 17 августа 2009 21:46
· Личное сообщение · #5

Написано на Delphi, но без ооп и другого фанатизма, я старался, чтоб код был прост и функционировал правильно, а распаковывал для простоты исследования, но тут вопрос не только и не столько в распаковке, сколько в проходе до ОЕР, не пойму, зачем может сама цель понадобиться?

-----
Stuck to the plan, always think that we would stand up, never ran.




Ранг: 13.7 (новичок)
Активность: 0.010
Статус: Участник

Создано: 17 августа 2009 22:22
· Личное сообщение · #6

Цель может понадобиться для того, чтобы всем было интересно, а не только тем, кто в этой защите уже ковырялся




Ранг: 681.5 (! !), 405thx
Активность: 0.420.21
Статус: Участник
ALIEN Hack Team

Создано: 17 августа 2009 22:31
· Личное сообщение · #7

В принципе, подойдет любая программа, запакованная аспром упомянутых версий, я ведь хочу сделать универсальный ОЕР поисковик, чтоб для всех версий аспра подходил,
Если эта версия генерит исключения, то с помощью моего детища можно будет найти место либо непосредственно на оригинальной точке входа, либо рядом

-----
Stuck to the plan, always think that we would stand up, never ran.




Ранг: 101.0 (ветеран), 344thx
Активность: 1.150
Статус: Участник

Создано: 17 августа 2009 22:47
· Личное сообщение · #8

ARCHANGEL пишет:
не пойму, зачем может сама цель понадобиться?


Чтобы точно знать, для какой версии создаётся тулза.




Ранг: 681.5 (! !), 405thx
Активность: 0.420.21
Статус: Участник
ALIEN Hack Team

Создано: 18 августа 2009 09:19
· Личное сообщение · #9

В качестве цели, например, можно взять крякми из раздела рар-статьи, там статья про то, как некий аргентинский реверсер пытается снять зарегистрированную вторую версию, там нет краденных байт, поэтому вышеупомянутый алгоритм должен будет сразу показать ОЕР. Я бы привел ссылку для скачкавния на статью, но мне неудобно сделать это с мобилы

-----
Stuck to the plan, always think that we would stand up, never ran.





Ранг: 681.5 (! !), 405thx
Активность: 0.420.21
Статус: Участник
ALIEN Hack Team

Создано: 19 августа 2009 18:11
· Личное сообщение · #10

Всем спасибо за внимание, решил проблему - это была моя ошибка реализации алгоритма.

-----
Stuck to the plan, always think that we would stand up, never ran.



 eXeL@B —› Программирование —› ASProtect OEPFinder и мемори брейкпоинты
Эта тема закрыта. Ответы больше не принимаются.
   Для печати Для печати