программный код виндовс 10

В сеть утекли исходные коды операционной системы Windows 10 [маленькая часть]

UPD Выяснилось, что theregister все сильно преувеличил.

963920cd2ebf0dbd6a1ff15d50f80d9e

По информации портала theregister.co.uk недавно произошла массивная утечка приватных билдов ОС Windows 10 и фрагментов ее исходных кодов.

Массив из 32 терабайтов данных (в архивированном виде — 8 терабайт), состоящий из официальных и приватных образов, закрытой технической документации и исходных текстов, оказался загруженным на ресурс betaarchive.com

Предполагается, что конфиденциальные данные в этом дампе были нелегально скопированы из внутреннего хранилища Microsoft приблизительно в марте 2017 года.

По сообщениям людей, успевших ознакомиться с материалами внушительного архива, утекшие исходные коды в нем относятся к Microsoft’s Shared Source Kit. Этот набор включает в себя исходники базовых драйверов Windows 10, стеков Wi-Fi,USB и PnP, драйверов систем хранения и ARM-версии ядра OneCore.

На данный момент имеются все предпосылки того, что инцидент окажется не менее значительным, чем в свое время утечка исходных кодов Windows 2000.

8e8af15ece88e341bb38be65ce692a45

В довершение этого «праздника», в утекшем массиве среди вполне официальных билдов Windows 10 и Windows Server 2016 были обнаружены и секретные экземпляры, которые никогда не предназначались для публичного доступа, а использовались инженерами компании для поиска багов и экспериментального тестирования.

image loader

По мнению Криса Уильямса, редактора theregister, Internet ждет новая волна эксплоитов и вирусов, использующих ранее неизвестные уязвимости в коде новейших версий Windows.

Источник утечки и обстоятельства произошедшего пока не ясны. Представители компании Microsoft на момент публикации никак не про комментировали ситуацию.

Источник

Изучаем дерево исходников Windows 10: от телеметрии до open source

image loader

Насколько бы закрытым ни было программное обеспечение Microsoft, информации о своем внутреннем устройстве оно выдает предостаточно. К примеру, экспорт функций из библиотеки по именам дает представление о ее интерфейсах. В свободном доступе есть и отладочные символы, которые повсеместно используются для диагностики ошибок в ОС. Однако на руках у нас все равно имеются только скомпилированные бинарные модули. Становится интересно: а какими они были до компиляции? Давайте попробуем разобраться, как вытащить побольше информации об исходных кодах, не делая ничего незаконного.

Идея, конечно, не нова. В свое время подобное делали и Марк Руссинович, и Алекс Ионеску. Мне лишь было интересно получить свежие данные, немного дополнив и уточнив уже проделанную другими работу. Для эксперимента нам понадобятся пакеты отладочных символов, которые есть в свободном доступе. Я взял пакеты для последней релизной версии «десятки» (64 бита), причем решил исследовать и релизный пакет (free build), и отладочный (checked build).

Отладочные символы — это набор файлов с расширением pdb (program database, база данных программы), в которых хранится различная информация для расширения возможностей отладки бинарных модулей в ОС, включая имена глобалов, функций и структур данных, иногда вместе с их содержимым.

Помимо символов можно взять условно доступную отладочную сборку «десятки». Такая сборка богата на ассерты, в которых бывают описаны не только недокументированые и отсуствующие в символьных файлах имена переменных, но и номер строки в файле, в котором сработал ассерт.

image loader

В примере видно не только имя файла и его расширение, но и структура каталогов до него, очень полезная даже без корня.

Натравливаем на файлы символов утилиту strings от sysinternals и получаем около 13 ГБ сырых данных. А вот кормить все файлы из дистрибутива отладочной сборки подряд — так себе идея, ненужных данных будет слишком много. Ограничимся набором расширений: exe — исполняемые файлы, sys — драйвера, dll — билиотеки, ocx — ActiveX-компоненты, cpl — компоненты панели управления, efi — EFI-приложения, в частности загрузчик. Сырых данных от дистрибутива набралось 5,3 ГБ.

Читайте также:  коды cars the videogame

