2016년 1월 26일 화요일

Encase Grep 명령어

심볼(Symbol)의미(Meaning)
 .하나의 문자로 어떤 문자가 와도 상관없다.
 #어떤 숫자가 와도 상관이 없다는 의미로 [0-9]와 동일한 의미이다. 예를 들어, "###-####-####" 는 "010-1234-5678" 과 같은 휴대전화번호 패턴을 의미한다.
 [abc] 이것은 []안의 어떤 문자가 와도 상관없다는 의미이다. 예를 들어, "[ck]orea"는 "corea", "korea" 문자를 모두 포함한다는 의미이다.
 [^abc] 이것은 위의 심볼과 반대적인 의미로 []안의 어떤 문자도 와서는 안된다는 의미이다. 예를 들어, "[^ck]orea" 는 "corea", "korea"는 포함하지 않는다는 의미이다.
 [a-z] 이것은 알파벳 "a ~ z" 사이의 어떤 문자가 와도 상관이 없다는 의미이다. 만약, "[a-f]"라고 표기한다면 "a ~ f" 사이의 어떤 문자가 와도 상관없다는 의미이다.
 x01 이것은 16진수 표기법을 나타낸다. 문자로는 나타낼 수 없는 백스페이스(x08), 탭(x09) 와 같은 값을 표기할 때 사용한다.
 w0123 이것은 유니코드를 나타내는 것으로 유니코드 표에 나타나는 4자리 정수로 표현해야 한다.
 (abc) 이것은 문자의 그룹을 나타내는 것으로 항상 연속적으로 존재해야 한다. 예를 들어, "(korea)" 라면 각 단어가 연속되어 있는 "korea" 라는 단어를 찾게 된다.
 ? 이것은 어떤 문자가 0번 또는 1번 표현될 수 있다는 의미이다. 예를 들어, "##?/##?/####" 표현식은 "01/01/2008" 또는 "1/1/2008" 을 포함한다.  
 * 이것은 어떤 문자가 0번 이상(0 포함) 표현될 수 있다는 의미이다. 예를 들어, "pro,*neer" 표현식은 "proneer", "pro,neer", "pro,,neer", "pro,,,neer" … 을 모두 포함한다.
 + 이것은 어떤 문자가 1번 이상(1 포함) 표현될 수 있다는 의미이다. 예를 들어, "pro,*neer" 표현식은 "pro,neer", "pro,,neer", "pro,,,neer" … 을 모두 포함한다.
 abc{X,Y} 이것은 어떤 문자나 단어가 X번 이상, Y번 이하로 표현될 수 있다는 의미이다. 예를 들어, "abc{3,7}" 은 c 문자가 ab 다음에 3~7 번 연속으로 올 수 있다는 의미로 "abccc", "abcccc", …, "abccccccc"를 포함한다. 앞의 그룹 표현과 함께 표현한 (abc){2,4}는 abc 단어가 2~4번 연속으로 올 수 있다는 의미로 "abcabc", "abcabcabc", "abcabcabcabc"를 포함한다.
  이것은 어떤 문자가 GREP 표현에 사용되는 문자가 아니라 실제 찾고자 하는 문자라는 것을 표현하기 위해 사용한다. 예를 들어, "+" 라는 문자는 GREP 표현에 사용되기 때문에 "1+2" 라는 문장을 찾고 싶은 경우 "1+2" 표현식을 사용해야 한다.
 a|b 이것은 또는(OR)의 의미로 앞뒤의 어느 문자로 표현될 수 있다는 의미이다. 예를 들어, "forensic-proof.(com)|(co.kr)|(org) 와 같이 표현할 수 있다.

GREP EXAMPLES
다음의 예제는 표의 상단에 표현된 각 표현식에 대해 예를 통해 대응되는 예제를 보여준다. 표현식이 적용되는 예들은 주황색을 통해 표현된다. 색이 칠해지지 않은 문장은 표현식이 적용되지 않는 문장이라는 뜻이다. 그리고 모든 결과는 "Case Senstive"가 설정되지 않은(대소문자를 구별하지 않는) 상태의 결과이다.
Example 1
 …MZ
 '.' 는 하나의 문자로 어떤 문자가 와도 상관이 없다는 의미이다.
 ADMZ
 ZMZ

 ASDDEFJHMZKJYTRDF
 02 ,MZ
 , ,-MZ ABNMZLK
 .!=MZ
 MZ

