Толик Панков
hex_laden
............ .................. ................
Page Summary

November 2020
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30

Back Viewing 0 - 20  
Подключение Riseup VPN в Windows XP



Приходится кое-где сидеть на старой машине с XP (хорошо, не с 2000), а безопасно посидеть в интернете хочется. Так что от склероза, и мало ли кому надо будет. Аналогичным образом можно подключить на XP и VPN от calyx.net

Подготовка


1. Необходимо установить OpenVPN для Windows XP:

Скачать с официального сайта:

- Версия x86 (32-разрядная)
- Версия x64 (64-разрядная)

Копии, на случай, если с официального сайта пропадет:

- Версия x86 (32-разрядная)
- Версия x64 (64-разрядная)

2. Далее, качаем конфиги:

Для Riseup:
- C Mega.nz
- C Google.Drive

Для Calyx:
- C Mega.nz
- C Google.Drive

3. Конфиги необходимо распаковать в каталог для файлов конфигурации OpenVPN (C:\Program Files\OpenVPN\config)

Получение ключей и сертификатов


Получение ключей для VPN сделано обычным BAT-файлом, без проверок fingerprint'а сертификата провайдера, а в wget, которым все и выкачивается, указан ключ --no-check-certificate, так что все это дело не сильно секурно.

1. Скачиваем архив с GitHub
На всякий случай копия на Google.Drive и Mega.nz

2. Распаковываем архив в отдельный каталог, пусть будет C:\GetKeys
3. Запускаем командную строку (Пуск --> Выполнить и вводим cmd)
4. Переходим в каталог:

С:
cd \GetKeys


5. Запускаем получение ключей.
Для Riseup:

getkeys.bat riseup.net

Для Calyx, соответственно:

getkeys.bat calyx.net

После того, как батник отработает, в C:\GetKeys образуется подкаталог data с подкаталогами провайдеров. Из C:\GetKeys\data\riseup.net надо скопировать в C:\Program Files\OpenVPN\config файлы cacert.pem и openvpn.pem для Riseup VPN, а для Calyx из C:\GetKeys\data\calyx.net те же файлы, переименовав их, соответственно как cacert_calyx.pem и openvpn_calyx.pem. Или можете отредактировать конфиг calyx-net.ovpn и задать там любые желательные имена.

Теперь можно запускать OpenVPN GUI, выбирать, щелкнув по иконке в трее, нужный конфиг, и соединяться.

Проверка


До соединения:


Riseup:



Calyx )

Это репост с сайта http://tolik-punkoff.com
Оригинал: http://tolik-punkoff.com/2020/01/12/podklyuchenie-riseup-vpn-v-windows-xp/

Tags: , , ,
Получение ключей и сертификатов для Riseup VPN и calyx.net в Windows.



Без использования клиента Riseup или Bitmask для Calyx.

Преамбула


Наскриптил тут утилитку, которая выкачивает ключи для Riseup VPN копия, а заодно уж и для calyx копия под Windows. Изначально писалось для XP, т.к. оказалось, что официальный клиент Riseup в XP не работает, а Calyx вообще использует Bitmask, которого для винды не предвидится.

Моя утилита тоже, как оказалось, не всегда работает в XP, но для XP я таки придумал, как выгрузить ключи и подключиться к Riseup, но об этом в другой раз.

Так что получилась такая утилита, чтобы подключаться к Riseup и Calyx не качая официального клиента. Пусть уж будет.

Порядок действий


1. Ставим OpenVPN
2. Качаем виндоконфиги:
Для Riseup:
- C Mega.nz
- C Google.Drive
Для Calyx:
- C Mega.nz
- C Google.Drive
3. Распаковываем конфиги в каталог конфигов OpenVPN (Обычно C:\Users\<имя_пользователя>\OpenVPN\config\).
4. Качаем утилиту отсюда и распаковываем в отдельный каталог. Она портабельная, никакой установки не надо.
5. Запускаем.
6. Выбираем в выпадающем списке провайдера.
7. Жмем на кнопку "Получить ключ пользователя" Если данных и сертификата провайдера нет, то программа сначала получит данные провайдера, а потом пользователя. Если данные провайдера есть, то обновится только пользовательский ключ.
Если в дальнейшем надо будет принудительно обновить данные провайдера, жмем кнопку "Обновить данные провайдера"

Примечание: Если надо добавить нового провайдера, то дописываем адрес без http://, https:// и www в файл providers.txt в подкаталоге data, по адресу на строку.

Должно получиться как на скриншоте:



8. Жмем кнопку "Сохранить ключи..." и сохраняем их в каталог с конфигами OpenVPN. Имена ключей для Riseup оставляем без изменений, а для Calyx сохраняем как cacert_calyx.pem и openvpn_calyx.pem. Или можете отредактировать конфиг calyx-net.ovpn и задать там любые желательные имена.

