Красивые часы на любой дисплей

Припер шеф в офис телевизор, новый здоровый плоский, чтоб клиентам МУЗ-ТВ или какое другое камеди показывать, мол, пусть будет, как в лучших домах города.
Сразу выяснилось, что коаксиал в офисе есть, но это оказалось не кабельное, а какая-то неведомая фигня, которая, в общем, даже неведомое показывать отказалась, хотя по тестам там даже какой-то сигнал есть, но с ним я ночью поэкспериментирую, вдруг какая Бухта Кэндл или Криполе Чудес после полуночи передается.

Оказалось, железячка не венде (какой-то окончательно порезанной и изуродованной 10-ке), так что довольно быстро научил его показывать из расшаренной Самбы видосы, но, поскольку там одни ужастики 80-х («Извне», «Реаниматор», «Фантомы» и.д.), то для клиентов это не включишь, а за ютупом следить надо, вдруг посреди котиков Невзоров вылезет.

В общем, хуй с ним, сказал начальник, и попросил Большие Красивые Часы на весь экран.

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

Что-ж, сказал я… И немедленно выпил. А потом сделал часы (ну как сделал, сконвертировал в экзешник(и)).

Clock_1.exe — часы в стандартном окне (с кнопками развернуть, свернуть и закрыть)
Clock_Noborder.exe — часы в стандартном окне без заголовка, закрываются ALT+F4 или по щелчку правой кнопкой мыши, выпадет меню с пунктом Exit
Clock_Fullscreen.exe — часы на полный экран без заголовка, закрываются аналогично предыдущему варианту. Идеальны для стационарного показа на мониторе, телевизоре, старом смартфоне под винду или информационном киоске.
swf\Clock_1.swf — оригинал программы.

Скачать с Mega.NZ

Утечки DNS, что это такое, как справиться, как проверить, чем грозит.

Преамбула

Крошка юзер пришел к админу, и спросила кроха — VPN себе купил, все равно, бля банят.
Практически реальная история одного юзера, т.е. он купил себе малоизвестный, потому и неизвестный роскомкозлам VPN, пошел почитать kasparov.ru, а получил вот это:

Стали разбираться, VPN абсолютно не российский, сделанный двумя бразильскими рэперами-анархистами, логов не ведет, не является сторонним сервисом, поставляющим чужие услуги, просто пропуская трафик через себя, русских нод выхода нет. Значит, утечка DNS, т.е. VPN-провайдер позволяет использовать другие (кроме локального для провайдера VPN) DNS, а у провайдера прописан глобальный DNS-сервер. У Говнотелекома именно так.

Что такое DNS, объясняю по рабоче-крестьянски.

DNS расшифровывается как Сервер доменных имен. Один хрен, непонятно. Если совсем просто — это телефонный справочник. Или справочная служба. Например, вам хочется позвонить Вербицкому Михаилу Сергеевичу в Москве по такому-то адресу, но номера вы не знаете. Звоните в справочную службу 018, и вам говорят номер.

Сейчас, конечно, нет телефонных служб и телефонных справочников, но представьте себе свой мобильник, мама у вас записана, как «Мамочка», жена, как «Любимка», брат, как «Саня Мелкий», а любовница, как «Иван Михалыч», а рядом с их именем отображается номер телефона.

Интернет изначально не предполагал, что вообще будут какие-то имена сайтов, типа google.com (и вообще он выйдет за границы военного ведомства США), и компьютеры получали IP-адреса, состоящие из цифр с точкой, например google.com имеет IP-адрес 142.251.36.14

Когда интернеты таки вылезли за границы DARPA и стали гражданской технологией, всем стало понятно, что юзверю неудобно набирать кучу цифири в адресной строке, т.е. 142.251.36.14 вместо google.com умные люди придумали систему DNS, т.е. браузер сначала обращается к специальному серверу, который сопоставляет имя сайта, например, того же google.com с его IP-адресом, и все должно заверте…

Дыры в DNS

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

Потом, конечно, фатальный недостаток постарались исправить, навешав на старый протокол DNSSEC, который тоже всей беды не решает, DOH или DoT, но один черт, не все сервера поддерживают новые расширения протокола, так что до конца эта беда по-прежнему не решена.

Проверка на утечки DNS (DNS-leaks)

Существует множество онлайн-сервисов, проверяющих утечки DNS, их реально очень много, практически у каждого крупного VPN-провайдера такой есть, есть и не у VPN-провайдеров, а сами по себе. Один из самых популярных https://www.dnsleaktest.com/

Включаете JavaScript в браузере (если выключен) и нажимаете кнопку Extended Test:

Вот, что у меня получилось:

Утекает, но на Запад, что хотя бы не так страшно.

Пробуем другой сервис, например, берем самый первый из запроса «тест утечки DNS», у меня это https://whoer.net/ru/dns-leak-test.

Как и выше, тестирую на офисной машине в своем офисе:

Иерархия запросов DNS

Звучит страшно, но на самом деле все просто, DNS-запрос сначала обрабатывает ОС, установленная на данном компьютере, а потом, все вышеследующие системы по соединению.

Например, представим ситуацию:

1. У вас есть локальный компьютер в квартире.
2. В квартире есть роутер или даже домашний сервер.
3. На сервере подключен VPN-провайдер.

