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

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

Mr.Robot

Для начала давай разбёремся в том, что же такое 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) с твоим сообщением и кнопкой окк...