Alexey's profileTr-Tr-MityaPhotosBlogListsMore ![]() | Help |
Tr-Tr-MityaBecause... 6/14/2009 Непонятки с Live MessengerКоли тут так любят WLM может кто-нибудь сказать как попасть в свой профиль/space из WLM?
В старых версиях это было (на тулбаре кнопочка была), сейчас нет. Или я просто не нашел? 5/24/2009 Сообщение "неправильный ключ" при работе с API Яндекс.КартДруг попросил помочь разобраться почему у него при работе с API Яндекс.Карт время от времени выскакивает сообщение
--------------------------- Message from webpage --------------------------- неправильный ключ --------------------------- OK --------------------------- и вместо карты белый квадрат и куча ошибок в JS. Причем это только в IE. Стали смотреть и обнаружили, что когда в url есть русские буквы, то IE в referer, при вызове http://api-maps.yandex.ru/1.0/index.xml?key=, передаёт юникодные символы, а яндекс зачем-то смотрит не только домен, но и остальную часть referer'а и, видя юникод, отказывается работать.
Исправить очень просто: а) не использовать русские буквы в url; б)передавать русские буквы в URL encoded виде; c) придумать ещё что-нибудь. 5/17/2009 Я хренею от Windows Live MessengerПод семеркой поставил subj и смотрю что-то он в трей не хочет убираться.
Я сначала не понял, думал где галочка какая есть, ан нет, просто MS решила что человек не обязательно запинит это убожество, а так месенджер будет висеть как-будто запиненый.
В итоге помог режим совместимости с вистой.
Но это маразм какой-то.
Я вообще не понимаю почему не разгонят команду лайва куда подальше. Их поделки мало того, что неюзабельные, так ещё и глючат безбожно.
PS. Всё деградирует. Аська была нормальной пару лет назад (клиент квип), сейчас постоянно глючит. Live никогда нормальным не был, но к 8-ке намечались какие-то подвижки по удобности, но в 9-ке всё испортили.
9/20/2008 Windows Live Messenger 2009 Beta на Windows Server 2008 (2003)Недавно стала доступна бета версия Windows Live, но инстолятор, как обычно, для установки требует Windows XP или Windows Vista. degustator в комментарии подсказал где можно взять все компоненты для Windows Live Wave 3 Beta в виде cab файлов внутри которых msi файл готовый к установке.
Tags: Windows Live Beta, Windows Server 2008. 7/12/2008 *.sln.cache файлы и флаги MSBUILDКто хоть иногда собирает файлы solution (.sln) через msbuild v3.5 наверняка замечал появляющиеся рядом файлы solution_name.sln.cache. Лично мне они мешали, но я смирился с ними как с неизбежным злом. Стало интересно, какие ещё переменные среды использует MSBUILD, получился такой вот список (скорее всего не полный):
Tags: MSBUILD. 6/24/2008 P/Invoke Interop AssistantСовсем короткий пост :)
Выложили на CodePlex замечательную утилитку P/Invoke Interop Assistant
Описание утилиты можо найти в январьском номере MSDN Magazine http://msdn.microsoft.com/ru-ru/magazine/cc164193.aspx 6/21/2008 Немного новостейДавненько не писал :) А тем временем вышло сразу несколько продуктов, которые меня интересуют. Наконец-то зарелизили Subversion 1.5. Самые главные фичи для меня – это Merge tracking (отслеживание слияний) и Relative URLs (относительные пути в externals). Бинарники под винду будут только 24-го, но кто не хочет ждать – может и сам скомпилить :). Смотреть и брать тут. Черепашка (TortoiseSVN) под новый сервер с опозданием, но тоже скоро выйдет, пока доступны релиз кандидаты. Брать тут. В мае Microsoft выпустила 4-ую версию Enterprise Library, а также (как в составе EL, так и отдельно) Unity Application Block – легковесную реализацию DI контейнера. Если будет возможность – постараюсь пару постов о Unity написать. В июне вышла VSTS 2008 Database Edition GDR June CTP. По описанию очень вкусный CTP, попробовать ещё не успел, мешает только до сих пор не установленный SP1 beta для VS 2008. Изменений очень много, приводить их тут не буду, дам ссылку на блог. В июне же вышла бета версия Microsoft Network Monitor 3.2. Пишут, что увеличена скорость, но самое главное теперь видно какой трафик к какому процессу относится и теперь гораздо удобней выбирать декодирование пакета (раньше выбор был через меню в котором очень много пунктов, теперь же сделали в виде отдельного окна с деревом). Посмотреть и скачать можно тут.
Также очень порадовал Владимир Решетников набором своих этюдов: Ну и напоследок не могу не отметить июньский номер MSDN Magazine, не так часто бывают такие удачные номера. 5/8/2008 WinDBG 6.9.3.113 ReleasedОбновился WinDBG до версии 6.9.3.113 This release of Debugging Tools for Windows contains many bug fixes and new Here's a list of the key changes in WinDbg 6.9: * Fix kd to function properly when debugging 256 processor machine. Tags: WinDBG. Компиляция SSCLI 2.0 при помощи Visual Studio 2008Jeremy Kuhne в своём блоге показал как поменять SSCLI 2.0 для успешной компиляции с помощью VS 2008.
4/25/2008 March and April MSDN Magazine HTML Help Files
Вышел апрельский номер MSDN Magazine. Но по каким-то причинам на странице " MSDN Magazine HTML Help Files" ни апрельский, ни мартовский номер не доступен. Но если составить link руками, то оказывается, что файлы там лежат: UPD:
Tags: MSDN Magazine. 4/20/2008 [WindDbg] Спаси сапёра – 3 или 0x29 байт, которые потрясли WinmineВ прошлый раз меня немного покритиковали за краткость, в этот раз попробую подробнее рассказывать. Итак, продолжим помогать абстрактному сапёру бороться с минами. В этот раз я покажу, как не взорваться, даже если попали в мину. Как обычно запускаем winmine.exe (из Windows XP) и отладчик WinDbg. Из отладчика аттачимся к процессу winmine.exe, для этого жмём F6 (или меню File-Attach to a Process...). Если у вас не настроены отладочные символы, то при подключении к процессу winmine.exe в командном окне появится текст: Т.к. нам нужны отладочные символы, то нужно задать путь к ним. Это можно сделать с помощью команды .sympath (обязательно с точкой вначале, т.к. это мета-команда отладчика) Дальше нам нужно загрузить отладочные символы к себе в кеш (в данном случае в папку c:\symbols). Следующая команда загружает файл с отладочной информацией только для winmine.exe (что позволяет сэкономить трафик): Проверить, что отладочные символы загружены можно с помощью команды lm: Просмотреть отладочные символы можно с помощью команды x: В списке функций есть функция GameOver, что красноречиво говорит о её назначении. Давайте поставим точку останова на эту функцию и попробуем проиграть или выиграть. Точку останова (break point) можно задать с помощью команды bp: Посмотреть список точек останова можно с помощью команды bl (breakpoint list), а удалить с помощью команды bc (breakpoint clear) Дальше жмём F5 или вводим команду g для продолжения выполнения программы и начинаем играть. В первый раз я проиграю, а во второй раз выиграю. И посмотрю изменения в параметрах функции (если они конечно есть). После того как я проиграл, сработала точка останова и в командном окне появляется следующая информация: Уже видя эту команду можно решить, что мы в нужном месте, т.к. этой командой останавливается таймер, а таймер, скорее всего, два раза останавливать не будет. Следовательно, этот код выполняется как при проигрыше, так и при выигрыше и уже здесь решается, что показать на экране. Давайте это проверим, для этого посмотрим параметры переданные через стек. Для просмотра памяти существует несколько команд d*. Нам сейчас нужна команда dd (dump double-word values). dd esp – покажет нам адрес возврата и переданные в функцию параметры: 010035b0 в данном случае является адресом возврата, а следующее за ним занчение 00000000 – переданным параметром. Теперь снова запущу программу на выполнение (F5) и попробую выиграть. Снова сработала точка остановки, и я ввожу команду просмотра стека dd esp Мы видим, что адрес возврата (010035b0) тот же самый, а вот параметр изменился 00000001 вместо 00000000. Т.е. скорее всего это и есть параметр отвечающий за выигрыш/проигрыш. Можно это проверить, поменяем этот параметр на 0, запустим на выполнение и посмотрим что произойдёт: Проигрыш! Т.е. действительно от этого параметра всё и зависит. Следующие шаги наши будут такими: нужно сравнить найденный параметр с 0 и, если это так, то просто выйти из функции GameOver при этом сохранив целостность стека. В данном случае мы воспользуемся обычной практикой перехвата функций. Т.е. мы сначала напишем свою функцию, при вызове GameOver передадим управление на неё, а затем она вернёт (или не вернёт) управление в функцию GameOver. Прежде чем писать свою функцию нужно найти в приложении немного свободной памяти у которой атрибут защиты позволяет выполнять код. Проще всего не искать незадействованную память, а просто выделить память с уже необходимыми нам атрибутами защиты (PAGE_EXECUTE_READWRITE). Для выделения памяти в WinDbg есть команда .dvalloc (и команда .dvfree для освобождения памяти). Т.к. в память выделяется блоками по 4 КБ, то нет смысла выделять меньше, хотя нам конечно не нужно так много памяти. Выделяем память и запоминаем адрес: Если вдруг у вас в данный момент выполняется winmine то его в любой момент можно остановить с помощью клавиш Ctrl+Break (или меню Debug-Break). Итак, у нас есть 4 КБ памяти начиная с адреса 0x00910000 (у вас этот адрес будет другим). При проигрыше было бы неплохо показать сапёру о том, что он проиграл, но, благодаря нашим усилиям, выжил. Для этого покажем MessageBox с сообщением о том, что тут мина, а прежде чем показывать сообщение нам нужно в стек закинуть адрес нашей строки с сообщением. Приступим, сначала разместим сроку в Unicode формате, для этого воспользуемся командой eu Проверим: После этого, немного отступив, пишем код, т.к. в нашем распоряжении целых 4 килобайта можно смело отступить от строки байт так на 256 (0x100). Код следующий: А в начале функции GameOver нам нужно будет написать: Есть пара нюансов: т.к. мы перезаписываем код оригинальной функции GameOver, то нам нужно будет повторить его в своей функции, что и делается командой Запись ассемблерных инструкций производится командой a (assemble), дизассемблирование командой u (unassemble). Приступим (00910000 нужно заменить на ваш адрес): Для выхода из режима ввода ассемблерный инструкций нажмите ещё раз Enter. Теперь меняем функцию GameOver: Нажмите Enter ещё раз, для выхода из режима редактирования. Теперь очистите все точки останова с помощью команды bc * и нажмите F5 для продолжения выполнения программы и попробуйте проиграть :) В следующий раз покажу как получить Infinity Zoom в mspaint.
4/17/2008 [WinDbg] Спаси сапера – 2Продолжим помогать сапёру в его нелегкой сапёрной жизни. У данного способа есть небольшой недостаток, можно промазать мимо пустой клетки и попасть в мину :), в следующий раз постараемся и этот недочёт исправить.
4/15/2008 А ваша сеть защищена?Небезызвестная компания Secunia предлагает протестировать свою сеть на безопасность, а также протестить бету 1 новой версии сетевого софтверного инспектора (Secunia Network Software Inspector 2.0). Предложение ограничено по сроку: с 11-го по 30-ое апреля. PS. На всякий случай уточню я к Secunia никакого отношения не имею (мопед не мой...), я за безопасность радею :)
Tags: Secunia, Software Inspector. 4/13/2008 Как с помощью netsh задать второй DNS серверТ.к. минут 10 потратил на поиск ответа на вопрос, решил здесь написать :) PS. Для netsh жутко не хватает CISCO like консоли. 4/7/2008 "Играем" с помощью WinDBGНедавно читал доклад про Windows Debugging Tools, а в качестве некоторых примеров показывал отладку Windows игр (сапер, freecell). Пример 1, бесконечное время у сапера.
Остальные примеры опишу позже. PS. Презентацию и материалы к докладу можно найти на сайте http://mgupi.ineta.ru/ Tags: WinDBG. 4/6/2008 Hyper-V в Windows Vista x86 :)При отладке ядра Windows Vista x86 SP1 наткнулся на обращения к функциям работающими с Hyper-V. Правда, скорее всего, нигде нет Hyper-V скомпилированного под 32-ух битную платформу. Tags: Windows Vista, Hyper-V. 2/28/2008 Немного Download линков (Windows Server 2008, WSUS 3.0 SP1, FTP for IIS 7)
2/25/2008 Sysnative или как достучаться до system32Как известно в 64-ёх битных версиях Windows при попытке 32-ух битного приложения обратиться к %systemroot%\system32 будет произведен редирект в папку SysWoW64. Несмотря на то, что редирект не работает для папки %systemroot%\system32\drivers\etc (и ещё ряда папок подробности тут) 32-ух разрядные приложения не видят папку etc в папке drivers, т.к. она не перечисляется с помощью функций Find…File. В результате 32-ух битные файловые менеджеры могут попасть в папку etc только если прямо указать эту папку. Например, cd %systemroot%\system32\drivers\etc. Но иногда из 32-ух битных приложений нужно попасть в саму папку system32, а как не указывай, система всё равно будет редиректить в SysWoW64. Для обхода этой проблемы Microsoft выпустила специальное обновление для Windows Server 2003 x64. После установки этого обновления для 32-ух разрядных приложений становится доступна виртуальная папка %systemroot%\sysnative (правда она тоже не видна через функции Find…File).
2/15/2008 Windows Server 2008 Component PostersНаткнулся на два замечательных постера показывающих основные фичи Windows Server 2008. Брать тут.
Tags: Windows Server 2008. 2/14/2008 Доступ к административным расшаркам (administrative share) на Windows VistaЕсли у вас в Windows Vista ещё не отключен UAC то при попытке подключения к административным расшаркам (C$, D$, etc) вы получите сообщение Access Denied даже если вы подключаетесь с правами локального администратора. Проблема в том, что при удалённых подключениях используется Remote UAC, а в нём нет понятия elevation (может и есть, но как задействовать – неизвестно). Соответственно Vista ограничивает вас в админских правах. Эта же проблема возникает при попытке удалённо настроить сервер печати на базе Vista и даже при подключении по Telnet (хотя кто им сейчас пользуется). Выхода два: 1) топать к компу и делать всё локально; 2) в реестре найти ветку PS. В домене, скорее всего, будет работать и с включенным Remote UAC – не проверял.
Установка Windows Live 2008 на Windows Server 2008 (2003)Скачать по этим ссылкам файлы: Windows Live Mail Version 2008 (RUS) Windows Live Messenger Version 2008 (RUS) Windows Live Photo Gallery Version 2008 (RUS) Windows Live Writer Version 2008 (RUS) После этого берем любой редактор ресурсов (я использовал Visual Studio 2008), открываем скачанный файл и находим ресурсы типа BOOTSTRAPPAYLOAD, там видим msi файл. Экспортируем его из exe файла и запускаем. Так же можно поискать в файлах значение D0CF11E0 – это стандартный заголовок compound файла, чем является msi файл (как, кстати, и word документ) – и удалив всё, что предшествует этому «магическому числу» сохранить файл как msi.
1/29/2008 Как создать самоподписанные (self-signed) SSL сертификатыНадоело каждый раз внимательно вычитывать параметры makecert.exe, поэтому решил записать в блог :) Первой командой создаем "корневой" сертификат: MakeCert.exe -ss root -n "CN=Issuer's common name" -eku 1.3.6.1.5.5.7.3.1 -r Второй командой - сертификат подписанный корневым: MakeCert.exe -pe -ss my -n "CN=test.mysite.ru" -sky exchange -in "Issuer's common name" -is root -eku 1.3.6.1.5.5.7.3.1 Корневой сертификат будет создан в "Trusted root certification authorities", а второй сертификат - в персональном хранилище. Для SSL требуется сертификат с целью (purpose) "Server Authentication" (OID=1.3.6.1.5.5.7.3.1), если требуется другая цель, то её можно задать через параметр eku. Tip: Если вам нужно сделать несколько сертификатов для нескольких поддоменов, то можно использовать wildcards в CN, например: CN=*.mysite.ru PS. makecert.exe распространяется вместе с Windows SDK (бывшая Platform SDK), которую можно бесплатно скачать с сайта Microsoft. makecert.exe находится в архиве PSDK-SDK_Core_BIN-x86.0.cab. Так же этот архив находится в архиве PSDK-FULL.5.cab (Windows Server 2003 R2 Platform SDK Full)
1/17/2008 .NET Reference Source is now publically availableНочью пришло письмо от Shawn Burke с благодарностью за участие в тестировании .NET Reference Source project, а самое главное с информацией о том, что исходники .Net для отладки доступны в публичном доступе. Прежде чем использовать эту возможность нужно поставить обновление для VS 2008, т.к. без него переход с одной строки исходного кода на другую во время отладки происходит очееень медлееееенно, плюс у меня были пару раз проблемы с постоянным отображением EULA диалога. Хотфикс доступен (нужен LiveId) на сайте connect.microsoft.com. После установки хотфикса запускаем VS 2008 и в настройках отладчика (Tools->Options->Debugging->General) снимаем галочку "Enable Just My Code" и устанавливаем " Enable Source Server Support". " Enable Just My Code", как следует из названия, позволяет отлаживать только ваш код, поэтому её нужно убрать, а " Enable Source Server Support" позволяет использовать сервер с исходными кодами, без неё будут скачиваться только отладочные символы. Затем нужно перейти на вкладку Symbols и в поле "Symbol file locations" указать http://referencesource.microsoft.com/symbols, также желательно указать папку куда кэшировать отладочные символы и исходники. И поставьте галочку "Search the above locations only when symbols are loaded manually", что позволяет сэкономить трафик интернета при отладке, т.к. не будут скачиваться все отладочные символы, а только для тех модулей, для которых вы выберете "Load Symbols". Если трафика не жалко, то можно не ставить эту опцию, но тогда запуск отладчика будет происходить немного дольше, т.к. будут подгружаться все найденные отладочные символы для загружаемых модулей. В целом это все настройки. Tip: исходники скачиваются в папку "dir_to_cache\src", но после выгрузки VS эта папка пустая, т.е. все файлы исходного кода стираются. Дабы предотвратить удаление установите запрещающие права на удаления у этой папки для всех пользователей. Тогда VS не сможет стереть файлы исходного кода. Но за последствия я не отвечаю :)
Tags: Visual Studio, .NET Framework Source Code, Debuggig, .NET Reference Source project Public folders
|
|
|||
|
|