При запросе к сайту (любому), система сначала будет обращаться к локальным (т.е. компьютера) настройкам DNS, если доступ есть, то DNS-запрос будет отправлен на тот адрес, который будет указан в настройках. Если локальные настройки DNS не указаны прямо или не получаются автоматически, то система обратится к соединению с сервером/роутером, и получит настройки от него. Аналогично и сам сервер/роутер — он обратится к DNS-серверу нужного провайдера, конечно, если все настроено правильно.

Соответственно, большинство утечек решаются правильной настройкой DNS на нужных устройствах, на крайний случай, обращением к провайдеру услуг. Если добросовестный, то поправит.

Стандартные варианты конфигурации DNS и шлюза в Windows 7

Можно посмотреть в графическом интерфейсе, и схонфигурировать нужную конфигурацию для Windows 7.

Нужно зайти в Сеть и Интернет —> Сетевые подключения а потом найти основной адаптер, а потом протокол IPv4, и посмотреть как настроено (открыть пункт Протокол Интернета версии 4), теперь нажимаем Свойства и смотрим:

Ага, тут DNS выбирается автоматически.

А вот, как сделано на рабочей машине:

Т.е на иллюстрации видно, что DNS и шлюз не прописаны. Такая конфигурация используется для локального (корпоративного) VPN, где сервер доступен вам из локальной сети, а рабочая станция вообще не может обратиться к Интернету, если соединение с VPN «упадет».

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

Посмотреть конфигурации DNS для всех существующих соединений

Как я уже говорил выше, вышестоящее сетевое соединение (например VPN) может переопределить DNS, потому можно посмотреть DNS для всех существующих соединений через консоль:

ipconfig /all|more

А вот и утечка!

...
Адаптер PPP lainserexp:

   DNS-суффикс подключения . . . . . :
   Описание. . . . . . . . . . . . . : lainserexp
   Физический адрес. . . . . . . . . :
   DHCP включен. . . . . . . . . . . : Нет
   Автонастройка включена. . . . . . : Да
   IPv4-адрес. . . . . . . . . . . . : 172.16.1.122(Основной)
   Маска подсети . . . . . . . . . . : 255.255.255.255
   Основной шлюз. . . . . . . . . : 0.0.0.0
   DNS-серверы. . . . . . . . . . . : 8.8.8.8
                                       10.x.x.x
   NetBios через TCP/IP. . . . . . . . : Включен

Внутренний корпоративный VPN оказался криво настроен — первым DNS-сервером выдает гуглевский 8.8.8.8, а локальный вторым. Звоним администратору, пусть меняет конфигурацию.

Настройки DNS в Linux

Настройки DNS в Linux хранятся в файле /etc/resolv.conf, который представляет собой обычный текстовый файл, потому посмотреть и отредактировать его можно любым удобным текстовым редактором.

Содержимое файла /etc/resolv.conf в котором, например, указаны публичные DNS-серверы Google:

nameserver 8.8.8.8
nameserver 8.8.4.4

Просмотр DNS в Linux

В Linux DNS также может быть изменен сетевым соединением, и тоже есть возможность это проверить.

1. С помощью команды dig

dig google.com

Вывод (оставил только значимый результат):

...
;; ANSWER SECTION:
google.com. 300 IN A 142.251.36.14

;; Query time: 44 msec
;; SERVER: 10.10.0.1#53(10.10.0.1)
;; WHEN: Sat Jul 09 11:57:58 AKDT 2022
;; MSG SIZE rcvd: 55

В строке SERVER указан использованный сервер DNS (10.10.0.1) и порт (53), заодно, можно увидеть и IP-адрес сайта (142.251.36.14)

2. Командой nslookup:

nslookup google.com

Вывод:

Server:         10.10.0.1
Address:        10.10.0.1#53

Non-authoritative answer:
Name:   google.com
Address: 142.251.36.14

Так же виден адрес используемого DNS-сервера и его порт и адрес сайта, к которому обратилась команда.

Потом расскажу, как сделать локальный DNS-сервер в сети или на локальной машине.

Источники

1. Как скрыть Реальный DNS и почему его видно
2. Как мне узнать, какой DNS-сервер использовать?
3. Как узнать IP DNS сервера в Linux

Копии источников в одном архиве (RAR, PDF)

Отключение обновления Foxit PDF Reader (v. 8.3.2.25013)

Преамбула

Когда-то писал о том, что в новых версиях Foxit Reader пропал PDF-принтер и Foxit PDF Creator (копия). Так вот, новая гадость пришла откуда не ждали, теперь он сносит PDF-принтер при обновлениях.

Штатного способа отключить обновления нет

Решение

Сама программа обновления имеется в двух экземплярах:

В каталоге Foxit:
C:\Program Files (x86)\Foxit Software\Foxit Reader\FoxitUpdater.exe

И в каталоге Application Data:
C:\Users\<username>\Application Data\Foxit Software\Addon\Foxit Reader\FoxitReaderUpdater.exe, вместо <username> — ваше имя пользователя.

Просто снести два экзешника не получится, точнее получится, но Foxit Reader будет при каждом запуске ругаться, что не нашел свой обновлятор. Зато не будет ругаться, если обновлятор (оба файла) просто заменить на экзешник, который ничего не делает, а такой я уже делал (копия), правда по другому поводу. Сделал еще и версию на MASM

Написал патч на NSIS

И для себя, если винды переустанавливать, и для клиентов, на всякий случай.

Репозиторий на GitHub
Исходник NSIS
Копия (без дополнительных файлов) на PasteBin
Скачать готовый патч

Дополнительно

В принципе, исходник достаточно простой, оставлю только ссылку на получение MD5-суммы файла в NSIS: NSIS: контрольная сумма (MD5), сравнение файлов. (копия).

