понедельник, 31 октября 2022 г.

Куда делись программеры после 40

https://habr.com/ru/post/695882/#comment_24864202 


Думаю, не помешали бы примеры, почему надо все время учиться, потому что видно, что есть недопонимание. Базовые вещи (алгоритмы) не особо поменялись (хотя, например, современный qsort - это уже не старый книжный, а модифицированный: https://awdesh.medium.com/dual-pivot-quick-sort-javas-default-sorting-algorithm-for-primitive-types-77342e1df5e5)

Просто приведу примеры тех технологий, которые использую по работе, и которых точно не было в прошлом веке:

  • zstd (2015) - использовать в наше время gz просто уже стыдно

  • linux kernel namespaces (2002)/cgroups (2007) - docker, LXC и в целом OCI

  • sponge functions (2007) - основа современных стандартов криптографии (SHA-3, и в этом году NIST выберет победителя для lightweight/hardware encryption)

  • SIMD (все это было и раньше, но SSE и NEON появлились только в этом веке)

  • сетевые протоколы (QUIC, DNS-over-HTTPS, WebRTC etc) - очень много появилось в последние два десятка лет.

И это надо знать - шифрование, сжатие данных, сети, контейнеры - это все входит в арсенал практически любого профессионального программиста. Если кому-то это не надо, то это очень узкий специалист.

СССР

https://habr.com/ru/post/696310/

четверг, 20 октября 2022 г.

Похудеть за компом

https://habr.com/ru/company/getmatch/blog/693254/

https://4pda.to/forum/index.php?showtopic=937799

Бэкап драйверов и ключа активации

1. Делаем бэкап драйверов. Создаем на флэшке папку под драйвера, например D:\Drivers. 

Жмём Win + X, выбираем Windows power shell (администратор). 

В командную строку пишем:

dism /online /export-driver /destination:D:\Drivers

Проверяем орфографию и пробелы. В папку на флэшке экспортируются все драйвера, приблизительно 1,3 гига.

2. Вытаскиваем ключ активации. Жмём Win + R, набраем cmd.exe от Администратора и пишем:

wmic path SoftwareLicensingService get OA3xOriginalProductKey

Копируем ключ и сохраняем его на той же установочной флэшке. 

https://zen.yandex.ru/media/ninja_it/sohraniaem-vse-draivera-i-pereustanavlivaem-sistemu-windows-bez-golovnoi-boli-6106f7adb320db6f206d6756

Вот так

Export-WindowsDriver -Online -Destination C:\DriverBackup

По завершению на диске у вас появится папка DriverBackup с вашими всеми драйверами .

*** Интегрируем драйвера в флешку или диск.

Теперь переименовываем папку с драйверами( DriverBackup )в $WinPEDriver$. Не ошибитесь с названием папки не S а знак доллара

в начале и конце . Подключаем флешку к компу с которой устанавливали виндовс и просто перетаскиваем папку $WinPEDriver$ в

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


воскресенье, 16 октября 2022 г.

Windows XP source code


https://www.quora.com/How-can-I-view-the-Windows-10-source-code?share=1

https://www.quora.com/How-do-I-see-the-source-code-of-Windows-11

https://www.quora.com/Why-has-no-one-leaked-the-source-code-for-Microsoft-Windows-yet?share=1


https://boards.4channel.org/g/

https://rentry.co/build-win2k3

https://rentry.co/wine-on-windows

https://rentry.co/win2k3-extra-patches


https://anonfiles.com/9cu9A6d8pe/toolset_v4-nocom_zip

toolset_v4-com.zip

toolset_v4-nocom.zip



https://forum.videolan.org/viewtopic.php?t=12462

Неправильный форум, и не будите темы старше 6 лет.


Можно ли открыть исходный код ОС Windows путем обратного проектирования кода?

Я буду говорить конкретно из своего опыта работы с ядром Windows.

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

В прошлом я вел занятия по различным темам ядра Windows, включая отладку ядра и разработку драйверов. Я потратил много времени, объясняя, как части соединяются друг с другом — общая картина — а также рассматривая гораздо более мелкие детали. Даже если у вас есть исходный код Windows, вы мало что сможете с ним сделать, если у вас нет хорошей концептуальной модели того, как эти части сочетаются друг с другом. Что такое уровень аппаратной абстракции Чем он отличается от ядра диспетчера ввода/вывода или диспетчера памяти Как эти компоненты взаимодействуют друг с другом?

С другой стороны, если у вас есть хорошая концептуальная основа, я могу показать вам, как читать код. Поначалу это пугает, но со временем вы сможете посмотреть на код в отладчике и понять, что он делает. Компилятор делает это намного проще, потому что он имеет тенденцию генерировать высокоструктурированный код. Есть вещи, которые усложняют задачу, например логика оптимизации, которую Microsoft использует для перемещения блоков кода в разные места в памяти. Это сделано из-за малого количества TLBзаписи для кода, поэтому мы хотим, чтобы код, который выполняется все время, выполнялся из небольшого набора общих страниц. Когда я преподавал отладку, это было важно понимать, потому что те пути ошибок, которые приводят к сбою, не являются нормально выполняемым путем кода, и поэтому они появляются во многих сценариях сбоя, которые могут потребоваться для отладки.

Итак, допустим, вы хотите знать, как работает механизм системных вызовов. Можно просто дизассемблировать один из системных вызовов, скажем ZwCreateFile На самом деле это имеет одинаковую реализацию как для режима ядра, так и для пользовательского режима, поскольку он вызывается через вектор системного вызова. Другая версия этого же вызова, NtCreateFile , идентична в пользовательском режиме и отличается в режиме ядра.

Так вы разбираете системный вызов. Вы можете видеть, как он сохраняет значения в энергозависимых регистрах, а затем вызывает быстрый обработчик системных вызовов. Это заставляет ЦП передать управление коду операционной системы для обработки системных вызовов. Затем ОС сохраняет информацию (в кадре ловушки ), использует информацию, переданную в энергозависимых регистрах, и копирует параметры из пользовательского стека в стек ядра. Затем он загружает правильную функцию для вызова из таблицы и вызывает системный вызов.

Таким образом, приложение пользовательского режима, которое вызывает NtCreateFile , в конечном итоге вызывает NtCreateFile в ядре. Мы можем повторить этот процесс — я могу показать вам, как NtCreateFile просто вызывает IoCreateFileEx Угадай, что? Это задокументированный вызов в ядре Вы можете найти его описание прямо здесь: Процедура IoCreateFileEx

https://msdn.microsoft.com/en-us/library/windows/hardware/ff548283(v=vs.85).aspx

Microsoft делает это на удивление легко. Они размещают свои символы на общедоступном сервере символов, к которому могут получить доступ инструменты. Существуют библиотеки для того, чтобы сделать все это доступным. Ничто из этого не требует доступа к исходному коду.

Итак, я бы предположил, что, хотя это можно было бы сделать, это было бы довольно бессмысленно. У вас есть доступ ко всему коду. Они предоставляют вам инструменты и документацию. Ядро Windows теперь доступно для тех, кто хочет изучить его язык.




вторник, 4 октября 2022 г.

Сон

Создайте .bat файл со следующим текстом:

net start "sppsvc.exe"
rundll32.exe PowrProf.dll, SetSuspendState

Запуск этого батника должен корректно уводить систему в сон.
Способ костыльный, но зато должен работать на всех китайских материнках