Репозиторий на GitHub

Это репост с сайта http://tolik-punkoff.com
Оригинал: http://tolik-punkoff.com/2020/01/11/poluchenie-klyuchej-i-sertifikatov-dlya-riseup-vpn-i-calyx-net-v-windows/

Tags: , ,
Полезные фишки в BAT/CMD файлах.

Выход из BAT-файла


exit /B

Ключ /B обязателен! Если использовать просто exit - закроется командный интерпретатор.

Проверка, пустая ли переменная


Можно использовать для проверки параметров в командной строке.

if "%~1"=="" (
	echo Use %0 ^<address^>
	echo Address must be without http://, https:// or www
	echo e.g. riseup.net
	pause
	exit /B
)


Запись вывода программы в переменную


Аналог VAR=`program` в bash.

for /f %%i in ('program') do set "API_URI=%%i"& goto f1
:f1


Пример:

for /f %%i in ('bin\jq .api_uri %WORKDIR%/provider.json') do set "API_URI=%%i"& goto f1
:f1


Источник

SetLocal и расширенная обработка команд


Статья на Киберфоруме Копия в PDF

Экранирование спецсимволов


В BAT/CMD файле некоторые символы (перенаправления > и <, конвейера |, символ &, указание переменной %) считаются специальными. Если символ должен быть включен в команду как символ, могут быть глюки. Перед символом нужно указать символ экранирования: ^ (крышку).

Пример:

echo Use batfile.bat ^<address^>

(выведет на экран Use batfile.bat <address>)

Источник Копия в PDF Там есть и другие полезные штуковины.

Удаление определенного символа из строки.


Например, надо удалить из переменной %VAR% все кавычки:

set VAR=%VAR:"=%

Источник Копия в PDF В источнике есть и другие примеры работы со строками.

Это репост с сайта http://tolik-punkoff.com
Оригинал: http://tolik-punkoff.com/2020/01/11/poleznye-fishki-v-bat-cmd-fajlah/

Tags: ,
OpenVPN для Windows XP



Последняя поддерживающая Windows XP версия OpenVPN это 2.3.18.

Please note that OpenVPN 2.4 installers will not work on Windows XP. The last OpenVPN version that supports Windows XP is 2.3.18, which is downloadable as 32-bit and 64-bit versions.

Скачать с официального сайта


- Версия x86 (32-разрядная)
- Версия x64 (64-разрядная)

Копии


- Версия x86 (32-разрядная)
- Версия x64 (64-разрядная)

Это репост с сайта http://tolik-punkoff.com
Оригинал: http://tolik-punkoff.com/2020/01/08/openvpn-dlya-windows-xp/

Tags: , , ,
Mozilla Firefox для Windows XP



Чтоб не пролюбилось, мало ли с официального сайта пропадет, а понадобится:

Firefox Setup 49.0.2

Firefox Setup 52.9.0esr

Это репост с сайта http://tolik-punkoff.com
Оригинал: http://tolik-punkoff.com/2020/01/04/mozilla-firefox-dlya-windows-xp/

C# Всплывающая форма над областью уведомлений, делаем сами.

Продолжаем разговор о своем окне, всплывающем возле области уведомлений, там где NotifyIcon. Как в тех же мессенджерах при появлении нового сообщения.

На самом деле все оказывается довольно просто, и даже Ктулху вызывать пользоваться WinAPI не надо.

На первом этапе моделируем будущую всплывающую форму. Я, например, создал форму без границ (FormBorderStyle = none), поместил на нее TextBox, который будет отображать сообщение и PictureBox, который будет работать в качестве кнопки закрытия формы.

На форму добавляем необходимые компоненты, которые отвечают за отображение информации и таймер (tmrAni), который будет отвечать за анимацию всплытия формы.

1. Заводим переменные, сохраняющие позиции формы:

private int StartPosX; private int StartPosY;

Ну я еще добавил переменную для сообщения и экспортировал функцию WinAPI, прячущую текстовый курсор:

[System.Runtime.InteropServices.DllImport("user32.dll")]
private static extern bool HideCaret(IntPtr hWnd);
public string MessageText = "";


Плюс настроил в инициализации формы некоторые ее параметры:

public frmPopup()
{
    InitializeComponent();
    //Настройка формы
    this.TopMost = false;
    this.ShowInTaskbar = false;
}


TopMost = false нужен, чтоб форма всплывала из-за области уведомлений, а не загораживала ее собой.

2. Переопределяем обработчик события Load и в нем прячем форму за экран:

