![]() |
eXeL@B —› Основной форум —› Virtual DLL от Аспра 2.3... |
Посл.ответ | Сообщение |
|
Создано: 30 мая 2007 14:39 · Личное сообщение · #1 Беда такого плана.... Распаковал плагин от фотошопа, пакован аспром 2.3 ... Вот.. восстановил все... инициализируется... загружается в фотошоп... НО... на входе в экспортируемую функцию покриптован большой участок кода и восстановлению не подлежит, т.к. на этом месте стоит call в виртуальную длл-ку аспра. Идея была такова - сдампить длл и привести ее в рабочее состояние, а затем просто загрузить ее обычным LoadLibrary и юзать... Так вот.... вроде длл привел в рабочее состояние, т.е. если я загружаю распакованый плагин в оллю и вызываю ее из кода плагина... все вроде бы ок.... А вот когда я пытаюсь проделать из под фотошопа, т.е. запускаю фотошоп под оллей и ловлю момент загрузки плагина в память, потом ставлю железный бряк на экспортируемую функу... в плагине и далее пытаюсь с помощью LoadLibrary загрузить эту длл.... так LoadLibrary возвращает 0 в еах, т.е. нет типа свободной памяти.... и при этом происходит исключение записи по смещению в длл-ке 000000Е8, т.е. в null pointer assignment... Релоки и импорт в этой дллке чистые и целые... DllMian на ОЕР-е есть... Что за фигня? Уже голову всю поломал... ![]() Спасибо заранее.... ----- aLL rIGHTS rEVERSED! ![]() |
|
Создано: 30 мая 2007 14:50 · Поправил: SLV · Личное сообщение · #2 |
|
Создано: 30 мая 2007 15:17 · Личное сообщение · #3 SLV Там они в нетронутом виде лежат, смещение я знаю, размер посмотрел в отладчике.... Я релоки проверял, все чисто.... У длл имиджбаза 00ЕВ0000 ... я в олле по этому адресу грузил другую длл ... так LoadLibrary удачно загрузила мою длл-ку по адресу 00EC0000 ... проверил работу релоков, все ок... импорт на месте.... А вот под фотошопом нифига! ![]() Я уже понял что в дллке глюк, но где... никак не найду..... ----- aLL rIGHTS rEVERSED! ![]() |
|
Создано: 01 июня 2007 02:42 · Личное сообщение · #4 |
|
Создано: 01 июня 2007 03:23 · Личное сообщение · #5 DrGolova пишет: Глянька на мутексы и enironment variables - мобыть плагин детектит наличие фотожопа, а то и вобще пытается поймать его интерфесы в dllmain() Все дело там в релоках Не фига шоп ни проги использующие его плуги не проверяют и не детектят ![]() ![]() ![]() |
|
Создано: 01 июня 2007 06:02 · Личное сообщение · #6 |
|
Создано: 01 июня 2007 08:12 · Личное сообщение · #7 PE_Kill пишет: ты не прав в аспре и аспаке релоки лежат нетронутыми их надо только найти, потом поправить хедэр, но после этого плуг всё равно не грузится Там нет ни одной причины не грузить ![]() ![]() |
|
Создано: 01 июня 2007 13:37 · Личное сообщение · #8 PE_Kill Все грузиться... ![]() Решил проблему более кардинально .... нашел более раннюю версию плагина и содрал код покриптованый который был, все приросло идеально, даже релоки попали в точку... поправил калы и пуши... и все заработало.... С другой стороны вопрос о виртуальной длл так и остался открытым, точнее вопрос ее юзанья в анпакнутых прогах... ----- aLL rIGHTS rEVERSED! ![]() |
![]() |
eXeL@B —› Основной форум —› Virtual DLL от Аспра 2.3... |