Примечание: почему-то MD5-сумма, получаемая NSIS-плагином (md5dll.dll) отличается от MD5-суммы, полученной средствами Windows (копия). Почему, пока не разобрался. Может, позже напишу.

Windows, CMD/BAT: получить MD5 и другие хэш-суммы для файлов.

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

Windows 7 и выше

В Windows 7 присутствует стандартная утилита certutil, предназначенная для работы с сертификатами и хранилищами сертификатов, но она умеет вычислять и хэш-суммы файлов.

certutil -hashfile <путь_до_файла>

По умолчанию утилита генерирует хэш SHA1

Чтобы сгенерировать хэш-сумму по другому алгоритму, нужно вызвать утилиту так:

certutil -hashfile <путь_до_файла> <алгоритм>

где <алгоритм> — один из поддерживаемых алгоритмов (регистр символов в названии алгоритма значения не имеет)

Поддерживаемые алгоритмы:

— MD2
— MD4
— MD5
— SHA1
— SHA256
— SHA384
— SHA512

Например, чтобы получить MD5-хэш надо вызвать утилиту со следующими параметрами:

certutil -hashfile <путь_до_файла> MD5

Проще всего наделать батников для каждого (или нужных) алгоритмов, да положить их в один из PATH-каталогов, например, для получения MD5-хэша можно создать MD5.BAT со следующим кодом:

@certutil -hashfile %1 MD5

Впрочем, я для вас заморочился. Тут можно взять батник для каждого алгоритма, или скачать SFX-архив для самых ленивых. Распакуется в директорию Windows.

Улучшаем BAT-файлы

Вообще, оригинальный вывод содержит много лишнего, утилита выводит лишнюю строку, сообщая о том, что обрабатывает указанный файл, потом выводит хэш, где каждый байт хэш-суммы через пробел, а потом еще и уведомляет нас, что операция успешно завершена (нет, бля, мы не заметили):

N:\BatTest\win7\simple>certutil -hashfile MD5.BAT MD5
MD5 хеш файла MD5.BAT:
9b e2 27 09 ed 09 0a 23 9e 55 52 6b 44 04 a5 33
CertUtil: -hashfile - команда успешно выполнена.

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

1. Поскольку, язык BAT/CMD беден на операции со строками, нам придется скачать стороннюю, заимствованную из Linux утилиту awk, и добавить специальную команду, чтоб утилита оставила нам только вторую строку в выводе:

certutil -hashfile MD5.BAT MD5 | awk NR==2
b9 cb 1e 4b 57 f7 77 dd 67 ee a1 61 2e c4 32 20

Скачать утилиту awk для Windows можно здесь.

2. Удалить пробелы можно тоже с помощью awk:

awk "{ gsub(/ /,//); print }"

Весь батник целиком:

@certutil -hashfile %1 MD5|awk NR==2|awk "{ gsub(/ /,//); print }"

Вывод:

N:\BatTest\win7\ one-hash>MD5.bat MD5.bat
b310116e1fa1241e916717515212c1a01f116913e147144

Готовые .BAT-файлы на GitHub
SFX-архив (распаковывается в директорию Windows, awk в комплекте)

Windows XP и выше

В Windows XP утилиты certutil нет, потому придется пользоваться сторонними программами. Их множество, но, например, можно воспользоваться утилитой hash.exe

Она поддерживает хэш-суммы:

— MD5
— SHA1
— SHA256
— SHA512

Параметры запуска:

hash.exe <алгоритм> <путь_до_файла>

Например:

Hash.exe md5 Hash.exe

выдаст MD5-хэш самой hash.exe:

Hash.exe 126399821fc56f045cef5af1d09e832b

Утилита использует библиотеки OpenSSL (DLL есть в комплекте) для получения хэш-функций.

Внимание! Утилита дубовая от слова ой, Древние! Внутреннего хелпа у нее нет, на любые ошибки (нет параметров, параметры перепутаны местами, файл недоступен) она просто выдаст пустую строку в выводе.

Опять же, наделал батников (на GitHub)

И SFX-архив для ленивых (hash.exe и DLL в комплекте)

Как забэкапить макросы Notepad++ И как перенести макрос на другой комп.

Преамбула

Да, пока показывал школьникам ассемблер, записал пару макросов, которые создают шаблон программы, а то лень писать .386, model flat и т.д., но, поскольку, делал это в основном на своем компьютере, встал вопрос — а нельзя ли макросы перенести на другой комп, ну и забэкапить для верности. Оказывается, можно.

Backup

Бэкап делается просто. Макросы хранятся в файле C:\Users\<username>\AppData\Roaming\Notepad++\shortcuts.xml для Windows 7. В остальных системах ищите shortcuts.xml, а где он находится у вас — не ведаю.

Перенос

Если надо перенести макрос с одного компьютера на другой, открываем файл shortcuts.xml в любом текстовом редакторе.

Макросы находятся между XML-тегами <Macros> </Macros>, а конкретный макрос между тегами <Macro ...> </Macro> где, в первом, открывающем теге, указаны параметры макроса: имя (name=), и комбинация клавиш для вызова (Ctrl="no" Alt="no" Shift="no" Key="0").

Если необходимо перенести макрос с одного компьютера на другой, просто скопируйте строки, начинающиеся с <Macro name="ваш_макрос"> до </Macro> включительно, и вставьте макрос на целевом компьютере в файл shortcuts.xml между тегами <Macros> </Macros>