protected override void OnLoad(EventArgs e)
{
    //Прячем форму за экран
    StartPosX = Screen.PrimaryScreen.WorkingArea.Width - this.Width;
    StartPosY = Screen.PrimaryScreen.WorkingArea.Height;
    SetDesktopLocation(StartPosX, StartPosY);
    base.OnLoad(e);
    //запуск анимации всплытия
    tmrAni.Interval = 50;
    tmrAni.Start();

}


Туда же можно вставить запуск таймера, который будет анимировать всплытие формы (после base.OnLoad(e)).

Если просто вставить этот код в обработчик события Load, то форма на секунду появится на экране, и будет некрасиво.

3. Далее в обработчиках событий Load и Shown настраиваем нашу форму, например, присваиваем TextBox нужный текст и т.д.

private void frmPopup_Load(object sender, EventArgs e)
{
    //настраиваем TextBox с сообщением
    txtMessage.Height = this.Height - txtMessage.Location.Y - 3;
    txtMessage.Width = this.Width - txtMessage.Location.X - 3;
    txtMessage.BorderStyle = BorderStyle.None;
    txtMessage.BackColor = this.BackColor;
    txtMessage.Text = MessageText;
    txtMessage.ReadOnly = true;
    txtMessage.SelectionStart = 0;

    //и кнопку закрытия
    int CloseX = this.Width - pbClose.Width - 3;
    int CloseY = 3;
    pbClose.Location = new Point(CloseX, CloseY);
}

private void frmPopup_Shown(object sender, EventArgs e)
{
    HideCaret(txtMessage.Handle);
}


3. При каждом срабатывании таймера поднимаем форму на 5 пикселей, а когда форма покажется полностью, то останавливаем таймер и делаем ее "поверх всех окон" (TopMost = true;):

private void tmrAni_Tick(object sender, EventArgs e)
{
    //поднимаем форму на 5 пикселей
    StartPosY -= 5;

    //Если окно видно полностью - останавливаем таймер
    if (StartPosY < Screen.PrimaryScreen.WorkingArea.Height - Height)
    {
        tmrAni.Stop();
        this.TopMost = true;
    }
    else
    {
        SetDesktopLocation(StartPosX, StartPosY);
    }
}


Вот, что получилось:



Код примера целиком


На GitHub

Это репост с сайта http://tolik-punkoff.com
Оригинал: http://tolik-punkoff.com/2019/10/17/c-vsplyvayushhaya-forma-nad-oblastyu-uvedomlenij-delaem-sami/

Tags: , ,
C# Всплывающая форма над областью уведомлений, над NotifyIcon

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

Вот, нашел вам готовый код. Выглядит вполне симпатично.



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

Потом расскажу, как самому сделать что-то подобное, пусть и не такое симпатичное.

Исходный код


У автора
У меня

Это репост с сайта http://tolik-punkoff.com
Оригинал: http://tolik-punkoff.com/2019/10/16/c-vsplyvayushhaya-forma-nad-oblastyu-uvedomlenij-nad-notifyicon/

Tags: , ,
EEE PC 2G SURF драйвера и программы



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

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

Скачать с mega.nz

Это репост с сайта http://tolik-punkoff.com
Оригинал: http://tolik-punkoff.com/2019/10/04/eee-pc-2g-surf-drajvera-i-programmy/

Установка PHP в любой каталог, а не только в C:\php

Заметка от склероза, как обычно.

1. Качаем PHP и распаковываем архив в нужный каталог. Пусть для примера будет D:\Software\php
2. Копируем свой php.ini в этот каталог, или php.ini-development переименовываем в php.ini
3. Находим в секции [PHP] параметр extension_dir и меняем его значение на D:\Software\php\ext
4. Создаем в подкаталоге php каталог tmp, для временных файлов PHP
5. В секции [PHP] находим параметр sys_temp_dir и меняем значение на D:\Software\php\tmp

extension_dir = "D:\Software\php\ext"
sys_temp_dir = "D:\Software\php\tmp"


PHP для Windows слэши в путях (прямой или обратный) не важны, правильно переваривается и тот и тот:

extension_dir = "D:/Software/php/ext"
sys_temp_dir = "D:/Software/php/tmp"


6. Раскомментируем нужные расширения, например:

extension=bz2
extension=fileinfo
extension=gd2
extension=gettext


7. Если в проекте планируется использовать cURL, то добавляем в переменную окружения PATH каталоги с php.ini (D:\Software\php) экзешником curl.exe и библиотекой php_curl.dll

Источники


1. Установка Apache 2.4VC14 + PHP 7 на Windows 7 ­- 10
2. Настройка curl php на Windows

Это репост с сайта http://tolik-punkoff.com
Оригинал: http://tolik-punkoff.com/2019/09/12/ustanovka-php-v-lyuboj-katalog-a-ne-tolko-v-c-php/

