[윈도우 배치 파일 작성 기초]
** 배치 파일 작성 시 명령어에 대한 사용법이 궁금할 경우 도움말 활용
- [명령어] /? 또는 help + [명령어]
예) mkdir /? or help mkdir
c:\>mkdir /?
c:\>help mkdir
[CD]
디렉토리 변경
c:\>cd helloworld
c:\helloworld>
[ECHO]
ECHO : 화면에 작성한 메세지를 그대로 출력
- 화면에 내용을 보여주고자 할때 사용
c:\>echo hello
hello
- 배치파일 첫 줄에는 @echo off를 많이 사용
- @는 echo 기능을 off 한다는 뜻
- @echo off 미사용시 배치파일에 사용된 명령어들의 화면에 그대로 출력
[주석] : rem, ::
rem : remarks 의 약자로 주석처리 할때 사용
:: 을 두개 연속으로 사용해 주석처리
[리다이렉션] : > , >>
> : 명령의 결과를 파일로 저장, 파일의 내용이 있다면 덮어씀
>> : 명령의 결과를 파일에 추가, 파일의 이전 정보 삭제 없이 추가해서 저장
c:\>echo hello > test.txt
c:\>echo hello1 >> test.txt
[ESCAPE 문자] : ^
특수 문자를 포함시키고 싶을때 사용
c:\>echo hello >> test.txt
- 위의 경우 hello라는 문자열이 test.txt 파일에 포함되어 생성됨
c:\>echo hello ^>^> test.txt
- "^" 문자를 리다이렉션 ">" 표시앞에 추가하면 ">"를 일반 문자열로 인식
[경로 문제] : CALL
외부 프로그램을 호출할 경우 사용
윈도우 7에서는 UAC 기능이 켜져 있으면, 배차파일을 관리자 권한으로 실행하는 경우 명령 프롬프트 위치가 다음과 같음
c:\Windows\System32
배치파일 작성시 매번 첨부파일의 절대경로를 쓰는 일은 상당히 복잡하고, 실행위치가 달라질 수 있기 때문에 명령어가 실행되는 위치 기준으로 작성 필요
라이브포렌식의 경우 배치파일이 USB를 통해 사용되는 경우가 많아, USB가 인식되는 위치를 인식하게 할 필요가 있음
CALL
명령어는 다른 프로그램을 호출할 수 있는 명령어로 다음과 같은 구문을 사용가능하다.
C:\>CALL "%~dp0\test.bat"
여거서 "~dp0"는 반환되는 위치값을 결정하는 역할을 한다.
"%~d0" : 해당 드라이브값 반환, 예) C:
"%~p0" : 해당 배치파일이 실행되는 폴더값 반환, 예) \Windows\System32\
"%~0" : 해당 배치파일 전체 경로 및 파일/확장자 값 반환, 예) C:\Windows\System32\test.bat
[환경변수] : COMPUTERNAME, DATE,....
운영체제에 의해 정해진 변수들
%CD% : 현재 실행되고 있는 디렉토리
%COMPUTERNAME% : 호스트 컴퓨터 이름
%DATE% : 현재 날짜
%TIME% : 현재 시간
%HOMEDRIVE% : 루트 드라이브
%SYSTEMDRIVE% : C:\WINDOWS\SYSTEM32로 이동
%USERNAME% : 현재 유저이름
[타이틀] : TITLE
배치파일 실행시 콘솔에 표시되는 배치파일 제목 지정
TITLE 제목 입력
TITLE HELLO, THIS IS A BATCHFILE!
[콘솔 크기] : MODE
배치파일 실행 시 콘솔창 크기를 지정하는 용도로 사용 가능
MODE CON COLS=20 LINES=20
[콘솔 화면 색] : COLOR
배치파일 실행 시 콘솔 화면의 색을 지정 가능
COLOR 배경색+문자
COLOR F0 : 흰색 배경에 검정색 글씨
0 = 검정, 1 = 파랑, 2 = 초록, 3 = 옥색, 4 = 빨강, 5 = 자주, 6 = 노랑, 7 = 흰색, 8 = 회색, 9 = 연한 파랑, A = 연한 초록, B = 연한 옥색, C = 연한 빨강
D = 연한 자주, E = 연한 노랑, F = 밝은 흰색
[화면 지우기] : CLS
배치파일 실행 시 화면을 정리하고자 할때 사용 CLEAR SCREEN의 약자
CLS
[화면 일시 정지] : PAUSE
콘솔 화면을 일시 정지하고자 할때 사용하며, 배치파일 실행중 경고 또는 안내사항이 있을 경우 사용
PAUSE
[변수 지정] : SET
배차파일에서 변수를 지정하고자 할때 사용, 반복되어 나오는 프로그램 실행 경로등을 지정할 때 사용
변수는 대소문자를 구분
SET 변수 = 문자열
SET _PATH = %~DP0% : 현재 실행 폴더 경로를 PATH 경로로 저장
배치파일에서 변수를 호출할 경우 양쪽에 %를 붙여줌
ECHO %_PATH%
변수에 계산 결과를 할당하고자 할때는 /A 옵션을 주어야 함
SET /a Result = 3+5
변수에 사용자의 입력값을 저장하고자 할때는 /p옵션을 사용, C언어의 scanf 함수와 비슷한 기능
SET /p 변수명 = 보여주고자 할 문자열
SET /p name = 조사PC 사용자의 이름을 입력하세요 :
[반복문] : FOR
배치파일에서 반복해서 명령어를 실행하고자 할때 사용
<옵션 SYNTAX>
%~dI : 드라이브 문자 반환
%~pI : 경로만 반환
%~nI : 파일 이름만 반환
%~xI : 파일 확장자만 반환
%~sI : 숏파일이름을 포함한 경로 반환
%~aI : 파일의 속성 반환
%~tI : 파일의 날짜/시간 반환
%~zI : 파일의 사이즈 반환
[조건문] : IF
배치파일에서 조건문을 실행하고자 할때 사용
IF 문자열 1 == 문자열2 명령어
set name=examiner
if name==examiner echo correct!!
echo incorrect!!
[레이블 이동] : goto
배치파일에서 해당 레이블로 이동하고자 할때 사용
goto hello
:hello
echo hello
:hi
echo hi
[라이브 포렌식 배치파일 작성 실습]
1. 라이브 포렌식을 수행할 배치파일을 작성하시요.
- 휘발성/비휘발성 데이터를 수집할 수 있도록 작성
2. 수행 내역은 모두 로그로 저장하시요.
3. 조사 시작 시간과 끝 시간을 기록하시요.(각 조사대상별 시간 포함)
4. 조사대상별로 결과값이 저장될 수 있도록 폴더를 만들어 로그를 저장하시요.
5. USB에서 실행될 수 있도록 배치파일을 작성하시요.
'Kitri_NCS3기 보안과정 > 디지털포렌식' 카테고리의 다른 글
170621 NTFS - MFT Entry 속성의 종류별 분석 (0) | 2017.06.21 |
---|---|
170620 NTFS의 구조 (0) | 2017.06.20 |
170619 휘발성/비휘발성 정보 수집 (0) | 2017.06.19 |
170619 윈도우 시스템 분석 (0) | 2017.06.19 |
170512 컴파운드 파일 분석 (0) | 2017.05.12 |