Примеры

Макрос для создания «болванки» исходника для TASM32 на PasteBin
Макрос для создания «болванки» исходника для TASM32 на GitHub

Макрос для создания «болванки» исходника для MASM32 на PasteBin
Макрос для создания «болванки» исходника для MASM32 на GitHub

Копия shortcuts.xml на mega.nz

Hello, world на 32-битном ассемблере (Windows x86).

Преамбула

Обещал сделать другу-школьнику, пусть тут описание валяется, не пропадать же.

Листинг

.386
.MODEL FLAT

	extrn	ExitProcess:proc
	extrn	MessageBoxA:proc
	
.DATA

	MSG_TITLE	DB	'Hello, world!',0
	MSG_MESSAGE	DB	'I am running!',0
	MB_INFORMATION	DD 40h

.CODE
Start:
	push	MB_INFORMATION		;Message box style (Icon - Information)
	push	offset MSG_TITLE	;Message box title
	push	offset MSG_MESSAGE	;Message box text
	push	0					;hwndOwner
	call	MessageBoxA
	
	push	0
	call	ExitProcess
end	Start

Что получилось

Начало

1. Прописываем директиву совместимого процессора .386 (больше и не надо), и модель памяти FLAT, стандартную для x86 PE исполняемых файлов.
2. Далее, экспортируем 2 функции WinAPI - ExitProcess, которая позволит программе корректно завершиться, и MessageBoxA, - функция вызовет стандартное диалоговое окно. Эти функции находятся в библиотеке IMPORT32.LIB (есть в комплекте TASM), так что они станут доступны программе на этапе линковки, а директива extrn показывает компилятору, что функции внешние, т.е. компилятор не будет ругаться, что не нашел их в исходнике при компиляции.

Примечание: Кроме функции WinAPI MessageBoxA, есть функция MessageBoxW, параметры у этой функции аналогичные, но используется она, если выводимый текст в кодировке UTF-16.

3. В секции данных (.DATA) определяем константы: MSG_TITLE и MSG_MESSAGE, содержащие, соответственно, строку заголовка и строку, содержащую текст в диалоговом окне. Строки должны оканчиваться символом с кодом 0 (,0)

Примечание: Не строковым символом "0", а нулевым байтом.

4. Также определяем четырехбайтовую (DD) константу, которая будет управлять поведением окна. В данном случае MB_INFORMATION, которой укажем значение 40h, что дополнит окно иконкой "Информация". Полный список констант, управляющих поведением окна, можно увидеть в источнике [1].

5. В секции кода (.CODE) ставим метку Start: (на самом деле, название может быть либо любым, либо зависеть от используемого компилятора, в TASM и MASM любое), это будет указывать компилятору на точку входа в нашу программу, т.е. говорить системе, откуда начинать выполнять код.
6. И ключевое слово end с именем той же метки, между этими конструкциями будет находиться код нашей программы. Поскольку, дополнительных внутренних функций в нашем HelloWorld'е не предполагается - этого хватит, описание функций выходит за рамки данного небольшого урока.

Вызов функции MessageBoxA

Описание функции есть в справочнике по WinAPI, где оно дано в C-подобном стиле:

int MessageBox(
  [in, optional] HWND    hWnd,
  [in, optional] LPCTSTR lpText,
  [in, optional] LPCTSTR lpCaption,
  [in]           UINT    uType
);

И во всех современных компиляторах ассемблера под Windows есть всякие удобняшки, типа готовых макросов, которые ускоряют написание кода, позволяют не париться с параметрами, не писать простыни кода, но, не позволяют осознать, как оно все на самом деле работает. Это или макросы в MASM или режим IDEAL в TASM. Впрочем, все нормальные ассемблеры должны уметь работать и с удобняшками, и без них. А поскольку, пример у нас маленький, то стоит как раз все показать и объяснить, без всяких удобняшек.

Функции WinAPI работают по единому стандартизированному принципу - они достают входные параметры из стека, а результат (конкретное значение или адрес, по которому следует взять данные) пишут в регистр EAX. Значение, возвращаемое функцией, нам в данном примере не понадобится, так что пока это опустим. Разберемся с параметрами.

Стек - это такой способ организации памяти, который работает по принципу "последний зашел, первый вышел". Т.е. стек можно представить, как стопку монеток (значения), которые находятся в баночке, чей диаметр соответствует размеру монетки, и туда можно за одну операцию или положить монетку, или достать только самую верхнюю. Т.е. последнюю положенную.

Запись в стек осуществляется командой push, извлечение из стека - командой pop.

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

push	MB_INFORMATION ;Стиль Message box  (Добавляем иконку "Информация")
push	offset MSG_TITLE    ;Заголовок Message box
push	offset MSG_MESSAGE 	;Текст в Message box
push	0				;ID Вызывающего окна - его нет, устанавливаем в 0.

Далее вызываем саму функцию WinAPI:

call	MessageBoxA

Теперь вызываем функцию, необходимую для корректного завершения программы. На вход она принимает только один параметр - код возврата. Мы ничего не делаем, кроме вывода MessageBox'а, так что отдадим стандартный код нормального завершения - 0.

push 0
call ExitProcess

Под конец, о консольном HelloWorld

Его здесь не будет, потому что написание консольного приложения под Win32, связано с тем, что всегда в определенный момент возникает в ассемблере - "много мелких, суетливых движений", как сказал классик по другому поводу. Написание консольного приложения под Windows усложнено, алгоритм там примерно такой:

