본문 바로가기

COMPUTER435

포인터 기본적인거 #include int main(void){int *pnum;int num = 12345;pnum = #printf("num의 값: %d\n", num);printf("pnum이 가리키는 값: %d\n", *pnum);printf("num변수의 주소: %p\n", &num);printf("pnum변수의 값: %p\n", pnum);return 0;} #include int main(void){int *pnum;int num = 12345;pnum = #printf("변경전 num의 값 : %d\n", num);printf("변경전 pnum의 값 : %d\n", *pnum);*pnum = 54321;printf("변경후 num의 값 : %d\n", num);printf("변경후 pnum의 값.. 2016. 9. 9.
level2 vi 편집기를 연다끌때는 :q 입력 :help iccf for information:q to exit:help or for on-line help:help version6 for version info vi편집기에서는 크게 1)텍스트 입력모드, 2)명령모드, 3)ex모드, 이 세가지의 모드로 나누어 진다. 위 화면에서 새로운 텍스트을 입력하기 시작하려면 "i"를 누르면 커서가 깜박거리면서 키보드의 입력을 기다리게 된다. 이것이 텍스트 입력모드 상태이다. 내용을 편집하다 명령모드로 가기위해서는 Esc를 누르면 커서를 이동할 수 있다(내용 편집중 방향키를 이용해서 커서를 이동시킬 수도 있었으나 vi편집기의 명령어들을 살펴보면 h(왼쪽), j(아래), k(위), l(오른쪽)등을 이용하여 커서를 옮길 수 있기 .. 2016. 9. 9.
포인터 배열과 배열 포인터 int *who_a[4]; // 포인터 배열int (*who_b)[4];// 배열 포인터 who_a는 int형 포인터의 배열이다. 즉 배열의 선언이 되는 것이다.who_b는 int형의 배열을 가리키는 포인터 변수이다. 이것은 포인터 변수의 선언이 된다. #include int main(void){int num1 = 10, num2 = 20, num3 = 30, num4 = 40;int arr2d[2][4] = { 1,2,3,4,5,6,7,8 };int i, j; int *who_a[4] = { &num1,&num2,&num3,&num4 };//표인터 배열int(*who_b)[4] = arr2d;//배열포인터 printf("%d %d %d %d\n",*who_a[0], *who_a[1], *who_a[2].. 2016. 9. 9.
level1 / (찾기 시작할 위치를 말한다. /는 전체를 뜻한다. /home하면 /home디렉토리만 찾게 될 것이다.) 레벨2의 권한으로 SetUID가 걸려있는 다시한번 확인할 수 있다. cf> 2>/dev/null은 Standard Error를 모두 휴지통에 버리라는 의미이다. cd /bin/ExecuteMe을 입력하면오류가 발생하고 ExecuteMe는 디렉토리가 아니라고 출력된다.cd /bin 까지 입력bin 폴더로 이동다시 한번에 /home/trainer2로 이동을 하려면cd /home/trainer2를 입력한다. 부분이 앞에 나옴.그 다음ls -al ExecuteMe명령을 통해 파일 확인ExecuteMe입력! 그다음/bin/bash를 해서 쉘을 따낸다.my-pass 입력하면level2의 비밀번호가 나온다. .. 2016. 9. 8.
Day3 Big-O notation O : =θ : =o : T(n)∈O(n^2)T(n)∈Ω(n) g(n)∈O(f(n)), if there exists some positive real constant cand some non-negative integer Nsuch that for all n>=N, g(n)=N g(n)무한 g(n)/f(n)=0, g(n)∈o(f(n)) n이 커질수록 g(n)과 f(n)의 차이가 커진다.If lim n->무한 g(n)/f(n)=c, g(n)∈θ(f(n)) n이 커질수록 g(n)과 f(n)의 차이가 작아진다.Some properties f1∈O(g1) and f2∈O(g2) -> f1f2∈O(g1g2) -> f1+f2∈O(|g1|+|g2|)o(f)+o(f)⊆o(f)o(f)*o(g).. 2016. 9. 8.
trainer10 Local 해킹시 핵심이 되는 SetUID에 대하여 알아봅시다. Local 해킹?해킹에는 두가지가 있다.하나는 Remote해킹: 이것은 자신이 해킹하고자 하는 서버에 아이디를 가지고 있지 않을때, 아이디를 얻고자 시도하는 것을 말한다.다른 하나는 Local 해킹: 해킹하고자 하는 서버에 일반계정을 가지고 있을때, 관리자 권한(root)을 얻고자 시도하는 것 Remote 해킹방법엔 여러가지 방법이 있다.무작위로 아이디와 비밀번호를 입력하여 접속하는 방법에서 부터, 데몬의 취약점을 공략하는 방법심지어 게시판이나 방명록을 이용하여 접속하는 방법까지 수십가지가 넘는다. 하지만 우리에게 중요한건 Local 해킹이다.관리자 권한을 얻지 않는 한 해당 서버는 단지 그림의 떡이다.그런데 관리자 권한은 왜 얻는가?만약 .. 2016. 9. 6.
리눅스 명령어 http://egaoneko.github.io/os/2015/05/24/linux-starter-guide-2.html 명령어는 위의 그림에서와 같이 사용자 영역에서 해당 명령어를 입력하면 그림의 번호순으로 해당 명령어가 있는지 확인한다. 해당 명령어가 있으면 해당 명령어를 수행하고 해당 명령어가 없으면 사용자에게 명령어를 찾을 수 없음을 알린다. 리눅스에는 많은 명령어가 있꼬, 처음부터 모든 명령어를 다 알기는 힘들다.아래 명령어는 필자가 실습을 하며 많이 사용하고 기본적으로 알아두면 좋다고 생각한 명령어들을 모아보았다.아래의 명령어들의 설명이나 옵션은 검색이나 man 명령어를 통해서 확인할 수 있다. 리눅스에서 IP의 확인과 네트워크가 접속되었는지 확인 등 네트워크 정보를 확인할 때 쓰는 명령어는 아.. 2016. 9. 6.
GUI와 CLI http://mwultong.blogspot.com/2007/11/gui.html GUI: Graphical User Interface(그래픽 유저 인터페이스) 마우스로 아이콘을 클릭하며 프로그램을 작동시키는 컴퓨팅환경을 말한다요즘 컴퓨터 환경은 거의 다 GUI이다. GUI가 아닌 프로그램은 거의 없다.윈도우를 부팅하여 바탕화면이 나오면 그 자체가 전부 다 GUI이다. GUI의 반대되는 개념이 무엇인가가 중요하다. GUI의 반댓말은 CLI(Command-Line Interface)이다. 이것은 키보드로 명령어를일일이 타이핑하여 프로그램을 사용하는 원시적인 방식이다GUI와 달리 CLI는 명령어를 모두 외워야 하기에 상당히 불편하다.다만 전문가에게는 CLI가 더 편리할 수도 있다. 반복되는 작업을 할 때에는.. 2016. 9. 6.
터미널, 쉘, 콘솔 http://infosecguide.tistory.com/15 쉘(Shell) : CLI 명령을 해석하는 소프트웨어. 커널(kernel)의 반댓말로 껍데기라는 의미. unix/linux의 bash, windows의 cmd *명령 줄 인터페이스(CLI, Command line interface) 또는 명령어 인터페이스는 텍스트 터미널을 통해 사용자와 컴퓨터가 상호 작용하는 방식을 뜻한다. 터미널(Terminal): 시스템에 접속하여 입출력을 가능하게 하는 단말장치(형태: 하드웨어 or 소프트웨어) 콘솔(Console): 콘솔은 터미널의 일종. 시스켐 제어등을 위한 특수목적의 터미널 2016. 9. 6.