쉘코드 리눅스명령어로 잘라내서 환경변수에 넣기 질문
글쓴이: qkrwncks593 / 작성시간: 화, 2013/01/08 - 8:43오후
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
"₩xcd₩x80"
"₩x31₩xc0"
"₩x50₩x68₩x2f₩x2f₩x73₩x68"
"₩x68₩x2f₩x62₩x69₩x6e"
"₩x89₩xe3"
"₩x50"
"₩x53"
"₩x89₩xe1"
"₩x89₩xc2"
"₩xb0₩x0b"
"₩xcd₩x80"
"₩x31₩xdb"
"₩xb0₩x01"
"₩xcd₩x80";
int main( ....) {
..
..
..
}위에 있는 쉘코드를 리눅스명령어로 잘라내서 파일로 저장할때
$ head exploit.c | grep "^\"" // 1
$ head exploit.c | grep "^\"" | cut -d\" -f2 //2
$ for i in$(head exploit.c | grep "^\"" | cut -d\" -f2) //3
> do
> echo -en $1
> done > shellcode.bin
이렇게 한다는데 여기서 첫번째줄에서 | grep "^\"" 은 무슨역할이죠?
쉘코드에서는 "\xf0 이런형식으로 써있는데 어떻게 ^#" 을 포함하죠?
또 cut 에서 cut -d\" -f2 는 무슨뜻이죠? 이해가 안가네요 ... cut 이라는명령어가 잘라내는건 알겠는데 .. 위 소스코드랑 다른거같기도하고..
마지막으로 번거롭지만
$ for i in$(head exploit.c | grep "^\"" | cut -d\" -f2) //3
> do
> echo -en $1
> done > shellcode.bin
가 무엇이죠??
Forums:


grep명령에 대해 조사해 보시고, ^은 찾는
grep명령에 대해 조사해 보시고,
^은 찾는 문자열의 처음을 의미
\"은 "문자를 의미하는데, "이 제어문자이므로, 이스케이프(escape)처리
따라서, "^\""은 ==> 각 라인의 첫번째 문자(^)가 " 인 줄을 모두 찾아 출력하라! 가 됩니다.
댓글 달기