1. Получить дескриптор стандартного устройства ввода-вывода
2. Проверить, доступен ли он программе.
3. Если недоступен, значит нас вызвали не из консоли, а из GUI, например, щелчком мыши.
4. Если 3 - неверно
5. Вывести текст на консоль
6. Если 3 - верно
7. Создать новую консоль, вывести текст, закрыть/освободить консоль.

MASM, в отличии от TASM умеет прописывать на этапе линковки флаг IMAGE_SUBSYSTEM_WINDOWS_CUI (3) в заголовок PE-файла, это показывает ОС, что приложение расчитано на консольную подсистему, что, в свою очередь, избавляет программиста от необходимости вручную открывать консоль и устраивать дополнительные проверки. Система откроет консоль за нас. Но вернемся к этому в другой раз.

Ссылки

1. MessageBox function
2. Исходник и откомпилированная версия на GitHub

Переключение раскладки на экранной клавиатуре Windows 7

По-прежнему, чиним деньгополдощательные терминалы и всякие прочие АРМ, потому понадобилось, заметка от склероза, чтоб не забыть, да и другим полезно будет.

Вызов экранной клавиатуры

Рассматриваем способы, как ее вызвать, если доступа к физической клавиатуре нет совсем.

1. ПУСК —> Все программы —> Стандартные —> Специальные возможности —> Экранная клавиатура
2. Добираемся мышекликом до экзешника: %windir%\system32\osk.exe

Где %windir% — каталог с установленной Windows (обычно C:\Windows).

Если надо вызвать программу с командной строки (для справки), то соответственно, команда: osk

Примечание: Экранная клавиатура, как и физическая, поддерживает только раскладки клавиатуры (языки ввода) установленные в системе, т.е., если русский язык, например, в системе не установлен совсем, то и переключиться на наго нельзя.

Способ №1

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

Способ №2

Щелкаем те же клавиши, которые установлены для переключения клавиатуры в системе, и не задерживаясь, нажимаем ту, с которой начали. Т.е. если переключение клавиатуры настроено на Alt+Shift, то на экранной клавиатуре жмем Alt, потом Shift (или наоборот, сначала Shift потом Alt), а потом возвращаемся к первой клавише, если первой нажимали Alt — нажимаем Alt второй раз, если первый раз нажимали Shift — второй раз нажимаем Shift.

Если в системе установлена комбинация Ctrl+Shift, действия аналогичны, только нажимаем соответствующие клавиши на экранной клавиатуре

Переключение раскладки:

Раскладка переключилась:

ТЕЛЕМАРКЕТ!

Если Windows XP внезапно упала в синий экран на более-менее современном компьютере.

Что делать, и как это порешать. AHCI —> IDE. Инструкция для и по просьбе заводского эникейщика.

Преамбула

На многих старых и надежных аппаратах (АРМ станков с ЧПУ, терминалах) вполне может быть установлена Windows XP, свои функции она выполняет, а специализированный софт, например, может не подо что другое не работать. Если вдруг ломается насмерть машина, обычно покупают компьютер, который совместим с XP, но рассчитан на более современную систему.

Но при некоторых условиях, совместимые с XP машины, могут все равно отправить при некоторых ситуациях XP в синий экран. Впрочем, восстановить запуск XP в некоторых случаях возможно без переустановки Windows, подправив настройки BIOS (UEFI).

Первопричина

Первое, что надлежит в таком случае проверить, это не слетел ли BIOS АРМ или встроенного компьютера к начальным настройкам. Если это так, то при загрузке на экране может появиться что-то типа:

CMOS Checkum error
...
Press F1 to Run SETUP
...


Крупный вариант

В данном случае сначала следует заменить батарейку CMOS, располагающуюся на материнской плате. Как это сделать для стандартного PC есть, например, в этом видео.

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

Примечание: Не забываем про ТБ! Все операции с разборкой системного блока и заменой батареи выполняем при отключенном от сети системном блоке! Видел в некоторых видео, что можно так не делать, так вот отключать от сети нужно всегда! Если случайно закоротите контакты, можно получить или BIOS, требующий перепрошивки, или вообще горелую материнку. Электричество, какое маленькое оно бы не казалось, безалаберности не терпит!

Причина падения XP

Если у более новых компьютеров обнулился BIOS/UEFI и возвратился к заводским настройкам, то, скорее всего, произошло переключение режима работы контроллера жесткого диска с IDE-совместимого в AHCI, AHCI в XP поддерживается с большим бубном, потому им обычно никто не заморачивается, если особо не надо, переключают контроллер в режим IDE-совместимости и телемаркет. А вот если контроллер переключится обратно сам, после возврата BIOS к заводским настройкам, то XP упадет в синий экран.

Переключение контроллера HDD в режим IDE-совместимости на примере ASUS UEFI BIOS

1. Заходим в BIOS, на главной странице выбираем Advanced Mode (или нажимаем клавишу F7)

2. В появившемся окне отвечаем OK:

3. Переходим на вкладку Advanced:

4. Выбираем SATA configuration:

5. Нажимаем ENTER и в появившемся меню выбираем IDE:

6. Сохраняем настройки и перезагружаемся (F10)

ТЕЛЕМАРКЕТ!

Установка Windows 7 на Lenovo ideapad 330-15AST

Преамбула

Купил б/у-шный ноут Lenovo ideapad 330-15AST (пока совсем непозднер, про запас), внутри у него неонка десятка, естественно, абсолютно насмерть тормозящая, почитал обзоры и вой на куче форумов, что Windows 7 на него установить невозможно, а Windows 10 тормозит чуть ли не с завода, решил попробовать, получилось почти все.

