Apr 1, 2008 · Comments
ПрограммированиеWow64
В комментариях к загадке ответ был дан почти сразу. Действительно, обработчик отложенной загрузки DLL попытается загрузить «version.dll» по имени, а не по полному пути. В результате загрузчик будет искать библиотеку, пользуясь правилами по умолчанию. Номер два в этом списке поиск DLL в system32, что при отключенном перенаправлении файловой системы, равноценно попытке загрузить 64-х битную DLL в 32-х битный процесс. Бум.
Read On →
Mar 30, 2008 · Comments
ПрограммированиеWow64
Вот эта программа печатает номер версии указанного пользователем модуля, который она берет из поля “FileVersion” ресурса VS_VERSION_INFO этого модуля. Имя модуля передается как первый параметр командной строки. Для работы с VS_VERSION_INFO используется стандартная библиотека version.dll.
(далее идет много кода)
Read On →
Mar 27, 2008 · Comments
amd64ОтладкаWindowsWindows Kernel
За последние две-три недели узнал много нового про архитектуру amd64. Во-первых, я наткнулся сначала на документ, а затем на аналогичный раздел в MSDN, где толково описаны не только соглашения о вызовах (этого добра везде навалом), но и дано детальное описание того, как должен выглядеть стек функции, как происходит раскрутка стека, что такое и зачем нужны пролог и эпилог функции. Полезный документ, особенно если нужно разобраться как работает stack unwinder.
Read On →
Mar 23, 2008 · Comments
ИнструментыОтладкаProcess MonitorSysinternals
Я как-то привык, что Process Monitor не умеет показывать 32-х битный стек события, которое произошло в 32-х разрядном процессе, выполняющемся под Wow64. Вместо этого он показывал только 64-х битный стек, что было абсолютно бесполезно, так как там по определению всегда светится wow64.dll сотоварищи. Однако после подсказки на Sysinternals Forums выяснилось, что начиная с Vista SP1 это уже работает.
Read On →
Mar 13, 2008 · Comments
UACWindows
Я вот тут периодически читаю всякие ругательные статьи про Vista, и про то, как из нее можно выпилить конфетку, если отключить с десяток служб и, самое главное, если отключить ненавистный UAC. Тот самый, который User Account Control:
Скажите, это я один такой извращенец, что я его не выключаю или это только я один не под локальным администратором работаю?
Примечание: на моей рабочей станции я вынужден работать под учетной записью администратора и там UAC все-таки выключен.
Read On →
Mar 9, 2008 · Comments
КосмосСтранное
Астрофорум и, в частности, раздел «Горизонты науки о Вселенной» - одно из тех мест в интернете, где походит фронт непримиримой борьбы между приверженцами альтернативной физики и сторонниками классического её варианта. Спор идёт про отдельные аспекты и всю теорию относительности целиком, про различные теории гравитации, про происхождение Вселенной и всё такое прочее. Особую прелесть всему этому придаёт то, что не смотря на вменяемость большинства участников, среди них попадаются совершенно безбашенные деятели, выдвигающие самые невероятные теории.
Read On →
Mar 5, 2008 · Comments
ПрограммированиеСтранное
Просто наблюдение: если код .DLL, вылетающей с ошибкой доступа (Access Violation), находится в каталоге с именем «Dinosource», то его проще исправить самому, чем найти владельца этого кода.
Mar 1, 2008 · Comments
Инструменты
Моя очередь рассказывать про 5 инструментов, без которых я не могу работать продуктивно. Эстафетную палочку мне передали сразу двое участников: сначала Елена Сагалаева, затем Сергей Розовик. Получается, что у меня теперь ДВЕ эстафетные палочки. :-) Придется отработать вдвойне.
Debugging Tools for Windows: windbg.exe, cdb.exe, kd.exe, remote.exe, gflags.exe и так далее. Несмотря на то, что интерфейс WinDbg ужасен, а все остальные утилиты работают только в командной строке, нет лучшего отладчика для Windows.
Read On →
Feb 28, 2008 · Comments
Недокументированные функцииWin32WindowsWow64
Вопрос:
Скажите, а невозможность загрузки в 64bit-процесс 32bit DLL - фатальна, или же возможны какие-то хаки, недокументированные обходные пути?
Отвечаю здесь, так как ответ получился слушком длинным.
Во-первых, про любые недокументированные возможности меня спрашивать бесполезно. Даже если такая возможность существует, я всё равно о ней не расскажу. Этому есть несколько причин, включая очевидные вещи вроде NDA, законе об авторском праве и т.д. Еще одна причина, почему я не горю желанием это делать, - это то, что раскрывая детали реализации того или иного компонента, я тем самым лишаю этот компонент возможности развиваться и улучшатся в следующих версиях.
Read On →