분류 전체보기

    [FTZ] level3 (Write-Up)

    [FTZ] level3 (Write-Up)

    hint를 확인해보자 문자열형태로 명령어를 전달할수있어보인다. 일단 setuid가 걸린 파일을 찾아보자 bin으로가서 확인해보자 오 존재한다. 이 autodig의 소스가 힌트에 적혀있다. more hints를 유심히보자 동시에 여러개의 명령어를 사용해야 하는것 같다. 그러기 위해서는 ;또는|를 명령어 사이에 넣으면 된다. 성공!

    [FTZ] level2 (Write-Up)

    [FTZ] level2 (Write-Up)

    hint를 열어보자 그렇군..... 일단 setuid가 걸려있는 파일을 찾아보자 bin으로가서 editor를 실행시키자 이것이 hint에서 나온 텍스트 편집기(vim)이다. vi에서는 esc를 누른뒤 !를사용하여 쉘의 명령어를 사용할 수 있다. 이것을 이용하여 my-pass를 입력해보자 성공!

    [FTZ] level1 (Write-Up)

    [FTZ] level1 (Write-Up)

    cat을 사용해서 hint를 한번 보자! setuid가 걸린것을 찾기위해 find를 사용해보자! find / -user level2 -perm -4000 2>/dev/null User level2의 것이며 setuid(4000)인것을 찾는것이다. 2>/dev/null은 오류는 풀력하지 않는것이다. /bin/ExecuteMe을보니 /bin으로 가보자! 가기위해서는 cd를 사용하자! ExecuteMe가 있는것을 확인했다. ./를 사용하여 실행해보자! 한가지의 명령어로 권한을 따와야한다. /bin/sh를 사용하면 level2로 권한이 바껴있다. my-pass를 사용하여 패스워드를 보자. 성공!

    C개인 프로젝트 보고서

    1. 작품 개요 - 개발 동기 C언어 2차원배열을 배우던 도중 미로가 머리를 스쳐서 미로를 만들게 되었습니다. - 개발 환경 Visual Stdio 2019를 사용하여 제작하였습니다. - 제작과정 4/30 5/2 5/5 5/7 주제 확정 미로 배열 생성 커서및 캐릭터 이동,제어 열쇠와 문, 파일입출력 동적할당 구조체 2. 작품 소개 - 사용 헤더 및 라이브러리 #include //printf()등 함수 #include //gotoxy()등 함수 #include//_getch()등 함수 #include //struct tm을 위하여 #include //malloc함수를 위하여 - 사용자 지정 함수 int keycontrol(void); //키 입력 void title_draw(void); //게임 이름 v..

    동적할당과 메모리구조 보고서

    동적할당이란? 동적할당이 무엇일까 동적할당의 반대되는 개념으로 정적할당이 있다. 정적할당은 우리가 지금까지 써온 변수의 선언 방식은 이와같이 우리가 먼저 사용할 메모리의 크기를 지정해 준다. 그로인해서 생기는 단점은 처음 결정된 크기보다 더 작은 입려이 들어온다면 낭비가 생긴다. 프로그램 실행 도중 크기가 변경되지 않는다. 프로그램이 종료되어야 메모리가 해제된다. 이러한 정적할당과 다른 동적할당은 프로그램을 실행도중에 메모리를 할당 받으므로 낭비를 최소화 한다. 동적할당 사용이유 그렇다면 이러한 동적할당을 왜 사용할까 동적할당을 사용한다면 자기가 필요한 만큼만 메모리를 할당받으니 효율적으로 사용이 가능하다. 동적할당 사용법 동적할당을 사용하려면 4가지의 함수가 있다. malloc: 힙에서 메모리 할당. ..

    숫자 달팽이??

    일단 배열을 선언과 동시에 0으로 초기화 해줍니다. 그리고 int b는 배열에서 처음 행,렬은 1씩 커지지만 다음부터는 번갈아가며 1씩 작아졌다 커졌다 하기때문에 2번마다 부호가 바뀌도록 하기 위하여 설정하였습니다. 그러기 위하여 b를 1로 설정해 두었지만 그러면 x에b를 더하면 처음부터 1이 되기떄문에 1칸씩 밀렸습니다. 그래서 x=-1로 설정하여 b가 더해져도 0이 되도록 하였습니다. 0,0 0,1 0,2 0,3 0,4 1,0 1,1 1,2 1,3 1,4 2,0 2,1 2,2 2,3 2,4 3,0 3,1 3,2 3,3 3,4 4,0 4,1 4,2 4,3 4,4

    포인터 보고서

    포인터란? 지금까지 우리가 c언어를 배우면서 c언어의 꽃은 포인터다 라는 말은 수 도없이 들었을 것입니다. 이렇게 질리도록 들은 포인터란 무엇일까? 바로 우리가 지금까지 셀수없이 많이 사용한 변수들의 메모리공간 입니다. 변수 a를 설정하였으면 메모리에 그것을 할당하는 주소가 생길것 입니다. 이러한 주소를 가리키는 변수를 포인터라고 합니다. 포인터를 사용하는 이유 그렇다면 우리는 포인터를 왜 사용할까? 우리가 함수를 사용하면서 main함수에있는 지역 변수들을 전보 전역 변수로 바꾼다면 많이 지저분해 질것이다. 그렇다면 main함수에있는 변수의 주솟값을 바로 보내주는것이다. 그러면 속도가 더욱 향상 될것입니다. 포인터 선언 그렇다면 이러한 포인터는 어떻게 사용할까? * = &; int * p = # ..

    함수 보고서

    함수란? 함수는 우리거 수학시가넹 자주 배웠던것과 같이 "어떠한 값을 대입하면 규칙에 따라 변형시키는것" 이라고 생각 합니다. 프로그래밍에서는 우리가 흔히 사용하는 printf(),scanf()뿐만 아니라 int main()도 함수 입니다. 함수를 사용하는 이유 그렇다면 함수를 굳이 왜 사용할까요?? 함수를 사용한다면 반복되는 코드를 여러번 작성하는것이 아니라 쉽게 사용하기 위하여 사용합니다. 함수 선언 방법 그렇다면 이러한 함수를 사용하려면 어떻게 해야할까요 (){ } 이러한식으로 선언할 수 있다. 선언방법은 크게 두가지로 나뉘는데 함수를 선언과 동시에 정의를 하는것과 함수를 선언한뒤 마지막에 정의하는 것으로 나뉘어 진다. 그리고 만약 반환해야하는 값이 있을 시 return을 추가한다. 함수의 형태 함..