Не работает только тачпад. Как решить проблему, пока не знаю, но, скорее всего и не буду париться по этому поводу, т.к. есть USB-мышь.

Вход в BIOS/UEFI

Наименее геморройный этап установки, у меня получилось нормальным способом, нажимая F2 при загрузке. Если не срабатывает F2, можно попробовать Fn+F2, но если и это не сработает, значит применен дебильный ленововский способ попадания в настройки, вход через F2 залочен в прошивке, и надо найти кнопку Novo на левом боку ноута. Понадобится иголка или женская «невидимка», чтоб ее нажать, т.к. кнопка спрятана в отверстие, как Reset на роутерах.

Нажимать ее надо при выключенном ноуте, ноут должен включиться и вывалиться в специальное меню

Выбираем BIOS Setup и телемаркет!

У меня кнопка Novo была как на третьей картинке, но F2, слава Древним, не залочена.

Официальная инструкция на сайте Lenovo

Включение поддержки Legacy BIOS

Почему-то у некоторых не получилось даже это, хотя все делается довольно просто.

1. После попадания в BIOS идем в меню Security и отключаем AMD Platform Security Processor, т.е. устанавливаем этот пункт в Disable.

Да, фоткал на тапок.

2. Сохраняем настройки BIOS и перезагружаемся (F10)
3. Опять заходим в BIOS, переходим в меню Boot и устанавливаем первый пункт (Boot Mode) в значение Legacy Support и второй пункт (Boot Priority) в Legacy First.

Все должно выглядеть так, как на картинке выше, теперь можно менять загрузочные устройства как обычно, наплевав на попытки UEFI думать за пользователя и навязывать ему нафиг не нужную security-загрузку (секунда ненависти к хипстерам и копирайт-шлюхам из Lenovo и M$).

Ремарка про загрузку с USB

Загрузочное legacy вроде бы включено по умолчанию, так что грузиться с USB можно, но дальше все зависит от ОС, в DOS и Linux (во всяком случае в System Rescue CD не отключается, мышь и накопители видно) legacy не отключается, а вот Windows 7 (чистой) отключается. Так что если устанавливать с флэшки, то сначала надо подготовить жесткий диск и скопировать на него дистрибутив. Ниже расскажу.

Инструменты

— Какая-нибудь утилита для разметки (я использовал Boot CD Acronis Disk Director 12)
— Среда для копирования файлов (System Rescue CD (копия), для работы по сети, или дистрибутив Sergey Strelec (ISO, почитать, копия), если устанавливаемся с флэшек).
— Дистрибутив Windows 7 (если устанавливаемся с флэшек, заливаем на отдельную, или как архив/образ на одну из других)
Драйвер чипсета + USB 3.0 (копия)
— Driverpack Solution, желательно максимальной и полной версии.
Кумулятивные обновления Windows 7 от Simplix
— В каталог с дистрибутивом обновления желательно положить update.bat со следующим содержимым:

UpdatePack7R2-22.3.11.exe /IE11

где UpdatePack7R2-22.3.11.exe надо заменить на вашу версию скачанного файла.

Драйвер VGA (копия)
— Среда для запуска установки Windows 7 (я использовал WinPE multiboot от Sergey Strelec) (копия) Прямая ссылка на ISO

Примечание: В DriverPack почему-то нет не USB 3.0 для этой машины, не нормального драйвера видеокарты.

Примечание: Я устанавливал все с PXE-сервера, но с флэшек точно также, только надо много места (или много флэшек).

Установка

1. Надо очистить диск полностью и ре-инициализировать как MBR-диск (изначально он GPT).
2. Далее диск надо разделить, на расширенный несистемный раздел, куда будут скопированы файлы для установки: драйвера, обновления и сам дистрибутив Windows 7 и основной будущий системный раздел вначале диска, который потом надо будет удалить (все, что нужно, Windows 7 сама организует на пустом месте). Винде (пустому месту) я отдал 150 Гб, на остальном создал логический раздел, будущий диск D, на него потом можно грузить пользовательские файлы, или вообще перенести каталог Users, но это совсем другая история.

Стандартная схема разбиения диска перед установкой:

3. Копируем дистрибутив Windows, обновления и драйвера на созданный раздел (будущий диск D:). Я делал это прямо с сервера PXE, загрузившись в System Rescue CD, впрочем, можно сделать это с флэшек, жестких дисков, в сборке Win 7 PE от Sergey Strelec.

4. Загружаемся в Win7PE с диска Sergey Strelec и запускаем установку Windows 7 (скопированный ранее дистрибутив). Устанавливаем Windows на пустое место на HDD. Если в процессе установки (в загруженном Win7PE) вылезут окна, предлагающие отформатировать раздел или открыть его — немедленно отвечаем Нет, остальные всплывшие окна закрываем.

5. После первой перезагрузки грузимся с жесткого диска (вытаскиваем флэшки или выбираем пункт загрузки с HDD, если используется PXE).

Примечание: USB и тачпад на этом этапе не работают, так что все опции во время установки вводим с клавиатуры (для переключения между элементами управления используем TAB, клавиши управления курсором и ENTER).

6. Установка «чистой» Windows 7 завершена, но еще ничего не работает. При первой загрузке вы окажетесь без мыши, с одной клавиатурой.

7. Мышью (курсором) можно управлять с клавиатуры (копия)

