![]() |
eXeL@B —› Основной форум —› Странный DLL... (Aspr) |
Посл.ответ | Сообщение |
|
Создано: 14 мая 2005 16:42 · Личное сообщение · #1 Скачал я English-Spanish Interpreter Professional 4.4 (http://www.wordmagicsoft.com, 48 MB), там стоит Аспр версии 1.2х-1.3х, стрпперы и старые и новые (до версии 2.13, не знаю есть ли поновее) распаковывают его (ЕХЕ), но не корректно.. Распаковал вручную, всё отлично, только спёртые байты для Дельфи программы странные были:
Потом пропатчил его чтоб триал окно не показывало, и щас могу использовать его в вечном триале, ограничений нет. Но программа имеет также плагин для MS Word, который позволяет использовать его из ворда. он тоже запакован тем же аспром и стрипперы опять не корректно распаковывают. Попробовал опять вручную, и тут началось.. во первых, очень странно что ДЛЛ-ка имеет ImageBase равным почему-то 00400000, ясно что по этому адресу подгружена программа, которая его вызывает, так что она конечно грузиться в другое адресное пространство, в моём случае с loaddll.exe от Olly вот так:
тойсть библиотека грузиться конечно не в 00400000 а в моём случае в 007A0000. Доxожу до ОЕР, а может и Fake OEP, не проверял так-как я нахожу спёртые байты после корректировки IAT.
гружу ImpRec, чтоб восстановить таблицу, если ОЕР писать 001B7980, говорит не в пространстве модуля естественно, так как он принимает ImageBase как 00400000.. если ОЕР писать 00557980, говорит что не может таблицу найти... таблицу нашёл вручную:
Get Imports, получили их, Show Invalid, Disasm Level 1, OK, и после этого плагины для обработки аспровых апи не работают почему-то, импрек вешаеться... пришлось дизасмить вручную каждую апи и решить что это за функция.. с этим тоже справились.. но когда жму Fix Dump, выводиться ошибка что не может конвертсровать адреса в RAW address.. пробовал на дампах и c ImageBase 00400000 и c 007A0000.. и еще одна странновсть, не могу восстановить релоки, плагин PETools-а ругается что их очень много... есть советы? Файлы: assoft.it.hosting.am/files/WMPlugIn.rar (994 kb) assoft.it.hosting.am/files/WMPlugIn_Dumped.rar (998 kb) assoft.it.hosting.am/files/WMPlugIn_iat_imprec.txt (25 kb) ![]() |
|
Создано: 15 мая 2005 14:33 · Личное сообщение · #2 |
|
Создано: 15 мая 2005 15:55 · Личное сообщение · #3 arnix пишет: гружу ImpRec, чтоб восстановить таблицу, если ОЕР писать 001B7980, говорит не в пространстве модуля естественно, а "pick dll" нажать пробовал ? ![]() arnix пишет: не могу восстановить релоки, плагин PETools-а ругается что их очень много Relox рулит ;) ![]() |
|
Создано: 15 мая 2005 16:15 · Поправил: arnix · Личное сообщение · #4 Mario555 пишет: а "pick dll" нажать пробовал ? ну я жe не тумбочка ![]() ![]() Mario555 пишет: Relox рулит ;) им никогда не пользовался, попробую им, если импорты восстанавлю Mario555 пишет: протах адрес таблицы вручную указываю а я только если сам он не находит ![]() P.S. есть ли другие соображения отчего это? Offtop: по ходу, я тут анпакер пишу, хочу поставить брейк на VirtualAlloc , но туды писать запрещено, не подскажите какя винапи фунция меняла тип доступа на части памяти (xoчy ReadWriteExecutable ![]() ![]() |
|
Создано: 15 мая 2005 16:22 · Личное сообщение · #5 arnix пишет: а я только если сам он не находит дык он частенько криво находит... пока проверишь не скосячил ли он быстрее сразу вписать... arnix пишет: есть ли другие соображения отчего это? если вся проблема только в " RAW address" то попробуй в опциях поставить "CreateNewIAT", иногда помогает на кривых файлах. arnix пишет: не подскажите какя винапи фунция меняла тип доступа на части памяти VirtualProtect ? ![]() ![]() |
|
Создано: 15 мая 2005 16:29 · Личное сообщение · #6 |
|
Создано: 21 января 2006 00:22 · Личное сообщение · #7 arnix пишет: гружу ImpRec, чтоб восстановить таблицу, если ОЕР писать 001B7980, говорит не в пространстве модуля естественно, так как он принимает ImageBase как 00400000.. если ОЕР писать 00557980, говорит что не может таблицу найти... недавно снимал Armadillo с некой DLL -- проблема была та же самая. в процессе исследования выяснилось, что это РЕАЛЬНАЯ БАГА ImpREC'а! ![]() ![]() лечится эта бякость так: после выбора DLL и перед нажатием на OK ставится BP на ReadFile и после 3-го(!) останова в памяти (адрес буфера будет в EDX) правится ImageBase PE заголовка на требуемый offset. ![]() всем: может кто знает держателя исходников этой тулзы? было бы неплохо пофиксить данную багу... ![]() ![]() |
|
Создано: 21 января 2006 06:01 · Личное сообщение · #8 |
|
Создано: 21 января 2006 12:53 · Личное сообщение · #9 |
|
Создано: 21 января 2006 12:58 · Поправил: stalker · Личное сообщение · #10 |
|
Создано: 21 января 2006 14:43 · Личное сообщение · #11 |
|
Создано: 21 января 2006 23:54 · Личное сообщение · #12 |
|
Создано: 02 ноября 2006 10:59 · Личное сообщение · #13 поднимаю тему чтоб не плодить новую --- исследую программу в которой присутствует несколько секций кода. при выставлении на них галок в окошке: /Advanced Options -> /Select Code Section(s) импорт по идее должен восстанавливаться во всех отмеченных ... но это происходит только в последне выделенной секции! ![]() может быть кто сталкивался с подобным поведение ImpREC'а? это его настраиваемая фича (или все же бага) и как ее можно победить? ![]() |
|
Создано: 02 ноября 2006 11:35 · Личное сообщение · #14 |
|
Создано: 02 ноября 2006 11:49 · Личное сообщение · #15 Mario555 пишет: а зачем это надо? ну на сколько я смог разобраться -- из данного окошка можно дампить программу, предварительно указав, какие именно секции содержат исполняемый код. а потом на этом самом дампе делать восстановление IAT. более того (как удалось выяснить опытным путем) -- если выставить галочки на нескольких секциях, то именно в них ImpREC и пытается править переходники (ссылки) на IAT. основная фигня заключается в том, что он почему-то пока отказывается править их во всех выделенных секциях, а производит коррекцию только в "верхней" (расположенной выше по памяти) ... ![]() |
|
Создано: 02 ноября 2006 12:04 · Личное сообщение · #16 тоесть это ради возможности использовать "CreateNewIAT" ? Задача получается нетривиальной =) обычно и "CreateNewIAT" то редко используют, а тут ещё и с какой-то кастомной опцией чтоб он правил переходники в других секциях... я бы не стал так доверять опции "CreateNewIAT", она ведь и накосячить может... вообще по твоему описанию похоже что действительно бага импрека, но о ней наверно не знали ибо никому не надо было %) ![]() |
|
Создано: 02 ноября 2006 12:13 · Личное сообщение · #17 Mario555 пишет: тоесть это ради возможности использовать "CreateNewIAT"? типа того ![]() ![]() Mario555 пишет: о ней наверно не знали ибо никому не надо было похоже, что именно так ... мне она самому-то первый раз за "много времени" потребовалась, а тут такой косяк ![]() ![]() |
![]() |
eXeL@B —› Основной форум —› Странный DLL... (Aspr) |