Описание и фишки batch файлов. — HackZona.Ru

Описание и фишки batch файлов.

Описание и фишки batch файлов.

Тип статьи:
Со старой ХакЗоны.
Посвящается новичкам
(Таким же как я))



Для начала давай разбёремся в том, что же такое batch'и. Прежде всего — это пакетные дос файлы, которые содержат в себе в ascii виде набор досовских команд. По-русски говоря, bat файл содержит в себе скрипт, интерпритатором служит command.com.
Поясняю: после прочтения этой статьи, ты сможешь писать проги, которые удаляют системные файлы, форматируют диски и тд. Главное, тебе для этого понадобится только блокнот и прямые руки, никаких компиляторов и дебагеров не требуется (бачи не такие примитивные, как тебе кажется — есть вирусыгенераторы, на них написанные).
И ещё. Я не буду описывать все возможные флаги(параметры) каждой команды, только наиболее полезные.
Ну чё, готов? Поехали!

Простые команды:
Для начала давай разбёремся в том, что же такое batch'и. Прежде всего — это пакетные дос файлы, которые содержат в себе в ascii виде набор досовских команд. По-русски говоря, bat файл содержит в себе скрипт, интерпритатором служит command.com.
Поясняю: после прочтения этой статьи, ты сможешь писать проги, которые удаляют системные файлы, форматируют диски и тд. Главное, тебе для этого понадобится только блокнот и прямые руки, никаких компиляторов и дебагеров не требуется (бачи не такие примитивные, как тебе кажется — есть вирусыгенераторы, на них написанные).
И ещё. Я не буду описывать все возможные флаги(параметры) каждой команды, только наиболее полезные.
Ну чё, готов? Поехали!
Простые команды:

echo off — запрещение вывода на экран исполняемых команд (on — вкл.)
deltree /y %файл% — удалить файл (/y означает «удалить без вопросов»). Кста, в НТ работает тока del (флаг /y не нужен).
copy %путьфайл% %кудафайл% — копировать файло
mkdir %название_диры% — создать директорию
echo %текст% — вывести текст на экран
echo %текст% > %путьфайл% — создать файл и вписать в него текст
echo %текст% >> %путьфайл% — добавить текст в уже существующий файл
if exist %путьфайл% %команда% — если существует файл, выполнить команду
attrib %атрибут% %путьфайл% — поставитьубрать атрибуты файлу (+-h скрытый, +-s системный, +-r только чтение)
start %путьфайл% — запустить файло
cls — отчистить экран
pause — выводит сообщение «Нажмите любую кнопку...»
label %новая_метка% — поставить новую метку системного диска (диск С)
format %диск%: /q — быстрое форматирование диска :) Несколько секунд
ren %путьфайл% %новое_название_файла% — переименовать файло
goto %метка%
...
...
...
:%метка% — перескoчить с одного места кода на метку.

Фишки, хитрости:
1: choice /N /T:y,%сек% > nul — типа таймера (на n секунд задерживает выполнение последующих команд).

2: %команда% > nul — запрещение вывода на экран самой команды и результата её действия (полезно при команде «copy»). Пример: copy c:some.exe %windir%some.exe > nul

3: regedit /s %путьфайл.reg% — добавить ключи в реестр из файла, без вопросов

4: start /m /w %путьфайл% — запустить файло в свёрнутом окне.

5: слышал про файл Autoexec.bat? Знаешь, что он грузится вместе с компом? Наверное, да. Так вот, он имеет расширение BAT. На что я намекаю? На то, что ты можешь в него прописать строчку, к примеру, «format C: /q» (прописывается она вот так: echo format C: /q >> c:Autoexec.bat) и во время перезагрузки у жертвы отформатируется диск С.
Это я к тому, что любой скрипт, вставленный в этот файл, будет выполнен при загрузке компа. Также можешь создать в каталоге с виндой файл winstart.bat. Он также запуститья виндусом.

6: это относиться как раз к фишке с Autoexec'ом. К примеру, если ты положишь в каталог windowscommand файл к примеру «load.bat» (наверное с плохим содержанием), это файлу из autoexec'a с вероятностью в 90% можно будет запустить строчкой «load». И это ещё отстой… Ты сможешь загружать это файло такой строчкой: «load keybrd32.sys,,cyrlat» или такой: «load VideoAdapter32.drv — By windows setup --». Врятли такие строчки рискнёт кто-нибудь удалять и твоё файло без трабл загрузится..=)

7: if exist c:Progra~1 set drv=c:
if exist d:Progra~1 set drv=d:
if exist d:Progra~1 set drv=e:
После выполнения этого скрипта в переменной %drv% будет прописан диск с Виндой, с Program Files'ами.

8: в переменной %windir% хранится каталог с виндусом в таком виде: диск: название_каталога. Пример: copy c:some.exe %windir%some.exe

9: batch скрипты не любят длинные, либо состоящие из двух слов, названия. Длинные урезаются до 6-ти букв (после них должно стоять "~1", к примеру «Program Files -> Progra~1»). Пробелы он просто убирает (The Bat -> TheBat~1).
Это я к тому, что в бачах обращайся к файлам по их досовским названиям. Пример: copy c:some.exe c:Progra~1some.exe (копируется файл в папку Program Files).

10: echo var WSHShell = WScript.CreateObject(«WScript.Shell»); > %temp%mes.js
echo WSHShell.Popup(«твой_текст»); >> %temp%mes.js
start %temp%mes.js
deltree /y %temp%mes.js

Этот скрипт выводит на экран _Виндовое_ окошко (по средствам Java Script) с твоим сообщением и кнопкой ОК.
Ну вот наверно и всё! Здесь я умолчал о переменных, циклах и создании меню в batch'ах, так как это довольно объёмные темы. Следующая статья будет как раз посвещена им.