Tags: , ,
Автоматическое получение конфигов и пароля к VPN от vpnbook, теперь и для Windows.

По многочисленным просьбам зрителей, сделал римейк собственных недавних скриптов (копия копия), только теперь для Windows.
Написал небольшую программулину на C#, которая делает то же самое, что и вышеописанные скрипты.
- для распаковки ZIP-архивов использовал библиотеку DotNetZip, она же Ionic.Zip (копия)
- а для распознавания пароля на картинке, не мудрствуя лукаво, вызвал tesseract, естественно, версию под Windows.
Она в архиве с готовыми бинарниками самой программы, единственное, что может потребоваться, это поставить VCRedist для Visual C++ 2015

Скриншоты



Получение пароля


Остальные под катом )

Скачать


- Программу
- Библиотеки для работы tesseract:
- Visual C++ Redistributable for Visual Studio 2015 (c сайта Microsoft)
- vc_redist.x86.exe
- vc_redist.x64.exe

Исходники


На GitHub

Это репост с сайта http://tolik-punkoff.com
Оригинал: http://tolik-punkoff.com/2019/09/07/avtomaticheskoe-poluchenie-konfigov-i-parolya-k-vpn-ot-vpnbook-teper-i-dlya-windows/

Tags: , , ,
C#. Определить каталог пользователя.

Он же папка профиля пользователя, т.е., C:\Users\<имя пользователя>, например C:\Users\Tolik для пользователя Tolik.

Решение


Проще всего посмотреть в переменную окружения USERPROFILE:

Environment.GetEnvironmentVariable("USERPROFILE");

Для .NET Framework 4 и выше, путь к каталогу профиля пользователя добавлен в перечисление Environment.SpecialFolder под именем UserProfile. Таким образом, получить папку пользователя можно вот так:

Environment.GetFolderPath(Environment.SpecialFolder.UserProfile);

Пример


static void Main()
{
    string UserProfile = Environment.GetEnvironmentVariable("USERPROFILE");

    MessageBox.Show(UserProfile, "User profile folder path",
        MessageBoxButtons.OK, MessageBoxIcon.Information);
}


Пример на GitHub

Это репост с сайта http://tolik-punkoff.com
Оригинал: http://tolik-punkoff.com/2019/09/05/c-opredelit-katalog-polzovatelya/

Tags: , ,
NSIS: определение версии и архитектуры Windows

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

Отображение версии Windows


Для отображения версии Windows можно воспользоваться готовым кодом из NSIS wiki. На выбор предоставлены два скрипта: только для клиентских ОС и для клиентских и серверных. Для своих целей я пользовался вторым, правда в нем есть небольшой баг - клиентская Windows XP x64 определяется как Windows Server 2003:



Создаем отдельный пустой NSIS-скрипт, копируем туда код из wiki, и сохраняем в тот же каталог, где находится основной скрипт инсталлятора под любым удобным названием, например gvv.nsi.

В основном скрипте подключаем этот файл:

!include gvv.nsi

Далее вызываем GetWindowsVersion, записываем результат в переменную (например, в предопределенную $R0) и выводим результат:

${GetWindowsVersion} $R0
DetailPrint "Windows Version: $R0"


Выполнение кода, если обнаружена определенная версия Windows


Так сказать, "точное" определение версии. Применяется, когда надо выполнить определенные действия, например, в XP и только в XP, или в семерке и только в семерке.

Для этого в комплекте есть модуль WinVer.nsh, сначала подключим его:

!include WinVer.nsh

Далее используем if и один из макросов IsWin?, например IsWinXP, IsWin7, IsWin10:

${If} ${IsWinXP}
	DetailPrint "Is Windows XP"
${EndIf}


Определенная версия и выше


Применяется, когда нужно выполнять код, если версия ОС выше нужной или нужная.

В WinVer.nsh есть другой комплект макросов - AtLeastWin? (AtLeastWin7, AtLeastWin8, AtLeastWin10) которые также нужно использовать вместе с if. Например, следующий код сработает на "семерке" и всех последующих версиях Windows. В деталях установки отобразится соответствующее сообщение:

${If} ${AtLeastWin7}
	DetailPrint "Is Windows 7 or higher"
${EndIf}


Архитектура ОС


Для определения архитектуры ОС необходимо подключить модуль x64.nsh (также поставляется вместе с компилятором NSIS):

!include x64.nsh

Поддерживается определение архитектуры x86 (IsNativeIA32), PC (AMD) x64 (IsNativeAMD64) и ARM64 (IsNativeARM64) пример кода есть в самом файле x64.nsh :) Мне ARM была не нужна, поэтому пример кода на три строки короче:

${If} ${IsNativeAMD64}
    DetailPrint "System Architecture: x64"
