Вопрос:
32-х битный процесс запущен на 64-х битной системе. Почему для некоторых библиотек GetModuleFileName возвращает путь вида “%SystemRoot%\syswow64”, а для других - “%SystemRoot%\system32”, не смотря на то, что и первые, и вторые находятся в “%SystemRoot%\syswow64”?
Ответ:
Потому что загрузчик понятия не имеет о Wow64 и перенаправлении файловой системы в частности. Загрузчик просто сохраняет полное имя модуля во время загрузки и возвращает его копию в GetModuleFileName. Соответственно если библиотека была загружена как “%SystemRoot%\system32\foobar.dll”, то и GetModuleFileName вернёт эту строку.
Это же верно и для других Win32 функций.
Posted at 2:39 pm •
Хорошая статья: Особенности реализации командного процессора cmd.exe операционных систем WinNT. Напрочь отбивает всякое желание связываться с написанием скриптов для cmd.exe.
Posted at 4:26 pm •
На днях у одной из тестовых машин, занимающих жизненное пространство у меня в офисе, обнаружились проблемы с перегревом. Вернее сказать не у неё, а у машин из той же самой партии компьютеров. Под это дело организовали установку дополнительных кулеров на все подобные машины и, что б два раза не вставать, - обновление BIOS. Я, надо сказать, никаких проблем с перегревом не замечал, но мало ли. Ставят – чего ж отказываться.
(more…)
Posted at 9:43 pm •
Вот примерно так выглядит мой офис на сегодняшний день (снималось телефоном, качество – соответствующее):
Их там десять штук, если считать тот, что попал в кадр только частично.
Posted at 8:29 pm •
Вопрос из комментариев:
Не могли бы прокомментировать ответ “Lepsik” по порядкам в Microsoft (тред):
автор - Диез
1, 2. Естественно, полтора - это величина условная. Просто большая длина обычно требует более одного движения для полного обзора
3. Никто не мешает сделать методы того же класса, но часто удобнее и логичнее разнести код на уровни, т.е. в отдельные классы (а то и в отдельные библиотеки).
Вообще, все это есть у Фаулера
это просто у вас программы маленькие.
в больших компаниях Microsoft/IBM/SONY, …. таких правил нет. У нас есть методы с телом в сотню экранов. А файл с методом тела процесса больше мегобайта.
За весь Microsoft не скажу. Расскажу, что видел сам.
(more…)
Posted at 9:58 pm •
Я прошу прощение у читателей за долгое молчание. Оно связано с двумя вещами. Во-первых, вначале марта у меня случился неожиданный проект в новой для меня области, реализация которого отнимает много времени и закончить основную его часть нужно непременно до середины мая. А во-вторых, наше любимое украинское консульство в Сан-Франциско умудрилось потерять наши с женой паспорта как раз перед поездкой домой, чем основательно подпортило нам планы. Общение с консульством хотя и очень увлекательно, и крайне полезно для наращивания уникального жизненного опыта и толстой, нечувствительной к разным жизненным мелочам кожи, но при этом совершенно неконструктивно. Отдельные моменты достойны пера Кафки в своей нелогичности. Сравнивания происходящее сейчас с опытом обращения в другие консульства: норвежское в Киеве, румынское, израильское и американское в Копенгагене, немецкое в Сан-Франциско, прихожу к выводу, что наше консульство выглядит бледно.
В общем и целом всё это отнимает всё свободное время, и на блог практически ничего не остается. Надеюсь, что через некоторое время ситуация исправиться.
Posted at 10:42 pm •
Томас Пташек (Thomas Ptacek) анализирует нечеловеческий эксплоит Марка Доуда (Mark Dowd), использующий уязвимость в Flash.
Эксплоит использует целочисленное переполнение, возникающее из-за того, что Flash runtime использует знаковое число, прочитанное из SWF файла, как беззнаковый размер выделяемого блока памяти. В итоге Flash пытается выделить несколько гигабайт памяти, получает в ответ NULL, но не проверяет его, а пишет 32-х разрядное число по смещению от полученного нулевого указателя. Марк вычислил, что если смещение X превышает 0×80000000 и при этом X+4 делится без остатка на 12, то результирующий адрес получается валидным. Записываемое 32-х битное значение получается из исходного 16-ти разрядного числа вычитанием значения еще одной переменной. Иными словами, ни указатель, ни записываемое значение не контролируются хакером полностью.
Тем не менее…
(more…)
Posted at 10:08 pm •