Отгадка

В комментариях к загадке ответ был дан почти сразу. Действительно, обработчик отложенной загрузки DLL попытается загрузить «version.dll» по имени, а не по полному пути. В результате загрузчик будет искать библиотеку, пользуясь правилами по умолчанию. Номер два в этом списке поиск DLL в system32, что при отключенном перенаправлении файловой системы, равноценно попытке загрузить 64-х битную DLL в 32-х битный процесс. Бум.

Read On →

Загадка

Вот эта программа печатает номер версии указанного пользователем модуля, который она берет из поля “FileVersion” ресурса VS_VERSION_INFO этого модуля. Имя модуля передается как первый параметр командной строки. Для работы с VS_VERSION_INFO используется стандартная библиотека version.dll.

(далее идет много кода)

Read On →

За последние две-три недели узнал много нового...

За последние две-три недели узнал много нового про архитектуру amd64. Во-первых, я наткнулся сначала на документ, а затем на аналогичный раздел в MSDN, где толково описаны не только соглашения о вызовах (этого добра везде навалом), но и дано детальное описание того, как должен выглядеть стек функции, как происходит раскрутка стека, что такое и зачем нужны пролог и эпилог функции. Полезный документ, особенно если нужно разобраться как работает stack unwinder.

Read On →

Process Monitor научился трассировать 32-х битный стек на x64

Я как-то привык, что Process Monitor не умеет показывать 32-х битный стек события, которое произошло в 32-х разрядном процессе, выполняющемся под Wow64. Вместо этого он показывал только 64-х битный стек, что было абсолютно бесполезно, так как там по определению всегда светится wow64.dll сотоварищи. Однако после подсказки на Sysinternals Forums выяснилось, что начиная с Vista SP1 это уже работает.

Read On →

Интимный, можно сказать, вопрос

Я вот тут периодически читаю всякие ругательные статьи про Vista, и про то, как из нее можно выпилить конфетку, если отключить с десяток служб и, самое главное, если отключить ненавистный UAC. Тот самый, который User Account Control: Скажите, это я один такой извращенец, что я его не выключаю или это только я один не под локальным администратором работаю? Примечание: на моей рабочей станции я вынужден работать под учетной записью администратора и там UAC все-таки выключен. Read On →

Как Process Explorer подменяет Task Manager

А знаете, как Process Explorer подменяет собой стандартный Task Manager?

Process Explorer: Replace Task Manager.

Read On →

Признаки чокнутой теории

Астрофорум и, в частности, раздел «Горизонты науки о Вселенной» - одно из тех мест в интернете, где походит фронт непримиримой борьбы между приверженцами альтернативной физики и сторонниками классического её варианта. Спор идёт про отдельные аспекты и всю теорию относительности целиком, про различные теории гравитации, про происхождение Вселенной и всё такое прочее. Особую прелесть всему этому придаёт то, что не смотря на вменяемость большинства участников, среди них попадаются совершенно безбашенные деятели, выдвигающие самые невероятные теории.

Read On →

Dinosource

Просто наблюдение: если код .DLL, вылетающей с ошибкой доступа (Access Violation), находится в каталоге с именем «Dinosource», то его проще исправить самому, чем найти владельца этого кода.

5 инструментов

Моя очередь рассказывать про 5 инструментов, без которых я не могу работать продуктивно. Эстафетную палочку мне передали сразу двое участников: сначала Елена Сагалаева, затем Сергей Розовик. Получается, что у меня теперь ДВЕ эстафетные палочки. :-) Придется отработать вдвойне.

Debugging Tools for Windows: windbg.exe, cdb.exe, kd.exe, remote.exe, gflags.exe и так далее. Несмотря на то, что интерфейс WinDbg ужасен, а все остальные утилиты работают только в командной строке, нет лучшего отладчика для Windows.

Read On →

Недокументированные функции; Загрузка 32-х битных DLL в 64-х битный процесс

Вопрос:

Скажите, а невозможность загрузки в 64bit-процесс 32bit DLL - фатальна, или же возможны какие-то хаки, недокументированные обходные пути?

Отвечаю здесь, так как ответ получился слушком длинным.

Во-первых, про любые недокументированные возможности меня спрашивать бесполезно. Даже если такая возможность существует, я всё равно о ней не расскажу. Этому есть несколько причин, включая очевидные вещи вроде NDA, законе об авторском праве и т.д. Еще одна причина, почему я не горю желанием это делать, - это то, что раскрывая детали реализации того или иного компонента, я тем самым лишаю этот компонент возможности развиваться и улучшатся в следующих версиях.

Read On →