${ElseIf} ${IsNativeIA32}
    DetailPrint "System Architecture: x86"
${Else}
    DetailPrint "Unsupported CPU architecture!"
${EndIf}


Скриншоты


Под катом )

Пример целиком


На GitHub

Источники


1. Get Windows version
2. Stackoverflow

Это репост с сайта http://tolik-punkoff.com
Оригинал: http://tolik-punkoff.com/2019/07/25/nsis-opredelenie-versii-i-arhitektury-windows/

Tags: , ,
NSIS: Hello, world.

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

Name "HelloWorld"
OutFile "helloworld.exe"

ShowInstDetails show
RequestExecutionLevel User

Section
	DetailPrint "Hello, world!"	
SectionEnd


Объяснение кода


Сначала пишем обязательную конструкцию Name и придумываем имя установщика, тут, естественно, "HelloWorld". Имя может содержать пробелы, оно будет отображаться в заголовках окон и окнах инсталлятора, а также попадет в список программ в "Программы и компоненты", в случае реального установщика.

Далее идет обязательная конструкция OutFile - файл установщика. Если его не прописать, то компилятор не будет знать под каким именем собрать программу установки и пошлет нас.

Следующим шагом (ShowInstDetails show) развернем окно с логом установки, как это было описано в предыдущей копия заметке.

Теперь запрашиваем запуск из под пользователя с ограниченными правами (RequestExecutionLevel User). Инсталляторы обычно запускаются с правами администратора, но в данном случае мы ничего не устанавливаем, и нажимать лишний раз кнопку в окошке UAC не нужно.

Далее необходимо завести хотя бы одну секцию. Если в скрипте не будет хотя бы одной секции - компилятор прервет работу. Организуем единственную секцию без названия.
Section
	[ТУТ БУДЕТ КОД]
SectionEnd


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

Внутри секции пишем сообщение, выводящее заданный текст в окошко с логом (деталями установки):

DetailPrint "Hello, world!"



О редакторах кода для NSIS


На самом деле выбора не так, чтобы много, но какой-никакой есть. На официальном сайте предлагают пользоваться Eclipse и плагином к нему, но у меня на Клипсу, wim и TeX стойкая аллергия еще со студенческих времен.
Есть плагин для Visual Studio, но написан он китайцами для китайцев, так что нафиг. Впрочем, может есть и нормальные плагины, но я не нашел. Сам пользуюсь пожилой средой Venis IX, там есть мастер для генерации простых установщиков, которого вполне хватает, чтоб постоянно не писать одно и то же, создавая новый инсталлятор.

Исходник


На GitHub

Это репост с сайта http://tolik-punkoff.com
Оригинал: http://tolik-punkoff.com/2019/07/19/nsis-hello-world/

Tags: , ,
NSIS: Открыть окошко с логом установки (Show details) по умолчанию

Если ничего не делать, детали установки по умолчанию скрыты:



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

1. В коде скрипта, до секций прописываем команду:

ShowInstDetails show

Окошко с логом (деталями установки) будет открыто



2. Прописать внутри секции команду:

SetDetailsView show

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

Section Uninstall
	
	SetDetailsView show
	
	[..]
	[..]

SectionEnd




Это репост с сайта http://tolik-punkoff.com
Оригинал: http://tolik-punkoff.com/2019/07/19/nsis-otkryt-okoshko-s-logom-ustanovki-show-details-po-umolchaniyu/

Tags: , ,
Переделал автоматический инсталлятор для Devcon. Или куча ворчания.

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

Предыдущий я сделал на Inno Setup, но Inno Setup оказался той еще заразой, нихрена он версию Винды толком определить не мог, и тихой сапой подкладывал во все винды один и тот же devcon, который подходит для Windows 7 и выше. От чего у клиента с виндой XP x64 произошел адский баттхерт, так, что забрызгало пол-Петербурга, аж до моей деревни брызги долетели. Видимо, клиент меня проклял, потому что мне на ногу упал топор (слава Ктулху обухом), у меня упали форточки, точнее форточка, но стеклянная и на пол, ко мне какого-то черта приперлась лесная охрана и стала [РОСКОМНАДЗОР], и я после этого [РОСКОМНАДЗОР] в результате, теперь страдаю [МИНЗДРАВ].

Новый сделал на NSIS, но как оказалось - NSIS тоже [РОСКОМНАДЗОР], точнее, не сам NSIS, он мне как раз понравился, за исключением одного странного недокументированного глюка, о котором как-нибудь расскажу, и скрипт-язык, вполне себе такая помесь Бейсика с Башем. А вот документация, это, товарищи, лютый [РОСКОМНАДЗОР] в последней стадии.

