Сейчас на форуме: hgdagon, asfa, bartolomeo (+6 невидимых) |
![]() |
eXeL@B —› Программирование —› Найти точку входа в .ax DS фильтр из EXE файла, который его использует |
Посл.ответ | Сообщение |
|
Создано: 21 октября 2006 12:50 · Личное сообщение · #1 Емеется 2 файла, один экзешник, другой .ax - Direct Show фильтр, оба защищены AsProtect-ом версии 2.2 или выше, нужно найти при помощи Ольки точку перехода из экзешника в OEP .ax фильтра дабы провести трассировку, пока только смог по установленному аспротектом INT 3 выпасть сразу в код этого файла, соответственно знаю в какой он сегмент памяти себя постоянно вгружает, но этот инт находится слишком далеко от интересующих меня элементов(после их), вручную трассировать до этого перехода просто палец устает и глаза ![]() ![]() |
|
Создано: 21 октября 2006 17:48 · Личное сообщение · #2 |
|
Создано: 21 октября 2006 21:46 · Поправил: Kamo · Личное сообщение · #3 Ну я инлайн патч хочу сделать или попробовать отследить функцию валидации ключа и получить валидный ключ для активации, там как-то очень забавно аспротект защитил - в экзешнике защищена только самая начальная часть кода, она аж запускается в отдельном выделенном сегменте памяти, в нем же осуществляется вгрузка .ax потом поток кода уходит обратно в секцию кода и там уже шуршит, я потм посмотрел сам, такое ощущение что львиная доля секции кода вообще никак аспротектом не застронута, тоесть он вначале распаковал код и таблицу импорта, я ее кстати нашел в начале секции .data после распаковки, она там плавно переходит в ресурсы почемуто, вот так получается секция кода практически не защищена токо видно повсеместно аспротектовские int 3(гы гы свободное место под инлайн патч), вообще я по результатам трассировки надыбал там оч много точек кода где идет проверка лицензионного ключа и прога сама даже выдала мне часть этого ключа(проверка ключа просто проводится в самой .ax) вот, анализирую алгоритм дабы весь ключ получить для этого нужно выскочить чуток ранее чем да вышеописанного инта, там какраз все начинается с чтения записанного ключа в реестре, насколько я увидел по коду, вот в Olly можно поставить бряк на вызов апишной функции RegOpenKeyExA до того как код загружен в сегмент данных, в WinICE было попроще, там просто ставиш бряк на вызов апи и она выпадает по любому обращению к ней, неважно откуда, а тут, наверное надо просто найти в памяти эту функцию и поставить бряк на ее начало, надо попробовать, но только системка ее вызывает переодически, надо момент подловить ![]() ![]() |
|
Создано: 22 октября 2006 07:20 · Личное сообщение · #4 Еще возникла одна трабла, когда стою на OEP, ставлю брейкпоинты на RegQueryKeyExA и на RegQueryKeyA, так как RegMon-ом посмотрел что прога читает именно ими активационный ключик из реестра, если после этого нажать F9 прога постоянно вылетает на какой-то непонятный код в непонятном сегменте после чего один шаг трасировки приводит к сообщению - что-то типа "Dont know how to step because memory at address XXXXXXXXX is not readable". Возможно это из-за какойто системной функции, которая вызывает этот RegQueryValue с переодичностью, как можно эту бряку отфильтровать так в Оле, чтобы вылетала только из нужного модуля? Или может это еще одна уловка ASProtect`а? ![]() |
|
Создано: 22 октября 2006 10:09 · Личное сообщение · #5 Попробовал ставить аппаратные бряки, работают без экзепшенов, прога не рухается, но по брякам выпадают не все вызовы нужной функции, какой-то рандом получается в выпадении, как можно Olly заставить вылетать на всех бряках по вызову апишной функции, чтобы он ничего не пропустил, ато получается какраз нужную мне он и пропускает, по регмону там RegQueryValueExA или RegQueryValueA а у меня по хардварным брякам они не выпадают, выпадают некоторые из самой проги и некоторые системные вызовы и все, потом прога запускается и вообще бряки не выпадают, что-то я не втыкаю как эти бряки в Olly работают через раз ![]() ![]() |
|
Создано: 31 октября 2006 08:15 · Личное сообщение · #6 |
![]() |
eXeL@B —› Программирование —› Найти точку входа в .ax DS фильтр из EXE файла, который его использует |