К своему удивлению я обнаружил, что не так много программ способны хотя бы открыть файлы размером в десяток гигабайт, и уж тем более единицы смогли поддержать функцию поиска внутри таких файлов. В данном эксперименте для ручного просмотра сырых и промежуточных данных использовался 010 Editor. Фильтрация данных дешево и сердито осуществлялась скриптами на питоне.

Фильтрация данных из символьных файлов

В символьных файлах помимо прочего содержится информация компоновщика. То есть, в символьном файле присутствует список объектных файлов, которые использовались для компоновки соответствующего бинарника, причем в компоновщике используется полный путь до объектного файла.

image loader

Получаем абсолютные пути, сортируем, удаляем дубликаты. К слову, мусора получилось не так много, и он был удален вручную.

При осмотре полученных данных стала понятна примерная структура дерева исходных кодов. Корень — «d:\th», что по всей видимости означает threshold, в соответствии с названием ноябрьской версии Windows 10 — Threshold 1. Однако файлов с корнем «d:\th» оказалось мало. Это объясняется тем, что компоновщик принимает уже собранные файлы. А сборка объектников осуществляется в папки «d:\th.obj.amd64fre» для релизной сборки и «d:\th.obj.amd64chk» для отладочной.

Для примера:
d:\th.obj.amd64fre\shell\osshell\games\freecell\objfre\amd64\freecellgame.obj
это бывший
d:\th\shell\osshell\games\freecell\freecellgame.c??

По поводу расширения файлов: объектный файл получается из кучи разных типов исходного файла: «c», «cpp», «cxx», «asm» и т. д. На данном этапе неясно, какой именно тип исходного файла использовался, поэтому оставим расширение «c??».

Помимо папки «d:\th» наблюдается множество других корней. Например, «d:\th.public.chk» и «d:\th.public.fre». Данную папку мы опустим ввиду того, что в ней хранится публичная часть sdk, то есть она нам не очень интересна. Также стоит отметить различные пути проектов для драйверов, которые, судя по всему, собираются где-то на рабочих местах разработчиков:

c:\users\joseph-liu\desktop\sources\rtl819xp_src\common\objfre_win7_amd64\amd64\eeprom.obj
C:\ALLPROJECTS\SW_MODEM\pcm\amd64\pcm.lib
C:\Palau\palau_10.4.292.0\sw\host\drivers\becndis\inbox\WS10\sandbox\Debug\x64\eth_tx.obj
C:\Users\avarde\Desktop\inbox\working\Contents\Sources\wl\sys\amd64\bcmwl63a\bcmwl63a\x64\Windows8Debug\nicpci.obj

Другими словами, существует набор драйверов устройств, отвечающих стандартам, например, USB XHCI, которые входят в дерево исходных кодов ОС. А все специфичные драйвера собираются где-то в другом месте.

image loader

Выходные данные становятся все красивее! Однако на этом этапе дополнительные данные получить уже практически невозможно. Переходим к следующему набору сырых данных.

Фильтрация данных из исполняемых файлов

На этом этапе есть несколько проблем с данными, полученными из символов. Первая проблема: мы не уверены, что правильно откатили путь сборки исходного файла в объектный файл.

И они действительно есть! То есть, для большинства каталогов можно утверждать, что их структура восстановлена правильно. Конечно, все еще остаются сомнительные каталоги, но думаю, эта погрешность вполне приемлема. Попутно можно смело заменять расширение «c??» на расширение совпавшего по пути исходника.

Вторая проблема — заголовочные файлы. Дело в том, что это важная часть исходных файлов, однако из заголовочника не получается объектный файл, а это значит, что из информации об объектных файлах нельзя восстановить заголовочники. Приходится довольствоваться малым, а именно теми заголовочниками, которые мы нашли в сырых данных бинарных файлов.

Третья проблема: мы все еще не знаем большинство расширений исходных файлов.

image loader

Ну а как же исходники на ассемблере? За последним штрихом можно обратиться к Windows Research Kernel — исходным кодам Windows XP — и часть исходников на ассемблере переименовать вручную.

Изучаем полученные данные

Телеметрия