Example 2
 forensic[ ,-]proof
 '[ ]' 문자는 '또는' 의 의미로 어떤 문자가 와도 상관이 없다는 의미이다.
 forensic ,proof
 forensic proof
 forensicproof
 forensic,proof
 forensic-proof

 forensic ,-proof
 forensic  proof

Example 3
 pro[0-9a-z]neer
 앞서 살펴본 '[ ]' 표현식에 대한 내용이 그대로 적용되어 '또는'의 의미를 가진다. 다만, 0-9는 0~9 사이의 임의의 숫자를 의미하며, a-z는 a~z 사이의 임의의 알파벳을 의미한다.
 pro neer
 pro0neer
 pro01neer
 pro9neer
 prozneer

 proa-zneer
 pro,neer

Example 4
 987654321[^#]
 '^' 문자의 의미를 다음에 나오는 문자는 제외하고 아무 문자나 와도 상관이 없다는 의미이다. '#'는 임의의 숫자를 의미하므로 987654321 다음에 숫자가 나오면 안된다는 의미이다.

 YM987654321AS
 12987654321454
 987654321 1111198765432100000
 11111987654321A0000
 ….987654321.

Example 5
 TI +STORY
 '+' 문자의 의미는 앞서 나오는 문자가 적어도 한번 이상 반복됨을 의미한다.

 TISTORY
 TI STORY
 TI  STORY
 TI +STORY
 ti  STORY
 ti    story

Example 6
 02[) ]+3290-1212
 '+' 문자는 앞서 살펴본 문자 하나 외에도 표현식에 사용할 수 있다. '[]' 안의 특정 문자는 '또는'의 의미를 가지므로 해당 문자 중 어느 문자나 적어도 한번 이상 반복됨을 의미한다.

 02 3290-1212 02 3290-2121
 (02)3290-1212
 (02) 3290-1212
 (02))  3290-1212

 02-3290-1212
 02) ) )    3290-1212
 023220-1212

Example 7
 digital-*forensic
 '*' 문자는 앞서 나오는 문자가 0번 이상 반복됨을 의미한다. 

 Digital Forensics
 Digital-Forensics
 digitalforensic
 digital-forensic
 digital——forensic

Example 8
 033[) ]*333-4567
 '*' 문자는 문자 외에도 표현식에 사용될 수 있다. 의미는 앞서 설명한 '+' 표현에 대한 내용과 같다. 

 033 333-4567
 033)333-4567
 033) 333-4567
 033 )  ))    ) 333-4567

 033-333-4567
 033333-4567
 0333334567

Example 9
 proneerx0Dx0A
 'x'  이후에 오는 두 개의 16진수 값은 특정 문자의 16진수 값을 의미한다. 위의 "x0DX0A" 값은 Windows 환경에서의 Carriage-return(엔터키;line feed) 값을 의미한다.
 proneer
 pronEER

 proneer.
 pro!neer
 proneer
 proneer is a man…

Example 10
 proneer?
 '?' 는 앞서 나오는 문자가 0번 혹은 1번 나올 수 있다는 것을 의미한다. 
 Proneer
 pronee
 PRONTIER
 pioneer

Example 11
 C:\images\proneer.gif
 '' 는 Escape 문자로 쓰이게 되는데 뒤이어 오는 문자가 GREP 표현에 활용되는 경우 해당 문자가 GREP 표현 문자가 아니라 문자 자체의 의미를 가지게 만든다.
 C:imagesproneer.gif C:\images\proneer.gif
 C:\images\proneer.gif

Example 12
 case[^a-z]
 앞서 설명했듯이 해당 내용은 "case" 문자열 뒤에 알파벳이 오면 안된다는 의미이다.
 casehello
 encase-certificate
 case casetest
 test-case case1

