Дебъгване на Windows
Posted on | January 27, 2010 | No Comments
Дебъгването не е съвсем тривиален процес. От друга страна за елементарни проблеми не са нужни сериозни познания по операционни системи, хардуер и т.н. Процесът се опростява, колкото може повече с излизането на нови версии на ОС и инструменти.
Ще започна от това какво представлява дебъгването накратко. Всъщност самото име говори достатъчно за значението на процеса, а именно – остраняване на бъгове (грешки). Възможни са два типа дебъгване – на потребителско ниво (user space) и на ниво ядро на операционната система (kernel space). Тук ще пиша накратко за дебъгване предимно на проблеми с драйвери (kernel space) и по-рядко библиотеки, които водят до нестабилна работа на системата (рестартиране, сини екрани, зависвания и др.).
Първата и най-важна стъпка при проблеми със стабилността на операционната система (в този случай Windows) е проверка на конфигурацията ?, за това, как се държи при такива проблеми. Това може да стане от Control Panel -> System ->Advanced System Settings -> Advanced -> Startup and Recovery ->Settings.

Интерисува ни полето System failure и най-вече как ще се записва информацията при възникване на критична грешка.

Възможностите и избора по подразбиране се различават при различните версии на Windows. Първата възможност е да не се записва никаква информация. Разбира се напредналият потребител никога не я използва.
Втората е Small memory dump (64 KB). При неин избор се записва най-необходимата информация за последващо дебъгване: съобщението за грешка, списък на драйверите, контекста, процеса и нишката. При настъпване на следваща грешка се записва друг файл. Форматът на името на файла е следният: Mini012610-01.dmp – 26 януари 2010 година, първа грешка. Файловете се записват в %SystemRoot%\Minidump. В повечето случаи това е C:\Windows\Minidump. Разбира се може да се промени, но не винаги е възможно в графичен режим и едва ли човек, способен да промени системни променливи или къде да се записва mini dump ще чете това, затова пропускам обясненията. Важно е да се отбележи, че за да се извърши операцията е нужно наличието на поне 2 MB pagefile на системния логически дял на твърдият диск.
Следващата възможност е Kernel memory dump. Записва се всичко на ниво kernel space, което е в оперативната памет. Паметта, заделена за потребителските програми не се записва. По подразбиране информацията се записва в %SystemRoot%\MEMORY.DMP. Както се вижда на изображението по-горе има възможност при следваща грешка да се презапише върху същия файл. Нужният минимум за pagefile в този случай варира, но в никакъв случай не е повече от 2 GB. Според мен това е най-подходящият избор в повечето ситуации.
Последната възможност е Complete memory dump. Записва се цялото съдържание на оперативната памет към момента на фаталната грешка. Файлът по подразбиране е същият, както при Kernel memory dump. Необходимият минимум на pagefile в този случай е обемът на RAM паметта плюс 1 MB. Логично, това е най-добрият избор при дебъгване на големи проблеми. Сравнително често е ненужен. Аз лично го избягвам, защото е доста бавен процес и в повечето случаи съдържа много излишна информация за нуждите ми.
Изброените настройки могат да се редактират директно в регистрите на Windows. Пътят до тях е: HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\CrashControl. Горните четири възможности отговарят на следните стойности:
CrashDumpEnabled REG_DWORD 0×0 –> None
CrashDumpEnabled REG_DWORD 0×1 –> Complete memory dump
CrashDumpEnabled REG_DWORD 0×2 –> Kernel memory dump
CrashDumpEnabled REG_DWORD 0×3 –> Small memory dump (64KB)
След като имаме нужната информация за дебъгване остана само да се сдобием със софтуер, с който се дебъгва. Пакетът се казва Debugging Tools for Windows и съдържа WinDbg, KD, CDB, и NTSD. Би трябвало да се сетите откъде да си го свалите, ако не – ползвайте “фирменият сайт на фирмата Google”. Нас ни интерисуват WinDbg и KD. WinDbg е графичен аналог на конзолният дебъгер – KD. Разлика във функционалността им няма. Въпрос на предпочитания е изборът между двата. Въпреки, че по принцип предпочитам конзолата по принцип, WinDbg последно време е моят избор.
След като изтеглите и инсталирате Debugging Tools for Windows стартирайте WinDbg. След което е нужна настройка на symbols. Може да стане от File ->Symbol File Path. Ще се появи прозорец, подобен на изображението долу. По принцип се въвежда локална кешираща директория, последвана от symbol сървъра на Microsoft. Аз ползвам C:\symbols за локално копие. Когато е нужно програмата търси първо там, а след това, ако се наложи сваля от сървъра. Ако решите да изтеглите пълен архив на символите можете да посочите само него. Обратното също е възможно. Може да посочите отдалеченият сървър без да записвате локални копия. Синтаксисът е следният: SRV*c:\symbols*http://msdl.microsoft.com/download/symbols.
Вече сме готови за дебъгване. Стартираме WinDbg. Отиваме на File->Open Crash Dump. Aз ползвам WinDbg версия 6.11.0001.404. При нея в момента на отваряне на dump файла автоматично се стартира команда !analyze и единственото, което трябва да направим е да изчакаме малко и да прочетем изхода. По-старите версии, които съм ползвал не изпълнняваха никакви команди, а чакаха да се въведе команда в командното поле в долният край на прозореца. !analyze е винаги първата команда, която се изпълнява при дебъгване, защото може да е достатъчна. Аналог на зареждането на дъмп-а на паметта в конзолата е:
kd -y srv*c:\symbols*http://msdl.microsoft.com/download/symbols -i c:\windows\i386 -z c:\windows\minidump\minidump.dmp.
При желание може kd да се замени с WinDbg. Ако изходът от командата ви подсказва грешка в Windows не и вярвайте! Колкото и да се говори, че Windows е “скапана” операционна система, истина е съвсем друга. Тя е една от най-добрите ОС. В над 90 % процента от случайте проблемите идват от външен софтуер. Самата ОС се тества всеки ден от специалисти, до чиито знания и опит простосмъртните никога няма да достигнат.
Няколко насоки:
- aко искате да видите разширен изход (verbose output) от комндата използвайте опция -v;
- ако искате да прочетете грешката и параметрите използвайте !analyze -show;
- за извеждане на заредените модули (драйвери): lm nt;
- разгледайте lm, !process, !thread и !devstack
Това е от мен. Не очаквах да стане толкова дълго писанието и затова притрупах нещата накрая.
Обновяване на Gentoo
Posted on | January 25, 2010 | No Comments
Дълго време (1-2месеца) не бях си обновявал дистрибуцията. Не за друго, просто не ми остава време. Единствено програмите и библиотеките, които имаха проблеми със сигурността, обнявявах през този период. Това е така, защото съм свикнал всичко да е под мой контрол и да проверявам всичко, за да знам какво става в система, независимо, че не не е важен сървър или работна станция. Всъщност това е основен проблем на начинащите системни и мрежови администратори. Не знаят какво се случва на системата им. В същото време разменят “работещи” конфигурации и скриптове. Обратно към темата… Количеството пакети, които трябваше да обновя беше над 400. Сред тях имаше такива, които бяха блокирани от зависимости с други пакети. Проблемите се решиха лесно, чрез деинсталиране на отпадналите пакети и обновяване на други.
Извод: При внимателно четене на изхода от дадени команди и елементарни познания Gentoo не е толкова сложна ГНУ/Линукс дистрибуция, колкото се твърди в мрежата.
Честит Рожден Ден Линус!
Posted on | December 28, 2009 | No Comments
Днес има Рожден ден, един от най-великите хакери – Линус Торвалдс. Това е човек, за който може да се каже, че е и ще бъде част от историята на ИТ света. Linux Jurnal са написали статия за случая.
Как се стартира Windows
Posted on | December 28, 2009 | No Comments
Разбирането на процеса на стартиране на една операционна сиситема (в лучая Windows) е изключително важно при разрешавана на проблеми, свързани със зареждането й. В последно време ми се налага по-често да дебъгвам проблеми на “Джам” ОС и затова ползвам нещо като план с елементарните ми познания по въпроса. Пускам го без редакция. Предварително се извинявам за вида, в който го публикувам.
1. mbr
2. boot sector
3. boot loader (ntldr)
*преминава от 16-bit към 32-bit режим и включва paging
*ако съществува зарежда Ntbootldd.sys
-използва се, ако е от SCSI disk
*чете boot.ini
- точки за достъп до зареждащи дялове
- ако има повече от един избор се появява меню с отброяване на време
*ако се избере 64-bit ОС, превключва в 64 битов режим
*F8 за специално меню за зареждане
*Ntdetect.com осъществява BIOS хардуерно откриване
- след това записва (по-късно) в: HKLM\Hardware\Description
*SYSTEM регистрите се зареждат
- зарежда драйвери: критично важни за зареждажият процес (например драйвера за файловата система)
*Ntoskrnl.exe и неговите dll`s
*прехвърля контрола на Ntoskrnl.exe
4. ОС
*splash screen се визуализира
*2 фази на инициализация на ядрото
*зарежда стартиращите драйвери (boot-start drivers)
* чете регистрите и зарежда system-start drivers
* създава процеса за управление на сесиите [Session Manager(Smss.exe)]
??ред на зареждане на драйвеи и сервизи
-дефинирани са с уникални ключове в регистрите
-HKLM\System\CurrentControlSet\Services
type 1 -драйвер
type [друго] – сервиз
0=boot
1=system
2=auto
3=manual
4=disable
повечето plug and play драйвери са на manual
5. Менаджер на сесиите
*стартира BootExecute програмите
-Autochk.exe (проверка на диска)
-тук е мястото, където най-често се стартира malware
*започва процес на отложени премествания и преименувания на файлове (например при updates)
*отваря paging файловете
*инициализира останалите регистри
!!!=>до този момент, ако се получи срив, той няма да се отрази в dump
*зарежда Win32k.sys драйвера
- kernel mode на прозоръчната система (windowing system)
*стартира Csrss.exe процеса
- user mode на прозоръчната система
*стартира Winlogon.exe
-интерактивен процес на влизане в системата (logon)
6. Прозоръчната система
*Csrss.exe инициализира прозоръчната система
*системата преминава към GUI режим
*показва се курсора
7. Идентификация и сървър за сигурност
*Winlogon.exe стартира Lsass.exe
- Local Security Authority
- осъществява идентифициране
*старира GINA.dll
-по подразбиране е Msgina.dll
-показва logon полето
*стартира Services.exe (Servece Control Manager)
??процес на влизане в системата
-Winlogon.exe изпраща потребителското име и парола на Lsass.exe
-създава инициализиращ(и) процес(и)
-по подразбиране Userinit.exe
HKLM\Software\Microsoft\WindowsNT\CurrentVersion\WinLogon\Userinit
8. Стартиране на сервизите
*Services.exe стартира сервизите, които са auto
*повечето user mode процеси
*тук могат да се заредят и някои kernel mode драйвери (за записване на дискове софт.,антивирус.)
*продължава асинхронно зареждане
Това е. При проявен интерес, ще форматирам текста в разбираем вид. В различните версии на операционната система има леки разлики. Например след NT 6.0 (Windows Vista, 7, server 2008 и т.н.) ntldr се заменя от Windows Boot Manager (BOOTMGR) и winload.
Весела Коледа!
Posted on | December 25, 2009 | No Comments
![]()
Скъпи приятели и читатели, пожелавам Ви прекрасни и незабравими мигове през Коледните и Новогодишните празници. Нека всички Ваши желания да се сбъднат и всяко Ваше начинание да бъде успешно.
Покани за Google Wave
Posted on | November 25, 2009 | No Comments
Имам 8 покани за Google Wave. Желаещите да пишат тук или в jabber.
Сигурността в Chromium (Chrome) OS
Posted on | November 21, 2009 | 1 Comment
Според Google сигурността не само, че не отстъпва на сегашните ОС, но даже ги превъзхожда. При всяко стартиране на Chrome OS, системата се проверява, ако нещо не е наред, се рестартира и се възстановява. Всички приложения се пускат в “безопасен режим”.
Официална демонстрация на Google Chrome OS
Posted on | November 21, 2009 | No Comments
Дълго време се спекулираше дали браузерът Chrome ще е новата операционна система на Google. Това беше загатнато още с появата на браузера.
След вчерашната официална демонстрация вече няма никакви съмнения в това. За радост на потребителите на други операционни системи програмата ще я има в сегашнният си вид и за всички най-разпространени операционни системи в момента. Всъщност това вероятно е зарибявката от Google. Не случайно пуснаха първо браузера за Windows.
Какво всъщност представлява Chrome OS? – Ядрото на операционната система е Linux. Цялата операционна система е с отворен код. До тук беше с всичко познато за масовият краен потребител. Иновативното в нея е, че всичко е базирано на споменатият вече браузер. Всички сериозни изчисления всъщност се извършват в интернет на отдалечени сървъри. Това нас като потребители не ни интерисува. По-скоро е важно да работи бързо и надеждно. Но изкача един сериозен проблем. Това е нуждата от добра свързаност с мрежата.
Всъщност идеята за нещо такова не е чак толкова иновативна. В момента вероятно ползвате подобни услуги без да го подозирате. Просто от Google се стремят да наложат обработването на информация в т. нар. облаци, защото е изгодно за тях самите. Не е тайна, че основната им печалба идва от рекламите. Така например за да обработвате текстов файл с офис пакет, както вероятно го правите в момента ще се налага да го правите през google docs, алтернативата на Microsoft или друг офис някъде в интернет. От това следва, че Google ще имат достъп до него във всеки един момент и ще разполагат с информацията. Съответно ще могат да я обработват за каквото им е нужно. За да не ме нападнете веднага, че вие не сте интересни за Google. ще ви отговоря, че до някъде сте прави. Не се интерисуват точно и целеустеремено от вас. Те се интерисуват от профилът, който изграждат за вас докато сте в мрежата за да ви предлагат рекламите си. Отделно от това може би търгуват с тази информация. Както в Android използването на Chrome OS е обвързано с използването на google акаунт (в gmail e такъв например).
Реално на потребителите няма да им липсва нищо. Всички приложения, игри и филми ще бъдат налични в интернет. Единственото, от което ще се нуждаете е свързаност. Забравих да спомена, че засега операционната система е безплатна. Предполагам скоро след официалното й предлагане на пазара ще се появят достатъчно приложения.
Основната цел е завладяване на нетбук пазара. Затова операционната система е много проста и пъргава. Тези устройства са малки, леки, максимално мобилни и не на последно място доста по-евтини от голям лаптоп. Тъй като се използва Linux ядро архитектурата на процесора напрактика няма значение. За сметка на това са ограничили използваемостта на разпространените в момента твърди дискове. Ще се поддържат единствено SSD.
По време на демонстрацията Chrome OS зарежда за 7 секунди. На други клипове в интернет на виртуална машина зарежда също толкова бързо. Всеки, който иска може да я свали от torrent тракерите и да я тества. Проектът с отворен код се казва Chromium OS.
Кратко видео от демонстрацията:
П.С.
За сигурността пуснах видео в отделна публикация. При всяко стартиране на Chrome OS, системата се проверява, ако нещо не е наред, се рестартира и се възстановява. Всички приложения се пускат в “безопасен режим”.
Някои особености:
- всеки таб е отделен процес;
- табовете могат да стават отделни прозорци, както и прозорците могат да стават табове;
- приставките също са отделни процеси;
Цитат от oskiller:
Защита на безжична мрежа
Posted on | October 9, 2009 | No Comments
Обезпокоен съм от трафика, който идва към блога от търсене на ключови фрази включващи думи като кракване, трошене, хакване пробиване и разбиване на WI-FI или иначе казано безжични мрежи. Също така все по-често ставам свидетел на обсъждането на темата от неспециалисти и размяната на дискове с програми и инструменти. Затова реших на напиша няколко реда със съвети “как да защитим домашната безжична мрежа”.
Много често чувам коментари от типа: “нека я ползват”. Добре, нека я ползват, ако не е с престъпни цели, но откъде съм сигурен, че е така? Освен това, аз толкова ли съм тъп, че да си плащам, а друг да ми краде “безжичния интернет”. Да приемем, че не сме скъперници и целта е да се защитим от неграмотни и злонамерени “хакери”.
За начало можем да започнем с криптиране на нашата връзка. На прост език казано, това е алгоритъма, който се използва за да се “кодира” трафика от нашето безжично устройство до точката за достъп или маршрутизатора (рутера). В момента са разпространени три типа: WEP, WPA и WPA2. WEP е най-стария и незаслужаващ внимание алгоритъм. Може да бъде разбит за броени минути. При възможност го избягвайте. До скоро WPA се смяташе като сравнително сигурен алгоритъм, но вече не е така. Все пак е за предпочитане пред WEP. При наличие на поддръжка на WPA2 от вашите устройства силно препоръчвам да го използвате. Тъй като в TKIP са известни доста повече слабости задайте ограничение на криптирането единствено на CCMP (AES).
Като втора стъпка бих посочил ограничаване на МАC адресите, които могат да се свържат във вашата мрежа. В повечето случаи опцията в уеб интерфейсите на най-разпространените безжични рутери се нарича “MAC Address Filter”. Въведете адресите на вашите мобилни устройства и го активирайте след като отбележите, че само те могат да се свържат с тази мрежа.
При наличие на client isolation или AP isolation използвайте ги. Мисля, че няма смисъл от допълнителни обяснения, просто ги активирайте.
Нещо като малък трик е наличието на 802.11 n устройства. Хитростта, може да се състои в това да се ограничи единствено до този протокол. Така се намалява броя на устройствата, които могат се свързват. Освен това да се атакува такава мрежа се усложнява от факта, че все още не са много устройствата, поддържащи този протокол и да има написани драйвери за тях, с които да имат възможност да работят в т. нар. режим на “мониторинг”.
Към първата стъпка може да се добави използването на Radius server. В повечето случаи такива сървъри има инсталирани само на модифицирани софтуери при масовите безжични рутери.
Като допълнение използвайте статичен DHCP или направо го изключете. Не препоръчвам промяна на стойности и функции, които не разбирате. Например MTU.
Какво да правим ако искаме да споделим все пак някаква част от нашия интернет с всеки непознат? -Конфигурирането на hot spot едновременно с домашна безжична мрежа далече не е тривилна задача. Затова препоръчвам да се използват или предназначени за това рутери или да се използва модифициран firmaware, с такава възможност, където голяма част от настройките са направени предварително от хора, знаещи какво правят.
Това са елементарни методи за защита. Препоръчителни са за домашни и непрофесионални безжични мрежи. Ако имате малък бизнес и желаете да се възползвате от удобството на безжичните технологии силно препоръчително е да се свържете със специалист в тази област за да избегнете нежелани проблеми и последствия.
Спам от Англия!
Posted on | September 21, 2009 | 9 Comments
Тел: +44-704-574-8727
Аз съм д-р Майкъл Джонсън от Harlesden, северозападната част на Лондон, тук в Англия. Аз работя за NatWest банка Corporation Лондон, аз ви пише от моя кабинет, че ще бъде от огромна полза и за двама ни. В моя отдел, която е асистент-мениджър (Велика Лондон Регионална служба), открих една изоставена сумата от 12,5 милиона щатски долара САЩ долари (дванадесет милиона петстотин хиляди долари САЩ) в предвид, че принадлежи към някой от нашите чуждестранни клиенти Късна г-н Томпсън Морисън американски гражданин, който за съжаление загуби живота си в самолетна катастрофа на Аляска, която Airlines полет 261 разби на 31 януари 2000, включително жена си и само дъщеря.
Изборът на контакт ти се предизвиква от географския характер на мястото, където живеете, особено поради чувствителността на сделката. И поверителността тук. Сега нашата банка е чакам някой от роднините да дойдат-нагоре за вземането, но никой не е направил това. Аз лично не са приети в намирането на роднините за 2 години сега, искам вашето съгласие да ви представя като най-близките роднини / Уил Бенефициент на починалия, така че приходите от тази сметка на стойност 12,5 милиона долара може да се обърне към вас.
Това ще бъдат изплатени или споделя в тези проценти, 60% за мен и 40% за вас. Имам осигурени всички необходими правни документи, които могат да бъдат използвани за резервно копие на това твърдение, които правим. Всичко, което е нужно е да попълните имената на документите и легализирането му в съда, за да ви докаже като законните бенефициента. Всичко, което изисква сега е вашият честен сътрудничество, поверителност и доверие да се даде възможност видим тази сделка чрез. Аз ви гарантира, че това ще бъде изпълнена по правен режим, че
ще ви предпази от всяко нарушение на закона.
Моля, ми предостави следната: тъй като имаме 5 дни да го стартирате чрез. Това е много, много СПЕШЕН МОЛЯ.
1. Пълно име
2. Вашият телефонен номер
3. Вашият Адрес за контакти.
4. Занимание
Като отиде през методическо търсене, реших да се свържем с вас с надеждата, че ще намерите това предложение интересно. Моля за Вашето потвърждение на това съобщение и показва интереса си ще ви предоставят повече информация. Нека се стремим да знам вашето решение, а не да ме чака.
С уважение,
Д-р Майкъл Джонсън
Тел: +44-704-574-8727