Русский мануал к популярному инсталл-мэйкеру писали сто лет назад какие-то [ДАННЫЕ УДАЛЕНЫ] с OSZone.net, еще и назвали свое творение "справочником", хотя что-что а справочники так не делают. Просто плохо структурированные статьи, которые на [РОСКОМНАДЗОР] запихнули в chm-файл. [РОСКОМНАДЗОРКА], поучитесь у того же Исзелиона с wasm.ru, как нужно делать справочники и мануалы. На туториале Исзелиона сотня-другая студентов если не аспирантами стали, так свой зачет по ассемблеру точно получили. Аффтар еще и жалуется на форуме, типа, "ну на[РОСКОМНАДЗОР] обновлять мануал, если его никто не читает, и очевидные вопросы задает". Так [РОСКОМНАДЗОРКА], [РОСКОМНАДЗОРКА], ты так написал этот мануал, что кошка [РОСКОМНАДЗОРОМ] по клавиатуре лучше напишет. Но ладно, я много захотел, русского мануала. Да, согласен. Но теперь "поговорим о влажности в номере", точнее об оригинальной вики от разработчиков.

Оригинальная вики тоже [РОСКОМНАДЗОРНЫЙ], [РОСКОМНАДЗОР] твою мать, [РОСКОМНАДЗОР]. Причем, я вполне себе уверен, что там есть все описания функций языка NSIS, вот только отдельной категории для списка функций нет. Функции потом ищутся гуглем, который выводит на страницу-сироту с вполне нормальным описанием, но [РОСКОМНАДЗОР] знает, почему на эту страницу нельзя попасть из самой вики. В навигации [РОСКОМНАДЗОР] не валялся, в общем без стакана не разобраться. А еще пишут, что "хорошо документированный продукт". Документирован он может и хорошо, но найти в документации что-то конкретное, это как в ГОРФ пойти к чиновнику: "вы мне справку ЕПРСТ-1488 принесли, а надо было ЖПЧШЦ-666", и [РОСКОМНАДЗОР] знает где это написано.

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

Впрочем, инсталлер сделал:

Скачать с Mega.nz
С GitHub
Исходник (файлы devcon_all.nsi и gvv.nsi)

Это репост с сайта http://tolik-punkoff.com
Оригинал: http://tolik-punkoff.com/2019/07/18/peredelal-avtomaticheskij-installyator-dlya-devcon-ili-kucha-vorchaniya/

Устранение ошибки драйверов USB 3.0 при установке Windows 7 с флэшки с помощью установщика Windows 8

Преамбула


При установке Windows 7 на компьютер с USB 3.0 можно столкнуться с ошибкой "Не найден необходимый драйвер для дисковода оптических дисков.", на самом деле, дисковод оптических дисков тут не при чем, особенно, если установка производится с загрузочной флэшки с дистрибутивом "семерки". В Windows 7 и его установочном окружении просто нет драйверов для контроллеров USB 3.0.



Самый простой вариант, когда в BIOS/UEFI удается переключить USB-контроллер в legacy-режим. Но на многих системах это самое legacy реализовано весьма коряво. Например, live-дистрибутивы Linux могут в таком режиме видеть и контроллер, и подключенные накопители, а вот установщик Windows 7 (и сама винда) нет.

На днях попался такой ноутбук, в котором примерно так и получалось, и вот, хочу рассказать об интересном способе это побороть.
Конечно, можно поступить стандартно - создать отдельный дистрибутив для такого компьютера, внедрив нужные драйвера, или же скачать какую-нибудь "колхозную" сборку. Но есть и другой способ - воспользоваться установочным окружением от Windows 8/8.1 в котором драйвера для USB 3.0 есть.

Минус способа - в установленной Windows 7 драйвера для USB 3.0 будут отсутствовать, как, наверняка, и драйвера от сетевой карты, и возникнет проблема, как их туда затолкать.

В источнике есть способ сделать это с помощью консоли восстановления с получившейся флэшки, у меня же получилось еще проще. Кривое ноутбучное legacy поддерживалось Linux'ом с System Rescue CD, так что на этом моменте я останавливаться не буду.

Что понадобится


1. Образ установщика Windows 7
2. Образ установщика Windows 8/8.1
3. Флэшка :)

Как сделать


1. Закатываем на флэшку дистрибутив Windows 8/8.1, например, с помощью программы Rufus, особых подробностей я рассказывать не буду, но я сначала переключил UEFI ноута в режим Legacy BIOS (хоть он работал нормально и, главное, был), снес б-гмерзкое GPT, а потом установил в Rufus "Схема раздела и тип системного интерфейса" в значение "MBR для компьютеров с BIOS или UEFI".