Какое-то время я изучал вопрос об устройстве телеметрии в Windows 10. К сожалению, анализ на скорую руку не выявил ничего стоящего. Я не нашел никаких кейлоггеров, никакой утечки чувствительных данных, ничего, к чему можно было бы прикопаться. И первым ключевым словом для поиска среди исходных файлов было «telemetry». Результат превзошел мои ожидания: 424 совпадения. Самые интересные приведу ниже.

Комментировать, пожалуй, не стоит, поскольку все равно достоверно ничего не известно. Однако эти данные могут послужить хорошей отправной точкой для более детального исследования.

Kernel Patch Protection

Следующая находка — всеми любимый PatchGuard. Правда, в дереве исходников ОС присутствует только один файл непонятного, скорее всего бинарного типа.
d:\th\minkernel\ntos\ke\patchgd.wmp
Поискав совпадения в нефильтрованных данных, я обнаружил, что на самом деле Kernel Patch Protection — это отдельный проект.
d:\bnb_kpg\minkernel\oem\src\kernel\patchgd\mp\xcptgen00.c??
d:\bnb_kpg\minkernel\oem\src\kernel\patchgd\mp\xcptgen01.c??
d:\bnb_kpg\minkernel\oem\src\kernel\patchgd\mp\xcptgen02.c??
d:\bnb_kpg\minkernel\oem\src\kernel\patchgd\mp\xcptgen03.c??
d:\bnb_kpg\minkernel\oem\src\kernel\patchgd\mp\xcptgen04.c??
d:\bnb_kpg\minkernel\oem\src\kernel\patchgd\mp\xcptgen05.c??
d:\bnb_kpg\minkernel\oem\src\kernel\patchgd\mp\xcptgen06.c??
d:\bnb_kpg\minkernel\oem\src\kernel\patchgd\mp\xcptgen07.c??
d:\bnb_kpg\minkernel\oem\src\kernel\patchgd\mp\xcptgen08.c??
d:\bnb_kpg\minkernel\oem\src\kernel\patchgd\mp\xcptgen09.c??
d:\bnb_kpg\minkernel\oem\src\kernel\patchgd\mp_noltcg\patchgd.c??
d:\bnb_kpg\minkernel\oem\src\kernel\patchgd\mp_noltcg\patchgda.c??
d:\bnb_kpg\minkernel\oem\src\kernel\patchgd\mp_noltcg\patchgda2.c??
d:\bnb_kpg\minkernel\oem\src\kernel\patchgd\mp_noltcg\patchgda3.c??
d:\bnb_kpg\minkernel\oem\src\kernel\patchgd\mp_noltcg\patchgda4.c??

Читайте также:  коды для картинок в роблокс

Сомнительные файлы

Не придумав больше ничего меня интересующего, я начал искать все подряд — и остался доволен!

d:\th\windows\core\ntgdi\fondrv\otfd\atmdrvr\umlib\backdoor.c??
в драйвере шрифтов?

d:\th\inetcore\edgehtml\src\site\webaudio\opensource\wtf\wtfvector.h
Web Template Framework, это всего лишь Web Template Framework, спорная аббревиатура. Погодите,

Open source?

d:\th\printscan\print\drivers\renderfilters\msxpsfilters\util\opensource\libjpeg\jaricom.c??
d:\th\printscan\print\drivers\renderfilters\msxpsfilters\util\opensource\libpng\png.c??
d:\th\printscan\print\drivers\renderfilters\msxpsfilters\util\opensource\libtiff\tif_compress.c??
d:\th\printscan\print\drivers\renderfilters\msxpsfilters\util\opensource\zlib\deflate.c??
Думаю, на этой находке пора закругляться.

Архив с текстовым файлом со списком исходников приведен по ссылке. Делитесь своими находками в комментариях!

Источник

32 Тбайт исходного кода и сборок Windows 10 утекло в Сеть

В Сети стала доступна для всеобщего обозрения огромная часть внутренних сборок и элементов ядра Windows. На betaarchive.com было загружено около 32 Тбайт непубличных установочных образов и проектов программного обеспечения. Предполагается, что данные были похищены с внутренних систем Microsoft в марте этого года.