8. Перед установкой всех драйверов, добираемся вышеуказанным способом до кумулятивных обновлений Simplix (заранее скачанных) и запускаем update.bat. Хз почему, но без этого нормально не встает чипсет.

9. После нескольких перезагрузок (при первой надо в окне нажать Да, остальные будут автоматически), можно продолжить установку.

10. Таким же образом (см п.7) добираемся до установки драйверов чипсета.

11. После установки драйверов чипсета (копия) и перезагрузки, для Windows 7 станут доступны порты USB и все подключенные к ним устройства, в т.ч. и внешняя мышь.

12. Запускаем DriverPack, переключаемся в Режим эксперта и устанавливаем только драйвер LAN (или LAN и WLAN, если вы устанавливали с флэшек).

13. Перезагружаемся, устанавливаем соединение с сетью.

14. После перезагрузки опять заходим в DriverPack, в Режим эксперта и обновляем, что предложат, чего не установлено — доустанавливаем. Кроме видеокарты, на драйвере VGA галочку снимаем, также отключаем весь раздел Драйверные утилиты

15. Установить драйвер видеокарты: официальный сайт Копия

Ссылки

— Boot CD Acronis Disk Director 12 — копирайтная, спрашивайте лично.
System Rescue CD
— Дистрибутив Windows 7 (копирайтный, даже не спрашивайте где скачать, сами ищите)
— AMD Chipset for на Lenovo ideapad 330-15AST: Драйвер чипсета + USB 3.0 (копия)
— Driverpack Solution (слишком большой, огромный, дам по запросу, запрос писать в телеграм).
Кумулятивные обновления Windows 7 от Simplix

Еще один классный виндовый мультизагрузочный образ WinPE

От некоего Sergey Strelets, походу украинского разработчика. Украинцы как-то серьезно вообще продвигались в виндохаках и обходе всяких микрософтовских ограничений, так что за это отдельная слава Украине!

Что в комплекте

— Win 8 PE X86
— Win 8 PE X64
— Win 7 PE X86
— Win 10 PE X86
— Другие варианты загрузки

Плюсы

+ Без геморроя грузится по PXE, что через обычный PXE, что через тот, который UEFI PXE
+ Во всех WinPE есть драйвера для USB 3.0, пока не нашел сбоев.
+ Из соответствующего PE можно запустить соответствующую установку Windows (т.е. из 7 — семерку (x86, x64), из 8 — Windows 8/8.1, 10 — десятку)
+ Спокойно размещается на флэшке, можно делать флэшку Rufus’ом

Минусы

— Дистрибутив довольно большой, по PXE грузится долго и надо не упустить момент, когда таки загрузится.
— В BIOS PXE грузятся только Win PE (все), остальные варианты загрузок могут выпасть.

Syslinux/PXE меню

LABEL win710pe
    menu label Windows 7-10 PE
    kernel modules/memdisk
    initrd distrib/windows/win710pe/win710pe.iso
    append iso raw

Скачать

ISO-образ с Mega.NZ

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

Вызов диспетчера устройств Windows из командной строки

Преамбула

Пост из серии спрашивали — отвечаем, в дополнение к предыдущему посту про управление мышью с клавиатуры (копия). На современных ноутах, куда еще можно загнать Windows 7 после установки не работает USB, поскольку оно 3.0, а драйвера в комплекте нет. Ищется оно хреново, и желательно посмотреть на VEN и DEV соответствующего устройства, да по кодам ищется лучше. Коды можно посмотреть в диспетчере устройств. Мышью, а особенно с клавиатуры, ковыряться в менюшках долго, так что есть более простой способ вызова диспетчера устройств из cmd или в Выполнить (Win+R)

Вызов диспетчера устройств Windows из командной строки

Для этого нужно использовать команду

devmgmt.msc

Работает для всех версий Windows, начиная с XP, т.е. Windows XP/7/8/8.1/10

Windows 7: управление мышью (курсором мыши) с клавиатуры

Включение режима управления курсором мыши

При стандартных настройках, которые включены по умолчанию после установки ОС, необходимо нажать комбинацию клавиш Alt + Shift + Num Lock. В появившемся диалоговом окне ответить Да, т.е. нажать Enter (кнопка Да выбрана по умолчанию).

Управление движением курсора мыши с клавиатуры

Далее, курсором мыши можно управлять с цифровой клавиатуры

8 — курсор движется вверх
2 — курсор движется вниз
4 — курсор движется влево
6 — курсор движется вправо

7 — курсор движется по диагонали вверх и влево
3 — курсор движется по диагонали вниз и вправо
9 — курсор движется по диагонали вверх и вправо
1 — курсор движется по диагонали вниз и влево

Чем дольше удерживать соответствующую клавишу, тем быстрее будет двигаться курсор.

Другие опции

5 — Аналогично одиночному щелчку левой клавишей мыши. Выбирается иконка или элемент управления, находящийся под курсором
5 и 5 (быстрое нажатие), происходит нажатие на элемент управления (аналогично двойному щелчку левой клавишей мыши)
5 и / — аналогично нажатию правой кнопкой мыши, вызову контекстного меню.

+ — Аналогично двойному щелчку левой клавишей мыши.

Отключение режима

Для отключения режима надо повторно нажать комбинацию клавиш Alt + Shift + Num Lock.

ЗЫ. Кому интересно, с чего вдруг мне понадобилось — добирался до внутренностей деньгопоглощающего терминала.

Подключение RAW образа диска в Windows