2. Итак, у нас получилась флэшка с Windows 8/8.1, переходим на нее, заходим в каталог sources и удаляем оттуда файлы install.wim и/или install.esd.
3. Теперь из образа Windows 7 вытаскиваем файл install.wim (он тоже лежит в подкаталоге sources образа). Если у вас образ AIO, т.е. "все в одном", образ, из которого можно установить сразу несколько версий Windows, например, Starter, Home и Professional, то необходимо из образа Windows 7 вытащить файлы sources/*.clg, например, install_Windows 7 Home Basic x64.clg, install_Windows 7 Home Premium x64.clg и т.д. Также можно попробовать скопировать папку $OEM$, но не везде срабатывает, т.е. иногда конкретный дистрибутив может ее проигнорировать.
4. Теперь копируем все, что вытащили из дистрибутива Windows 7 в каталог sources на флэшке.
5. ФАНФАРЫ!

Примерное объяснение, как все это работает.


Загрузчик установщика Windows современных версий сначала загружает файл boot.wim, который представляет из себя хитрый архив (виртуальный диск, наподобие initrd в Linux), содержащий необходимые для процесса установки драйвера, основные файлы и саму программу-установщик. Далее окружение предустановки ищет дополнительные компоненты на диске с boot.wim, в частности install.wim, виртуальный диск с файлами операционной системы, которая должна быть установлена. Тут мы просто оставили предустановочное окружение, подсунув ему ОС другой версии.

Источник


1. Как избавиться от ошибки "Не найден необходимый драйвер для дисковода оптических дисков” при установке Windows 7

Это репост с сайта http://tolik-punkoff.com
Оригинал: http://tolik-punkoff.com/2019/07/11/ustranenie-oshibki-drajverov-usb-3-0-pri-ustanovke-windows-7-s-fleshki-s-pomoshhyu-ustanovshhika-windows-8-8-1/

Включение и отключение сетевой активности с помощью DEVCON.EXE

Преамбула


Когда-то давно в этом блоге упоминалось про замечательную консольную утилиту devcon от Microsoft, это консольный аналог "Диспетчера устройств", причем бесплатный и с открытым исходным кодом.
В прошлый раз мы находили и включали/отключали конкретную сетевую карту. В этот раз будем искать все сетевые устройства, а также массово включать и отключать всю сетевую активность на локальной машине.

Получение списка всех сетевых устройств


devcon.exe findall =net

Команда найдет и выведет на экран все сетевые устройства, включая виртуальные адаптеры, например, TUN/TAP от Openvpn или виртуальные адаптеры VMWare, а также те устройства, которые в данный момент не активны (отключены, или у них нет драйверов).

devcon.exe find =net

Выводятся только активные устройства.

Пример вывода devcon.exe findall =net:



Отключение всей сетевой активности


devcon.exe disable =net

Включение сетевой активности


devcon.exe enable =net

Внимание! devcon необходимо запускать с админскими правами!

Скачать набор devcon'ов


devcon'ы входят в разные пакеты SDK, отличающиеся гигантским размером. Я тут подобрал разные версии devcon'ов для разных ОС в одном архиве, ну и плюс батники для включения/отключения сети.

Содержимое архива:
batchfiles - пакетные файлы для включения и отключения сетевой активности
с помощью devcon, а также для получения списка сетевых устройств.

x64 - devcon для Windows7-10 для 64-разрядных версий Windows.
x86 - devcon для Windows7-10 для 32-разрядных версий Windows.
XP\x64 - devcon для Windows XP 64-разрядной, работает только в WinXP x64.
XP\x86 - devcon для Windows XP 32-разрядной, работает в WinXP x32 и,
возможно, в Win Vista x32.

Скачать с Mega.nz (ZIP)
Автоматический установщик

Источники


DevCon - диспетчер устройств в командной строке Windows.

Это репост с сайта http://tolik-punkoff.com
Оригинал: http://tolik-punkoff.com/2019/07/05/vklyuchenie-i-otklyuchenie-setevoj-aktivnosti-s-pomoshhyu-devcon-exe/

C#: Определение версии, названия, сервис-пака и архитектуры Windows.

Преамбула


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

Подробности под катом )
Исходники


Класс VersionDetect.cs
Весь пример целиком

Источники


Win32_OperatingSystem class
Тема на Киберфоруме
Вопрос на stackowerflow

Это репост с сайта http://tolik-punkoff.com
Оригинал: http://tolik-punkoff.com/2019/07/05/c-opredelenie-versii-nazvaniya-servis-paka-i-arhitektury-windows/

Tags: , ,
Интерактивный скрипт, устанавливающий Syslinux

А так же ISO-образ Acronis True Image и Puppy Slacko.

Преамбула


Попросили превратить мою заметку про то, как можно пользоваться Acronis True Image без его акронисовского "восстановления при загрузке", превратить в интерактивный скрипт, который делает все то, что описано в заметке, но сам, задавая пользователю наводящие вопросы.

Сделал, чо. Правда, скрипт, наверняка, дичайший быдлокод, но работает без ошибок. Единственное что, предварительно надо создать основной раздел ext2/ext3 на жестком диске, и он должен идти первым. Потом установить винды, сделать линуксовый раздел активным, а потом уже запускать скрипт со всеми потрохами.

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

Основная заметка


Эмуляция восстановления при загрузке Acronis True Image с помощью syslinux/extlinux Копия

Список заметок по теме


1. Создание списков (из файлов в каталоге) Копия
2. Простой интерактив в bash-скриптах (запрос Y/N и запрос строки) Копия
3. Простой интерактив в bash-скриптах (меню, списки) Копия
4. Проверка, установлен ли флаг раздела "активный" Копия
5. Определение файловой системы раздела диска в Linux Копия
6. Поиск загрузчика Windows Копия
7. Получение MBR ID и номера раздела, для передачи управления другому загрузчику Копия
8. Число или строка в переменной BASH Копия

Скрипт и готовые "пакеты" с Syslinux и модулями


На GitHub

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

Это репост с сайта http://tolik-punkoff.com
Оригинал: http://tolik-punkoff.com/2019/06/22/interaktivnyj-skript-ustanavlivayushhij-syslinux/

Удаление кривого активатора ODIN.

Преамбула


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

Простой способ (который не сработал)


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

del "%windir%\system32\drivers\oem-drv64.sys"
del "%windir%\system32\xNtKrnl.exe"
del "%windir%\system32\xOsLoad.exe"
del "%windir%\System32\ru-RU\xOsLoad.exe.mui"
del "%windir%\System32\en-US\xOsLoad.exe.mui"
%windir%\system32\bcdedit.exe /set {current} path \Windows\system32\winload.exe
%windir%\system32\bcdedit.exe /deletevalue {current} kernel
%windir%\system32\bcdedit.exe /deletevalue {current} nointegritychecks
%windir%\system32\bcdedit.exe /deletevalue {current} custom:26000027
reg delete HKLM\SYSTEM\CurrentControlSet\services\oem-drv64 /va /f


Кому-то может и поможет, но мне не повезло, файлы активатора не удалились, reg delete не сработал, потому я просто нашел в дистрибутиве их виды "автоматический установщик" активатора, и просто провернул последовательность действий в обратном порядке.

Удаление параметров Реестра и конфигурации загрузчика


Получился такой вот CMD-файл
В каталоге с этим батником должен быть подкаталог data, со следующим содержимым:
1. Утилита SetACL.exe, которая будет менять права доступа к ключам Реестра, и восстанавливать их после редактирования. Утилиту взял из того же дистрибутива.
2. Утилитка sleep, но это так, для красоты, моя прихоть.
3. Файлы Реестра (*.reg) для x86 и x64 ОС, в которых прописано, какие ключи удалять anti-oem-drv64.reg anti-oem-drv86.reg

Далее я сделал RAR-SFX с таким сценарием:
;Расположенный ниже комментарий содержит команды SFX-сценария

Setup=Deactivator.cmd
TempMode="Удалить активатор?","Деактиватор"
Silent=1
Overwrite=1

И поставил галочку в дополнительных параметрах SFX, на запрос административного доступа.

Удаление файлов активатора


После перезагрузки можно удалить файлы активатора, таким вот CMD-файлом.

@ rem echo Этот файл должен быть запущен с правами администратора и после выполнения Deactivator'а
@ rem echo Чтобы окончательно удалить следы активатора нажмите любую клавишу, иначе CTRL+C!
@ rem pause


DEL "%windir%\system32\drivers\oem-drv64.sys"
DEL "%windir%\system32\xNtKrnl.exe"
DEL "%windir%\system32\xOsLoad.exe"
DEL "%windir%\System32\ru-RU\xOsLoad.exe.mui"
DEL "%windir%\System32\en-US\xOsLoad.exe.mui"
DEL "%windir%\system32\drivers\oem-drv86.sys"

@echo "Clean complete."
@pause


И SFX-сценарий к нему:

;Расположенный ниже комментарий содержит команды SFX-сценария

Setup=Cleaner.cmd
TempMode="Выполняйте только после исполнения Deactivator'а, если хотите окончательно удалить следы активации","Окончательная очистка"
Silent=1
Overwrite=1


Скачать


1. Deactivator.exe
2. Cleaner.exe

Репозиторий на GitHub

Большая статья о механизмах активации Windows 7

На Rutracker.org Копия в PDF

Это репост с сайта http://tolik-punkoff.com
Оригинал: http://tolik-punkoff.com/2019/06/21/udalenie-krivogo-aktivatora-odin/

Back Viewing 0 - 20