Среди утёкших данных — исходный код, который распространяется по механизму Shared Source. По словам людей, которые видели его содержимое, он включает код базовых аппаратных драйверов Windows 10 и PnP, стеки USB и Wi-Fi, а также код ядра OneCore для ARM-устройств.

ms leak screenshot

Любой, кто успел получить доступ к информации, мог использовать её для поиска уязвимостей систем безопасности. Это может привести к глобальному взлому компьютеров на базе Windows. Код работает в самом сердце операционной системы, на одном из самых доверенных уровней.

Среди утёкших копий официальных версий операционной системы оказались и секретные сборки Windows 10 и Windows Server 2016, которые ранее не появлялись в Сети. Они разработаны специально для поиска багов и тестирования и включают отладочные символы, которые обычно убираются из публичных версий ОС.

В списке, например, присутствуют предрелизные сборки Windows 10 Redstone и невыпущенные версии операционной системы для 64-битных ARM-процессоров. The Register считает, что в Сети оказалось слишком много сборок, чтобы Microsoft могла использовать механизмы защиты и предотвратить установку утёкших версий на сторонние компьютеры.

11059315 10153173666582669 3503796172936084651 n

В свободном доступе оказались и различные версии Windows 10 Mobile Adaptation Kit. Это секретное программное обеспечение, с помощью которого Microsoft заставляет работать операционную систему на мобильных устройствах.

Утечка считается крупнейшей с момента попадания в Сеть исходного кода Windows 2000, произошедшего в 2004 году. Администраторы Beta Archive уже удаляют непубличные компоненты и сборки со своих серверов и форумов.

Источник

Насколько сложный программный код у Windows?

news20200116 0

Чтобы разобраться вопросе, насколько может быть сложным программный код «Виндовс» мы обратились к одному из разработчиков команды Windows NT в компании Microsoft — Кену Греггу (Ken Gregg).

Кен Грегг (Ken Gregg), разработчик в составе группы Windows NT

«Могу сказать вам, что у меня был доступ к исходному коду, когда я был в команде Windows NT (NT является основой для всех настольных версий Windows начиная с XP), во время проектов разработки NT 3.1 и NT 3.5. Всё было в рамках стандартов кодирования NT Workbook — эдакой «библии» для всей проектной команды.

. Хотя я и не читал каждую строку кода, но то, с чем мне пришлось работать, было очень:

Нужно исходить из того, что именно понимается под сложностью кода. Это понимание сугубо субъективное, ведь так? Благо существует множество различных метрик, используемых и комбинируемых для измерения сложности программного обеспечения в тех или иных ситуациях (та же самая модульность, многоуровневость и обслуживаемость).

news20200116 4

Насколько сложна Windows в программном коде?

Конечно, чтобы прочитать и понять код, вам нужно было бы иметь представление об общей архитектуре Windows NT.

Вероятно, лучшим источником информации о внутренностях Windows сегодня являются книги Windows Internals 6th Edition (в двух томах).

Некоторые люди просто приравнивают сложность кода к размеру. У этого сравнения тоже есть метрика — строки кода (LOC).

Измерение LOC зависит от используемых инструментов и критериев. Их выбирают для точного определения строк кода на каждом языке программирования.

news20200116 1

Кен Грегг (Ken Gregg)

«Существует много споров о методах, используемых для подсчета строк кода (LOC). Если использовать одни и те же критерии от одного выпуска к следующему, то получится относительное изменение размера базы кода.

Сравнивать эти числа с цифрами другой ОС, которая использовала другой метод подсчета строк кода, всё равно что сравнивать яблоки с апельсинами. То есть это некорректный подход».

Читайте также:  код телефона ульяновской обл

news20200116 2

Как менялся программный код Windows?

Как база кода Windows NT развивалась с 1993 года

MLOC — это количество миллионов строк исходного кода. По ним можно определить относительную сложность операционной системы, если опираться на размеры кода (LOC-методика).

Исходный код Windows состоит в основном из C и C++, а также небольшого количества кода на ассемблере.

