|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » Любой язык - Помогите написать скрипт Swiss File Knife (SFK) |
|
|
Любой язык - Помогите написать скрипт Swiss File Knife (SFK)
|
Новый участник Сообщения: 9 |
Добрый день, помогите кто разбирается в Swiss File Knife.
Требуется найти файл с определенным именем (файлов будет несколько штук во вложенных папках) Открыть его в Двоичном режиме и перейти к определенному смещению, Сравнить пару байт от этого смещения с определенной маской, если совпадают - то Записать с этого смещения содержимое другого файла (с известным именем, например File.tmp) Если содержимое не слвпадает с маской, то перейти к другому адресу и так же сравнить и если совпало - то Записать содержимое из файла File.tmp И так далее, пока не перезапишет каждый файл |
|
Отправлено: 11:46, 01-01-2017 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Vovusja, почему именно Swiss File Knife?
|
Отправлено: 13:21, 01-01-2017 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 9
|
Профиль | Отправить PM | Цитировать Был опыт написания Бат файлов в cmd,
Мне показалось что это похоже, и легче освоить. На самом деле разницы нет, просто другое не знаю. |
Отправлено: 17:31, 01-01-2017 | #3 |
Новый участник Сообщения: 9
|
Профиль | Отправить PM | Цитировать Готов отблагодарить.
|
Отправлено: 21:14, 01-01-2017 | #4 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата Vovusja:
$sSourceFolder = 'C:\Мои проекты\0036\Sample' $sSourceFileMask = 'Sample.exe' $sPatchFile = 'C:\Мои проекты\0036\Patch.bin' $iPosition = 0x100 $aByteTemplate = [System.Byte[]](0x0B, 0x02, 0x09, 0x00) $aBuffer = New-Object -TypeName System.Byte[] -ArgumentList $aByteTemplate.Length Get-ChildItem -Path $sSourceFolder -Recurse -File -Include $sSourceFileMask -Force |` ForEach-Object -Begin { $aPatchContent = [System.Byte[]](Get-Content -Encoding Byte -Path $sPatchFile) } -Process { Write-Host $_.FullName -ForegroundColor Yellow -NoNewline $oFileStream = $_.Open([System.IO.FileMode]::Open, [System.IO.FileAccess]::ReadWrite) try { $oFileStream.Seek($iPosition, [System.IO.SeekOrigin]::Begin) | Out-Null $oFileStream.Read($aBuffer, 0, $aByteTemplate.Length) | Out-Null if (([System.Collections.IStructuralEquatable]$aByteTemplate).Equals($aBuffer, [System.Collections.StructuralComparisons]::StructuralEqualityComparer)) { $oFileStream.Seek($iPosition, [System.IO.SeekOrigin]::Begin) | Out-Null $oFileStream.Write($aPatchContent, 0, $aPatchContent.Length) | Out-Null Write-Host "`tOk" -ForegroundColor Green } else { Write-Host "`tCan't find bytes template in file content" -ForegroundColor Red } } finally { $oFileStream.Close() } } |
||
Отправлено: 09:00, 02-01-2017 | #5 |
Новый участник Сообщения: 9
|
Профиль | Отправить PM | Цитировать Спасибо, если если заработает - отблагодарю.
|
Отправлено: 11:41, 02-01-2017 | #6 |
Новый участник Сообщения: 9
|
Профиль | Отправить PM | Цитировать Iska у вас превышен Лимит сообщений, хотел написать вам в Л.С.
|
------- Отправлено: 15:18, 04-01-2017 | #7 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата Vovusja:
|
|
Отправлено: 15:24, 04-01-2017 | #8 |
Новый участник Сообщения: 9
|
Профиль | Отправить PM | Цитировать Подскажите пожалуйста подробнее, что к чему в этом скрипте?
Если просто Поиск значеиния без Указания Адреса - так можно? |
------- Отправлено: 15:46, 04-01-2017 | #9 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата Vovusja:
Цитата Vovusja:
|
||
Отправлено: 16:01, 04-01-2017 | #10 |
|
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Помогите написать скрипт | MkZ | Программирование в *nix | 2 | 16-03-2014 11:02 | |
Помогите написать скрипт | DeGReeS | Microsoft Windows NT/2000/2003 | 12 | 01-06-2012 16:18 | |
FreeBSD - Помогите написать скрипт | Stirs | Общий по FreeBSD | 2 | 25-06-2008 02:29 | |
Помогите написать скрипт!!! | Sergei Antoshkin | Вебмастеру | 1 | 13-03-2003 18:22 |
|