Преамбула

Захотел запилить еще пару образов DOS, как для себя, так и для дела, пока сижу на складе и ковыряю в носу, но линуксовый ноут оставил дома, так что встал вопрос, чем можно примонтировать RAW образ диска, т.е. тот, который создавался с помощью dd или fsutil в Windows.

Решение

Нашел программку OSFMount.

Плюсы:
+ Бесплатная
+ Поддерживает, кроме RAW-дисков, которые не поддерживает почти никто, еще и кучу других форматов (см. ниже).
+ Может смонтировать образ как RAM-диск
+ Можно создавать новые образы в RAM
+ Форматировать (некоторые форматы)
+ Увеличивать размер (некоторые форматы)
+ Подключать, как съемное устройство
+ Конвертировать одни форматы в другие (некоторые форматы)

Минусы
— Только Windows 7 и выше
— Если подмонтировать раздел диска из образа на ту же букву диска, где был ранее подмонтирован образ HDD из WMware, то откроется ранее подмонтированный диск WMware. Решение — монтировать на другую букву или перезагрузить винду.

Поддерживаемые форматы

Как смонтировать образ

1. Запускаем программу, заходим в меню File —> Mount new virtual disk… или жмем Alt+N.

2. Выбираем Image file [1]
3. Букву диска [3]
4. Drive type (тип диска) лучше оставить в Auto, он прекрасно определяет сам, но если вдруг перепутал (в редких случаях может спутать Floppy и HDD), то можно поменять
5. При необходимости снять галочку Read-only drive (только для чтения) [4] и поставить Mount as removable device… (смонтировать, как съемное устройство) [5]
6. Выбрать файл образа (нажать кнопку ) [2]
7. Если на образе есть разделы, программа их обнаружит, и предложит выбрать нужный:


Программа определит формат и нужные параметры, после нажатия ОК в предыдущем окне, диск будет смонтирован и появится в главном окне программы.

Открыть можно прямо отсюда, двойным кликом по строке в таблице, или нажатием клавиши Enter на соответствующей строке.

Вот мой минимальный образ DOS для загрузки по сети (PXE):

Размонтировать — кнопкой Dismount или клавишей DEL, выбрав в таблице подмонтированный образ.

Скачать

Официальная страничка программы, краткая инструкция (на буржуйском) и ссылки на скачивание
Версия x86
Версия x64
Версия x64 (последнее обновление) (я не тестировал)
Копия (все три инсталлятора) на Mega.NZ

Загрузочные дискеты Windows NT

Нашел и скопировал еще загрузочные дискеты Windows NT 4, впрочем, и сам образ скопировал, но выложить не могу, ибо копирайт.

На загрузочные/аварийные дискеты копирайт не распространяется, они бесплатные. Так что их можно.

Скачать все три аварийных дискеты Windows NT 4.0 в одном архиве с MEGA.NZ (RAR/IMG)

ЗЫ. Второй раз за день ошибаюсь в ссылке, Роскомнадзор, что-ли, порчу наводит…

Официальная родная загрузочная дискета от MS-DOS 7.1 (Windows 98 SE)

Нашел таки живую, физическую загрузочную дискету с DOS’ом от Windows 98 SE которая была в родном комплекте (диск+дискета), пришлось поковыряться, но слил оригинальный образ, благо все хранилось чуть ли не в вакуумной упаковке, так что снялось до последнего сектора без ошибок.

Часть конфигурационного файла SYSLINUX

Для загрузки образа по сети или с CD-диска.

LABEL winb98se
    menu label Boot floppy Win98se DOS image
    kernel modules/memdisk
    initrd distrib/dos/winb98se/winb98se.img
    append floppy

Скачать

Скачать образ дискеты с MEGA.NZ

Образ Windows 3.11 и Microsoft Office.

Некоторым образом готовимся к санкциям.
В интернеты пока не получилось выйти, но по локалке оно вроде соединяется. Хотя, конечно, для полного теста надо найти две 486-х машины, пока есть одна, и та 386-я, не нашел ISA-карты для нее, а второй — третий пень

Скачать образ с Mega.nz (IMG/GZip)

Запуск Windows 3.11 с Word и Excel

Преамбула

Один из юзеров lj.rossia.org намедни решил поностальгировать и поиграться с DOS’ом, и в это же время мне попался образ готовой системы с Windows 3.11, ну как образ — на самом деле это был бэкап установленной уже системы, но без, собственно DOS 6.22, зато в Windows уже был установлен Word, Excel и даже какая-то поддержка сети. Со всем этим, в свое время, ИРЛ я имел только шапочное знакомство, так что попытаюсь реанимировать старый бэкап.

Начальная настройка

Запустилось!

Дальнейшая настройка

Office работает!

Word:


Excel:


Остальное

Еще один браузер, работающий на Pentium III без SSE2

Продолжаем старую тему (копия)

Нашел еще одну старую версию браузера:

SRWare Iron — браузер, разрабатываемый немецкой компанией SRWare на основе исходного кода проекта Chromium. Основная причина его появления — факт отслеживания действий пользователя браузером Google Chrome[5]. SRWare Iron не осуществляет ничего подобного[6]. Iron использует последние версии WebKit и V8, в то время, как Google Chrome использует стабильные версии этих движков. Ещё можно отметить наличие у Iron функции блокировки рекламы (так называемый Ad-blocking).

Скачать

С Mega.nz
С Internet Archive

Остальные браузеры (на Mega.nz):
Ссылка 1
Ссылка 2