Example 13
 http://www.[a-z]+.com
 "http://www." 문자열 뒤에 .com 도메인을 가지는 알파벳으로만 이루어진 사이트 주소를 의미한다.
 http://www.forensicfocus.com/
 http://www.forensic-proof.com
 http://www.tistory.com/
 https://blogs.sans.org/computer-forensics/
 http://proneer.tistory.com/

Example 14
 ####-####-####-####
 '#' 문자는 어떤 숫자 문자와도 일치한다. 따라서 위 표현은 카드 숫자 패턴을 찾는다는 의미이다.
 1234-1234-1234-1234-1234-1234    (3번 매칭)
 1212-1212-4545-4545

 7777-7777-7777-444
 1234123412341234 

Example 15
 [45]###-?####-?####-?####[^#]
 위의 표현식은 카드 번호를 좀 더 정교하게 찾는 것으로 4, 5로 시작되는 카드 번호를 찾겠다는 의미이다. 일반적으로 시작번호 4번은 비자카드, 5번은 마스터, 다이너스 카드에서 사용한다. 또한 구분자 '-' 문자가 나오거나 나오지 않아도 상관없다는 의미이고, 마지막에 숫자가 이어서 나오지 말아야 함을 의미한다. 
 4563-7778-9854-6556
 5668998744123315
 44444444-44444444
 5555555555555555

 1234123412341234 

Example 16
 (?###[) -]+###[ -]?####[^#]
 위의 표현식은 전화번호에 대한 패턴을 찾는 것이다. 우선 맨 앞에 '('문자가 0, 1번 올 수 있다는 의미이고 지역번호에 이어 구분자 ')', ' ', '-'가 1번 이상 반복됨을 나타낸다. 
 (031) 845-3215 
 (032) -522-1123
 033-335-5568
 042 478 9985
 055)))– -985-7741b

 02)398-5541

Example 17
 ##?#?.##?#?.##?#?.##?#?[^#.]
 앞서 살펴본 것과 다르게 좀 복잡해 보이는 표현식이다. 이 표현식은 IP 주소의 패턴을 나타낸다.  
 192.168.21.2
 255.255.255.255
 0.0.0.0
 163.152.165.1

 233.2254.211.11
 0.0.0.0.
 11..224.223.5

Example 18
 ##?[/-]##?[/-]###?#?
 이 표현식은 정규화된 날짜 표현식에 대한 패턴을 나타낸다.
 23/10/2009
 23/1/2009
 23-10-2009
 23-1-2009
 2-1-2009
 23/10/2009
 23/10/09

 23-0ct-2009
 20-Dec-2009

Example 19
 ##z|x
 '|' 문자는 논리적인 'OR(또는)'의 의미로 두 숫자 이후에 어느 문자나 올 수 있다.
 bbc
 cdc
 123zbc
 325h1n1
 567zx
 123dkk
 123xx

Example 20
 [ -/](may)|(jun|l)[ -/]
 이 표현식은 "may", "ju" 를 기준으로 '-'과 '/'로 구분된 문자열의 패턴을 나타낸다.
 20th Dec 2009
 2nd May 2009
 23-Jun-09
 11-Apr-2009
 12/Jul/09

Example 21
 From ?:.{20,200}To ?:
 이 표현식은 e-mail 헤더의 패턴을 찾기위한 표현식이다. '{ }' 표현은 20 ~200 사이의 어떠한 문자가 와도 상관없다는 의미이다.
 From : proneer@gmail.com
 To
: encase_admin@hotmail.com
 Subject :let me the NAS key value for EnCase 6.11
 Date :Wed, 26, Sep 2009 10:22:11 +000
 …
 …
 From : admin@forensic-proof.com
 To
:cert_admin@encase.com
 …
 …
 …

Example 22
 www..[a-z]+.com|(.kr)
 이 표현식은 www로 시작하고 주소는 알파벳으로 이루어지고 도메인이 .com, .kr을 갖는 URL 패턴을 나타낸다.
 http://www.forensic-proof.com/
 http://www.tistory.com/
 http://www.youtube.co.kr/
 http://www.daum.net/
 https://forum.codejock.com/default.asp

댓글 없음:

댓글 쓰기