Сейчас на форуме: bartolomeo, tyns777 (+6 невидимых)

 eXeL@B —› Программирование —› ExcludeFromKnownDlls на 64битах
Посл.ответ Сообщение

Ранг: 65.3 (постоянный), 10thx
Активность: 0.020
Статус: Участник

Создано: 02 марта 2011 04:50
· Личное сообщение · #1

Уважаемые форумчане, подскажите, пожалуйста, есть ли способ исключить либу из KnownDlls под 64битной системой?
HKLM\System\CurrentControlSet\Control\Session Manager хранит, как я понимаю, 32битные исключения, в то же время, в ключе HKLM\System\CurrentControlSet\Control\Session Manager\KnownDlls лежат пути и к 32 и к 64 битам.

И еще, скажите, нельзя ли студию заставить не генерировать преамбулу функций, экспортируемых DLL? А-ля __declspec(naked) для 64 бит, чтобы можно было функцию джампом заменить.

Заранее спасибо!



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

Создано: 02 марта 2011 07:32
· Личное сообщение · #2

tomac
На x32 есть ключ "ExcludeFromKnownDlls". Как на x64 хз.




Ранг: 1131.7 (!!!!), 447thx
Активность: 0.670.2
Статус: Участник

Создано: 02 марта 2011 12:59
· Личное сообщение · #3

Clerk пишет:
Как на x64 хз.


так же



Ранг: 65.3 (постоянный), 10thx
Активность: 0.020
Статус: Участник

Создано: 02 марта 2011 13:16
· Личное сообщение · #4

Clerk
На 32х битах знаю, см. название топика.
Gideon Vi
А поподробнее? Добавление ws2_32.dll в значение ExcludeFromKnownDlls не привело к требуемому результату. пытался подменить либу для интернет эксплорера, положил ее к нему в папку, но он ее проигнорировал. Или винда игнорирует 32хбитные DLL для 64хбитных процессов? Вообще, я полагал, что увижу ошибку, что используется библиотека неподходящей разрядности (подкладывание пустого файла к 32хбитному процессу приводит к его падениям)




Ранг: 2014.5 (!!!!), 1278thx
Активность: 1.340.25
Статус: Модератор
retired

Создано: 02 марта 2011 13:24
· Личное сообщение · #5

Разрядность должна совпадать, при несовпадении он просто не загрузит длл.
Что касается реестра, в х64 для эмуляции х86 используется перенаправление реестра, почитай и про это тоже.




Ранг: 1131.7 (!!!!), 447thx
Активность: 0.670.2
Статус: Участник

Создано: 02 марта 2011 14:05
· Личное сообщение · #6

tomac пишет:
Или винда игнорирует 32хбитные DLL для 64хбитных процессов?


разумеется

tomac пишет:
Вообще, я полагал, что увижу ошибку, что используется библиотека неподходящей разрядности


не предусмотрено



Ранг: 65.3 (постоянный), 10thx
Активность: 0.020
Статус: Участник

Создано: 02 марта 2011 17:31
· Личное сообщение · #7

Ясно, пошел пробовать.
Спасибо!
//Один вопрос все еще в силе - можно как-то отучить студию от честного создания функций?



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

Создано: 02 марта 2011 21:53 · Поправил: gloomdemon
· Личное сообщение · #8

__declspec(naked) для x64 несуществует, можно только сделать отдельный asm файл, включить его в проект,
в нем сделать экспортируемую функцию и в настройках проекта указать что файл отдельно компилять
таким-то ассемблерным компилером для x64 =) Всякие __fastcall на x64 тоже не работают.


 eXeL@B —› Программирование —› ExcludeFromKnownDlls на 64битах
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати