<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Серый форум &mdash; CMD/BAT: патчер бинарных файлов]]></title>
		<link>https://forum.script-coding.com/viewtopic.php?id=2885</link>
		<atom:link href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=2885&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «CMD/BAT: патчер бинарных файлов».]]></description>
		<lastBuildDate>Sun, 05 Apr 2009 01:05:17 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: CMD/BAT: патчер бинарных файлов]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=21350#p21350</link>
			<description><![CDATA[<p><strong>Pat4_v3</strong><br />- <em>При использовании этой версии скрипта следует вводить реальный адрес смещения.</em><br />- Реализован механизм преобразования HEX-чисел без обращения к внешним программам, что заметно ускоряет процесс патча.<br />- Обновлена справка, удалены лишние условия и функции.<br />В прикрепленном архиве - конечный инсталлятор, который выполняет все необходимые функции (извлечение скрипта и добавление пункта &quot;Patch&quot; в контекстное меню проводника).<br />_<br />Благодарность <strong>alexii</strong> за помощь в разработке скрипта.</p>]]></description>
			<author><![CDATA[null@example.com (kiber_punk)]]></author>
			<pubDate>Sun, 05 Apr 2009 01:05:17 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=21350#p21350</guid>
		</item>
		<item>
			<title><![CDATA[Re: CMD/BAT: патчер бинарных файлов]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=20260#p20260</link>
			<description><![CDATA[<p>Пример использования.</p><p>Создайте ярлык к файлу cmd.exe<br />Выполним такую команду:<br /></p><div class="quotebox"><blockquote><p>PAT4.BAT cmd.exe.lnk 13c <strong>07</strong></p></blockquote></div><p>Ярлык теперь имеет параметр запуска &quot;свёрнутое в значёк&quot;<br />Потом такую:<br /></p><div class="quotebox"><blockquote><p>PAT4.BAT cmd.exe.lnk 13c <strong>03</strong></p></blockquote></div><p>Окно запускается развёрнутым.</p><p>такую:<br /></p><div class="quotebox"><blockquote><p>PAT4.BAT cmd.exe.lnk 13c <strong>00</strong></p></blockquote></div><p>Запуск уже происходит в режиме SW_HIDE.</p>]]></description>
			<author><![CDATA[null@example.com (kiber_punk)]]></author>
			<pubDate>Thu, 05 Mar 2009 05:34:02 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=20260#p20260</guid>
		</item>
		<item>
			<title><![CDATA[CMD/BAT: патчер бинарных файлов]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=20258#p20258</link>
			<description><![CDATA[<p>Скрипт должен с успехом работать во всех версиях Windows.</p><p>pat4.bat</p><div class="codebox"><pre><code>:: patcher v 1.0.3 by kiber_punk 
@echo off
CHCP 1251&gt;nul
set a=
set data=
set ext=

if &quot;%~1&quot;==&quot;/?&quot; (GOTO HELP)
if &quot;%~1&quot;==&quot;&quot; (GOTO file)
if not &quot;%~1&quot;==&quot;&quot; (echo File: %~nx1)

set newname=%~s1

rem ИМЕЕМ КОРОТКОЕ ИМЯ
:new
if &quot;%2&quot;==&quot;&quot; (GOTO address)
if &quot;%3&quot;==&quot;&quot; (GOTO byte)
if not &quot;%3&quot;==&quot;&quot; (GOTO go)

rem ВВОД АДРЕСА
:address
set /p a=Offset address (+100h), default - BOF:  
if &quot;%a%&quot;==&quot;&quot; (set a=100)
rem ВВОД БАЙТА
:byte
set /p data=Input byte for include, default ^&lt;00^&gt;:  
if &quot;%data%&quot;==&quot;&quot; (set data=00)

:go
rem переименовать чтобы исключить все возможные ошибки
ren %1 &quot;tmp.bin&quot;
rem задаём короткое имя в формате DOS
call :short &quot;%~dp1tmp.bin&quot;

CALL :WORK &quot;%newname%&quot; %2 %a% %data% %3 %4 %5 %6 %7 %8 %9

rem обратное переименование
ren &quot;%~dp1tmp.bin&quot; &quot;%~nx1&quot;

rem вывод информации
echo ...
echo Filename:    %~nx1
echo Address: %2 %a%
echo Byte:    %data% %3 %4 %5 %6 %7 %8 %9
echo ...
echo Press AnyKey...
pause&gt;nul
exit /b

rem ИНТЕРАКТИВНОЕ ЗАДАНИЕ ИМЕНИ
:file
set /p file=Enter filename:  
CALL :new %file%
exit /b

rem РАБОЧАЯ ЧАСТЬ
:WORK
echo e %2 %3 %4 %5 %6 %7 %8 %9&gt;patch.dbg
echo w&gt;&gt;patch.dbg
echo q&gt;&gt;patch.dbg
chcp 866&gt;nul
debug %~1 &lt; patch.dbg &gt;nul
del patch.dbg
exit /b

rem СПРАВКА
:HELP
    echo Used command line:  pat4 [^&lt;file^&gt; [address [byte]]] [/?]
    echo ...
    echo ^&lt;file^&gt;    - файл для обработки
    echo ^&lt;address^&gt; - адрес ввода байтов +100h ^(HEX^)
    echo ^&lt;byte^&gt;    - байт^(ы^) разделенные через пробел ^(HEX^)
    echo   Пример:
    echo ..
    echo ^&lt;pat4.bat file.exe 100 01 02 3c^&gt; - записывает в начало файла
    echo                           последовательность байт 01,02,3c
    echo ^&lt;pat4.bat file.lnk 13c 07^&gt;       - записывает байт 07 по адресу 3C&amp;echo ..
exit /b

:short
set newname=%~s1</code></pre></div><p>Для добавления пункта &quot;Patch&quot; в контекстное меню проводника необходимо скопировать скрипт в системную директорию и выполнить reg-файл:<br />pat4.reg</p><div class="codebox"><pre><code>REGEDIT4

[HKEY_CLASSES_ROOT\*\shell\Patch\command]
@=&quot;pat4.bat \&quot;%1\&quot;&quot;
[HKEY_CLASSES_ROOT\lnkfile\shell\patch\command]
@=&quot;pat4.bat \&quot;%1\&quot;&quot;</code></pre></div><p>За один проход скрипта можно вводить по 7 байт.<br />__<br /><a href="http://forum.script-coding.com/viewtopic.php?pid=20327">Обсуждение скрипта на форуме</a></p>]]></description>
			<author><![CDATA[null@example.com (kiber_punk)]]></author>
			<pubDate>Thu, 05 Mar 2009 04:33:31 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=20258#p20258</guid>
		</item>
	</channel>
</rss>