echo off — запрещение вывода на экран исполняемых команд (on — вкл.)
deltree /y %файл% — удалить файл (/y означает «удалить без вопросов»). Кста, в НТ работает тока del (флаг /y не нужен).
copy %путьфайл% %кудафайл% — копировать файло
mkdir %название_диры% — создать директорию
echo %текст% — вывести текст на экран
echo %текст% > %путьфайл% — создать файл и вписать в него текст
echo %текст% >> %путьфайл% — добавить текст в уже существующий файл
if exist %путьфайл% %команда% — если существует файл, выполнить команду
attrib %атрибут% %путьфайл% — поставитьубрать атрибуты файлу (+-h скрытый, +-s системный, +-r только чтение)
start %путьфайл% — запустить файло
cls — отчистить экран
pause — выводит сообщение «Нажмите любую кнопку...»
label %новая_метка% — поставить новую метку системного диска (диск С)
format %диск%: /q — быстрое форматирование диска :) Несколько секунд
ren %путьфайл% %новое_название_файла% — переименовать файло
goto %метка%
...
...
...
:%метка% — перескoчить с одного места кода на метку.

Фишки, хитрости:
1: choice /N /T:y,%сек% > nul — типа таймера (на n секунд задерживает выполнение последующих команд).

2: %команда% > nul — запрещение вывода на экран самой команды и результата её действия (полезно при команде «copy»). Пример: copy c:some.exe %windir%some.exe > nul

3: regedit /s %путьфайл.reg% — добавить ключи в реестр из файла, без вопросов

4: start /m /w %путьфайл% — запустить файло в свёрнутом окне.

5: слышал про файл Autoexec.bat? Знаешь, что он грузится вместе с компом? Наверное, да. Так вот, он имеет расширение BAT. На что я намекаю? На то, что ты можешь в него прописать строчку, к примеру, «format C: /q» (прописывается она вот так: echo format C: /q >> c:Autoexec.bat) и во время перезагрузки у жертвы отформатируется диск С.
Это я к тому, что любой скрипт, вставленный в этот файл, будет выполнен при загрузке компа. Также можешь создать в каталоге с виндой файл winstart.bat. Он также запуститья виндусом.

6: это относиться как раз к фишке с Autoexec'ом. К примеру, если ты положишь в каталог windowscommand файл к примеру «load.bat» (наверное с плохим содержанием), это файлу из autoexec'a с вероятностью в 90% можно будет запустить строчкой «load». И это ещё отстой… Ты сможешь загружать это файло такой строчкой: «load keybrd32.sys,,cyrlat» или такой: «load VideoAdapter32.drv — By windows setup --». Врятли такие строчки рискнёт кто-нибудь удалять и твоё файло без трабл загрузится..=)

7: if exist c:Progra~1 set drv=c:
if exist d:Progra~1 set drv=d:
if exist d:Progra~1 set drv=e:
После выполнения этого скрипта в переменной %drv% будет прописан диск с Виндой, с Program Files'ами.

8: в переменной %windir% хранится каталог с виндусом в таком виде: диск: название_каталога. Пример: copy c:some.exe %windir%some.exe

9: batch скрипты не любят длинные, либо состоящие из двух слов, названия. Длинные урезаются до 6-ти букв (после них должно стоять "~1", к примеру «Program Files -> Progra~1»). Пробелы он просто убирает (The Bat -> TheBat~1).
Это я к тому, что в бачах обращайся к файлам по их досовским названиям. Пример: copy c:some.exe c:Progra~1some.exe (копируется файл в папку Program Files).

10: echo var WSHShell = WScript.CreateObject(«WScript.Shell»); > %temp%mes.js
echo WSHShell.Popup(«твой_текст»); >> %temp%mes.js
start %temp%mes.js
deltree /y %temp%mes.js
Этот скрипт выводит на экран _Виндовое_ окошко (по средствам Java Script) с твоим сообщением и кнопкой ОК.
Ну вот наверно и всё!
Нравится
Не нравится

14 комментариев

13:18
Молодей я блин тоже статью написал про bat вирусы
00:12
статья хорошая,но для таких ламеров как я.
80% инфы отсюда, месяц назад я копал по всему нету.
а тут наткнулся случайно...
23:41
все-таки кое что не получается
добавляю команды в autoexec при перезагрузке не хочет выполнять.может я что делаю не правильно?
21:42
Кто такой аккуратный писал, и кстати в autoexec.bat добавляй, не добавляй ничего не хочет делать
00:59
autoexec,bat - в ХР НЕ ПАШЕТ!!!! когда они уже это поймут?...=?
03:43
неграмотно :) "по средствам" - по каким таким средствам?
и нет команды for
14:48
похожее я видел на старом Античате
03:19
Не пашет autoexec.bat и хоть тресни!
V1S
11:11
кароче х.... статейка...
22:18
Есть отличная справка [полная] по cmd
Вот на него ссылка:

http://narod.ru/disk/8619547000/%D0%9A%D0%BE%D0%BC%D0%B0%D0%BD%D0%B4%D0%BD%D0%B0%D1%8F%20%D1%81%D1%82%D1%80%D0%BE%D0%BA%D0%B0.chm.html
22:23
Запустить BAT файл из реестра:
HKLM/SOFTWARE/Microsoft/Windows/CurrentVersion /Run
20:30
не оч статейка, для новичков не понятно, а профи и так знают...
20:30
не оч статейка, для новичков не понятно, а профи и так знают...
WWE
19:21
нормальная статья,молодец чувак