Некоторые из утилит пользовательского режима и другие подобные службы пишутся на Си Шарп, но это относительно небольшой процент от общей базы кода.

news20200116 1

Кен Грегг (Ken Gregg)

«Я намеренно не включил в список 16-битные версии ОС, выпущенные с 1985 по 2000 годы. Windows NT была основой для всех современных 32-бит и 64-бит версий Windows. Количество строк кода в серверных версиях было таким же, как и в несерверных версиях, выпущенных в том же году (то есть они имели одинаковую базу исходного кода)».

news20200116 3

Несколько слов про ядро Windows NT

По словам Кена, работа над ядром NT началась в 1988 году. Ядро было создано с нуля в качестве 32-разрядной упреждающей многозадачной ОС.

Ядро NT впервые загрузилось в июле 1989 года на процессоре Intel i860 RISC. С самого начала был сильный толчок к тому, чтобы новая ОС была совместимой с различными архитектурами центральных процессоров и не была привязана только к архитектуре Intel x86 (IA-32).

NT в конечном итоге работал на MIPS, DEC Alpha, PowerPC, Itanium и, конечно, Intel x86 и x64.

Некоторая сложность была добавлена в базу кода на уровне абстрагирования оборудования (HAL). Это было нужно для поддержки неинтеловских архитектур.

А как вы оцениваете перспективы Windows в плане кода? Узнайте, какие версии Windows актуальны сейчас и какие ОС можно рассмотреть в качестве альтернативы.

Есть проблемы при использовании Windows и непонятен программный код для внедрения новых бизнес-инструментов в ОС от Microsoft? Проконсультируйтесь с экспертами по ИТ-аутсорсингу и получите поддержку по любым техническим вопросам и задачам.

Источник

В сеть утекли внутренние билды и исходники Windows 10

Реверс малвари

Журналисты издания The Register обнаружили, что на прошлой неделе неизвестные опубликовали на форумах betaarchive.com 32 Тб данных (8 Тб в заархивированном виде), среди которых были внутренние билды Windows 10 и исходные коды операционной системы. Предположительно, утечка была датирована мартом 2017 года.

На приватном FTP-сервере BetaArchive был опубликован так называемый Shared Source Kit, в который входили внутренние билды Windows 10 и Windows Server 2016, созданные специально для отлова багов и тестирования, ряд версий Windows 10 Mobile Adaptation Kit, исходные коды базовых драйверов Windows 10, код PnP, USB и Wi-Fi стек, код ядра OneCore в ARM-версии и так далее. Как правило, такие исходники и билды предназначаются исключительно для сотрудников самой Microsoft, производителей железа и очень узкого круга избранных клиентов.

Win Source Code

DDCvDHPVwAArv1W

Представители Microsoft подтвердили журналистам, что утечка являлась частью Shared Source Initiative, и данная информация использовалась производителями железа и партнерами компании.

После того как утечку заметили, и в прессе появились данные о том, что дамп может содержать закрытую информацию, администрация Beta Archive поспешила удалить публикацию с форума и архив с FTP-сервера. Возможно, в будущем архив будет восстановлен, если после тщательной проверки в его составе не найдут ничего предосудительного.

Также администрация ресурса утверждает, что архив содержал лишь 1,2 Гб данных (12 релизов по 100 Мб каждый), что идет в разрез с заявлениями The Register о 32 Тб информации. Администраторы BetaArchive полагают, что журналисты имели в виду большую публикацию, посвященную Windows 10 и обнародованную на сайте 24 марта 2017 года. В состав этой публикации входили различные бета-сборки, предоставленные членами Windows Insider и Microsoft Connect, однако ничего «криминального» эти бета-релизы и тестовые билды не содержали и полностью соответствовали всем правилам ресурса. Операторы сайта выразили сомнение в том, что эти «утечки» как-то связаны с недавним арестом двух британцев, которых обвиняют во взломе сети Microsoft.

Эксперты так же уверяют, что утечки исходных кодов, не считая ARM Shared Source Kit, не было.

No source code has been leaked other than the ARM shared source kit.

Источник

Поделиться с друзьями
admin
Здоровый образ жизни: советы и рекомендации
Adblock
detector