virtualbox에 Kali Linux 2.0 설치하는 과정을 기록합니다. 우선 적당한 Kali Linux 2.0 이미지를 여기서 다운 받도록 합니다. 가상머신 셋팅은 논외로 하고 이미지가 삽입된 이후 설치과정만 살펴봅시다. 일단 이미지가 삽입되면 아래와 같이 설치 타입을 선택할 수 있습니다. 포스팅 과정에서는 Graphical install을 사용합니다. 언어를 Korean으로 선택합니다. 위치를 대한민국으로 선택합니다. 키보드를 한국어로 설정합니다. 설치가 진행됩니다. 네트워크 설정 부분인데, 각자에 맞는 호스트를 입력합니다. 따로 뭔가 운영하는게 아니기 때문에 크게 중요하지 않습니다. 도메인을 입력합니다. root에 대한 암호를 입력합니다. 중요하므로 설정한 암호는 잊지 말아야 합니다. 파티션을 ..
터미널에 접속했을때 처음 마주하는 프롬프트 메시지(이하 prompt string)를 변경해보자. 일단 prompt string을 변경하기 위해서는 환경변수에 대한 약간의 지식이 필요한데 여기서는 prompt string 만을 다루기 때문에 해당하는 환경변수의 명칭만 알면 된다. prompt string 는 기본적으로 PS1 이라는 변수를 사용한다. (PS2는 논외) 그렇다면 PS1을 어떻게 변경하나? 우리가 Shell Script 에서 다루는 변수와 동일하게 간단히 아래와 같이 변경할 수 있다. PS1='oops' 쓰고 나니 아래와 같이 변경되었다. 입력한 oops라는 문자가 그대로 출력되는 것이 확인된다. 일단 아래와 같이 원래 설정으로 되돌려놓자. PS1='\[\033[01;31m\]\u@\h\[\0..
테이블 생성시에 INT(11) 등으로 괄호 옵션을 주는 경우가 있다. 주변을 보면 의미를 제대로 알지 못하고 쓰는 경우가 종종 있다. 보통은 괄호안의 숫자는 자리수를 나타내는 것으로 많이 알고 있는데, 사실은 그렇지 않다. 실제 의미를 위해서는 zerofill 이라는 옵션과 함께 사용되어야 한다. 그렇지 않은 경우에는 무의미하다. zerofill은 말 그대로 0을 채우라는 의미고, 즉 괄호안의 숫자만큼 빈칸을 0으로 채우라는 의미다. 일단 테스트를 위해 아래와 같은 테이블을 생성한다. create table TEST(seq INT(11) not null auto_increment primary key, \ oops1_fillzero INT(1) zerofill, \ oops1_nozero INT(1) ,..
흔히 $*와 $@를 구분 없이 많이 사용하고 있는데, 사실 약간은 다르다. 레퍼런스에 보면 아래와 같이 정의되어 있다. "$*"All the positional parameters (as a single word) * "$@"All the positional parameters (as separate strings) 무슨 뜻이냐면, $*는 모든 parameter를 하나의 단어로 취급한다는 의미고, $@는 별도의 문자로 취급한다는 의미다. (응?) 다시말해, $*는 입력되는 모든 parameter를 한개의 단어로 취급한다는 뜻. $@는 공백으로 구분된 별도의 문자열로 취급한다는 의미다. 아래와 같은 스크립트 코드가 있다. #!/bin/sh echo "=================" echo "\$@ se..
서버의 MX 레코드 구성을 확인하는 방법에 대해서 기술합니다. 여기서는 nslookup 명령어를 사용하고, 이는 윈도우/리눅스 모두 지원됩니다. 일단 윈도우를 먼저 살펴봅니다. 커맨드 창을 열고 nslookup을 입력합니다. 그리고 아래 명령어로 mx를 지정합니다. set query=mx 꼭 nslookup으로 접속해야만 가능한것은 아닙니다. 아래와 같이 바로 확인도 가능합니다. nslookup -query=mx naver.com 이번에는 리눅스를 살펴보는데 윈도우와 동일하게 실행됩니다. 마찬가지로 nslookup 접속 없이 바로 실행도 가능합니다. 인터넷 메일을 다루는데 있어서는 매우 중요한 정보입니다. 잘 활용하도록 합시다.
CentOS 에서 윈도우의 특정 폴더를 마운트 해서 사용하는 방법을 알아봅니다. 우선 윈도우의 특정 폴더를 마운트 하기 위해서는 접근 권한이 있어야 하는데, 이를 위해 마운트 하고자 하는 폴더를 공유 폴더로 지정을 합니다. 아래와 같은 폴더들이 있고 mountME 라고 하는 폴더를 CentOS에서 마운트 할겁니다. 우선 mountME 폴더에 우클릭을하고 속성으로 진입합니다. 이어서 공유를 클릭합니다. 공유할 사용자를 선택하고 공유 버튼을 클릭합니다. 정상적으로 공유가 되었음을 확인하고 완료합니다. 다음 고급 공유를 통해 폴더의 권한을 설정합니다. 특별한 내용이 없으면 패스해도 상관 없습니다. 고급 공유는 아래와 같습니다. 여기서 권한을 설정할 수 있습니다. 변경/읽기에 대한 내용을 선택할 수 있습니다. ..
디버깅 방법에는 많은 종류가 있지만, 사건이 발생 했을때 바로 무언가를 남겨주는 것이 최고의 디버그 메시지가 아닌가 싶다. 관련해서 backtrace 와 addr2line 을 소개하도록 한다. 일단 관련 된 소스는 아래와 같다. 소스의 95%가 vim에서 제공되는 backtrace의 man page 내용이다. 해당 소스는 문제가 있고 죽도록 설계(?)되어 있다. (man page의 오리지널 소스가 그렇다는 것은 아님) #include #include #include #include #include /* sig ==> signal number */ void calltrace(int sig) { int j, nptrs; #define SIZE 3 void *buffer[100]; char **strings;..
OS에서 사용하는 ipc(Inter-Process Communication)를 확인하는 명령어로 ipcs가 있다. 보통 개발시에 등록한 공유메모리나 메시지 큐가 제대로 인식되었는지 확인하게 되는데 일단 명령어를 입력해보면 아래와 같은 화면을 볼 수 있다. ipcs 세마포어와 공유메모리, 메시지 큐가 순서대로 보인다. (OS에 따라 약간의 차이는 있을 수 있다.) 도움말을 보면 아래와 같다. ipcs --help 도움말 역시 OS에 따라 차이가 있을 수 있다. 여기서 유용하게 사용되는 옵션에는 두가지가 있는데, 첫번째로는 현재 커널 파라메타로 입력되어 있는 임계치(limits)다. ipcs -l proc에 있는 값을 조정해서 사용할 수도 있다. OS의 기본 임계치를 아는 것은 개발에 큰 도움을 준다. 유용..
CentOS-6.4 에서 docker 관련 공부를 하고자했지만.. 어떤 이유인지 설치하고 실행하려고 해도 데몬 실행이 되지 않았다. 오류는 아래와 같은 메시지가 출력 된다. [root@localhost link]# docker -d WARN[0000] You are running linux kernel version 2.6.32-358.el6.x86_64, which might be \ unstable running docker. Please upgrade your kernel to 3.10.0. INFO[0000] Listening for HTTP on unix (/var/run/docker.sock) docker: relocation error: docker: symbol dm_task_get_inf..
test.cc:(.text+0x3123): relocation truncated to fit: R_X86_64_PC32 against symbol `offset' defined in .bss section test.o 흔히 나오는 에러는 아닌데 x86_64에서 .data section의 크기 limit는 2G다. (여기서 .data는 일반적으로 부르는 .data와 .bss를 합친 영역으로 보임) 일단 뭔가 메모리를 무시무시하게 잡아먹는다는 이야기. 뭘 억지로 변경해서 컴파일 되게 하려고 하지말고, (커널 파라미터 중 limit 값을 찾아서 변경한다던지...) 코드 리뷰를 통해 문제 되는 부분을 수정 하는게 낫다. dynamic하게 사용할 수 있도록 allocate 하는것도 방법인듯. PS 예제 코드 만들..
기사 링크 : http://www.boannews.com/media/view.asp?idx=46219 좀 오래된(?) 떡밥이긴 한데, 여전히 문제가 되는 코드를 사용하는 곳이 많습니다.. 내용을 요약하면 "0e"로 시작하는 해시 값은 '0'과 비교할때 "==" 혹은 "!=" 로 비교시에 문제가 된다고 이야기하고 있습니다. (0e로 시작하는 스트링이 '0'과 같게 취급 됨) 코드로 보면 아래와 같습니다. 자 그럼 "240610708"과 같은 "MAGIC" NUMBER / STRING 에는 무엇이 있을까요 코드 출처를 따라가면 각종해시에 대한 "MAGIC" NUMBER / STRING 를 나열하고 있습니다. 이제 이러한 잠재적인 문제를 회피하기 위해 코드를 수정해야 하는데, 아래와 같은 오퍼레이터로 대체하는..
Subversion 사용을 윈도우의 TortoiseSVN으로 옮기면서 윈도우에서 만든 svn 폴더에는 리눅스의 svn 명령어가 동작하지 않았다. 문제는 리눅스 머신에 기본설치 되어 있는 svn 버전이 낮기 때문인데.. 오류 메시지는 아래와 같다.[root@localhost trunk]# /usr/local/bin/svn infosvn: E155021: This client is too old to work with the working copy at'/root/bin/oops' (format 31).You need to get a newer Subversion client. For more details, see http://subversion.apache.org/faq.html#working-copy-..
탐색기에 Tortoise SVN 아이콘이 보이지 않는 경우가 발생을 했을때 검색을 해보면 대부분 레지스트리를 문제 삼지만 막상 그게 문제가 아닌 경우가 더 많은것 같다. 사실 다른 툴과 충돌이나는 경우는 극히 드물고, 오히려 탐색기 재시작하지 않았기 때문이 아닐까? 혹시 탐색기에서 Tortoise SVN 관련 아이콘이 보이지 않는다면 탐색기를 우선 재시작해보자. 일단 실행창을 열고(단축키:win+r) 아래 명령어를 입력한다. tskill explorer 그리고 다시 확인을 해보자. 아마 대부분의 사용자는 이 방법으로 해결되지 않을까..?ㅎㅎ
윈도우 공유폴더를 마운트 해서 사용하고자 해서 samba를 설치하고 마운트해서 사용해왔었는데대용량(?)파일을 공유 폴더에 쓰다보니 마운트가 풀리고 다시 마운트가 되지 않는 증상이 나왔습니다 오류 문구는 아래와 같습니다(mount error 12 = Cannot allocate memory)[root@localhost ~]# mount -t cifs //192.168.0.10/shared_dev /root/bin --verbose -o username="User",password="testpasswd" mount.cifs kernel mount options: unc=//192.168.0.10\shared_dev,ip=192.168.0.10,ver=1,rw,username=User,pass=********..
kali linux 2.0을 설치하고 setoolket을 테스트해보았습니다. 여러가지 toolket이 있지만 그 중 현재 가장 관심가는 mailer Attack를 테스트 해봅니다. 우선 setoolket을 실행하고..1번을 선택합니다. (Social-Engineering Attacks) 다음으로 5번을 선택합니다. (Mass Mailer Attack) 다음은 2번을 선택합니다. (E-Mail Attack Mass Mailer)1번은 한 명의 수신인을 선택하지만, 2번의 경우 미리 준비된 수신자 리스트에게 메일을 전송합니다. 미리 준비한 수신자 리스트를 저장한 파일 경로를 지정합니다.이때는 절대 경로를 입력합니다. 파일의 내부 형태는 아래처럼 개행(줄바꿈)으로 구분합니다.abc@mail.comoops@te..
디스크 용량 문제로 virtualbox의 이미지(vdi) 경로를 변경할때 아래와 같은 오류가 발생하게 되는데이에 대한 해결 방법을 기록합니다. * 일단 아래와 같이 기존 path를 잡고 있는 디스크가 삭제 불가한 경우 * 세션이 저장되어 있지 않은지 확인합니다. * 저장된 상태는 삭제가 안되므로, "저장된 상태 삭제"를 진행합니다. * 그럼 아래와 같이 삭제 버튼이 활성화 되는 것을 확인할 수 있습니다. * 삭제 후 새로운 경로의 이미지를 추가하려고 하면 아래와 같은 오류가 발생합니다. * 이때는 cmd 모드에서 아래와 같은 명령을 진행합니다. cd C:\Program Files\Oracle\VirtualBox\ * 그 후 새로운 path를 입력해줍니다. VBOXMANAGE.EXE internalcomm..
SecureCRT를 주로 사용하다가 putty로 넘어왔는데, 다소 아쉬운점이 많았습니다뭐.. 라이선스의 freeware 여부로 인한 금전적인 문제가 있다보니 감수해야 하는 부분이겠지만요. 무료 소프트웨어인 putty도 설정을 갖추면 나름 쓸만해지는데 아래 4가지를 정리합니다. 1. 스크롤 라인 수 기본설정이 2000으로 나름 여유롭긴 하지만 신명나게 서버를 운영하던지,vim을 사용하는 경우 타이핑 이력이 스크롤을 초과하는 경우가 발생합니다.기본 스크롤 라인 수를 여유롭게 설정해서 사용하기를 권고합니다. 2. 색상 나름 본인이 굉장히 중요하게 여기는 설정입니다.ANSI의 파란색 색상은 매우 짙어서 리눅스의 폴더를 표기하거나 c/c++의 include나 define을 처리하기에 매우 부적합하다고 생각이 듭니..
흔히 mysql_query()의 반환 값은 resource ID 혹은 False로 알고 있지요.하지만 모든 경우에 그런 것은 아닙니다. http://php.net/manual/kr/function.mysql-query.phpmysql_query()에 대한 메뉴얼을 살펴보면 아래와 같은 문구가 나옵니다.mysql_query()는 다른 형식의 SQL 구문, INSERT, UPDATE, DELETE, DROP 등에서 성공하면 TRUE를, 실패하면 FALSE를 반환합니다. 당연한 내용이죠? (당연하지 않다면.. 평소 메뉴얼을 제대로 보지 않은 자신에게 채찍질을..)그럼 아래 내용을 살펴봅시다.$query = "....."; $link = mysql_connect("localhost","root","secret"..
- Total
- Today
- Yesterday