Как вы все наверное знаете в операционных системах «нового поколения» Windows 7 и Windows Server 2008 присутствует, по умолчанию, Windows PowerShell, сразу оговорюсь, в SP1 по умолчанию выключен.
PowerSell – средство автоматизации от Майкрософт. Включает в себя консоль и язык сценариев. Построен на базе Microsoft .NET Framework. В дополнение он предоставляет удобный доступ к COM, ADSI, WMI и позволяет удобнее администрировать систему.
Сегодня я попробую показать, как можно из текстовых файлов собрать, склеить, натуральный бинарный файл ( как засунуть текстовый файл через www – другая тема ). Конечно такой файл можно собрать используя debug.exe, но такой способ накладывает ограничения в 64Кб в размер для исполняемого файла. И в новых операционках симейства Windows такого инструмента как debug.exe более не присутствует.
Для примера возьмём исполняемый файл Bubbles.scr ( это заставка для виндос — мыльные пузыри, находится в c:\windows\system32 ). Сделаем из него текстовый файл, для этого в PowerShell напишем небольшой скрипт, прямо в командной строке:
PS > [byte[]]$hex=get-content -encoding byte –path c:\Temp\Bubles.scr
Эта строка позволяет считать каждый байт Bubbles.scr и сохранить его в массиве.
Следующая строка переводит байты в массив строк и пишет их в текстовый файл hexmy.txt
PS > [System.IO.File]::WriteAllLines(“c:\Temp\hexmy.txt”, ([string]$hex))
Теперь у нас появился текстовый файл вот такого вида:
Воссоздаём файл на целевом компьютере:
PS > [string]$hex=get-content –path c:\Temp\hexmy.txt
PS > [Byte[]] $temp=$hex –split ‘ ‘
Кладём его в самое хорошее место! 😉
PS > [System.IO.File]::WriteAllBytes( “c:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup\Bubbles.scr”, $temp)
При следующей загрузке наслаждаемся заставкой из пузыриков.