전체 글 118

Layer7 과제 - 코드업 1566번

코드 #include int a, n; /* long long int pow(int num, int much){ long long int total=1; for(int i=1;i 이 코드에서 pow함수의 반환형은 long long int여야 되고, 인자로는 두 개의 정수가 주어진다는 사실을 알 수 있다. -> long long int pow(int a, int b){ ... } · a값을 n번 거듭제곱해 출력하는 프로그램이므로 total변수를 선언해 1로 초기화시켜주고, 1부터 n까지 반복하며 반복할 때마다 total값에 n값을 곱해 그 값을 리턴한다. · 이 total값을 리턴하면 a를 n번 거듭제곱한 값이 출력되는 것을 볼 수 있다.

programming 2022.04.12

Layer7 과제 - 코드업 1555번

코드 #include int n; /* long long int f(int a){ long long int sum=0; for(long long int i=1;i 이 코드에서 함수 f의 리턴값은 long long int이고, 인자는 int형 변수 한 개가 들어간다는 사실을 알 수 있다. ->long long int f(int a){ ... } · f의 기능은 1부터 n까지의 모든 수의 합을 구하는 것이므로 long long int형으로 sum변수를 선언하고, 1부터 인자로 전달된 n까지 루프를 돌며 모든 수를 sum에 누적하여 더한다. · 이 sum값을 리턴하면 1부터 n까지의 모든 수의 합이 출력되는 것을 볼 수 있다.

programming 2022.04.11

Layer7 과제 - 코드업 1535번

코드 #include int n, d[110]; /* int f(){ int max, max_num=-2100000000; for(int i=0;imax_num){ max=i; max_num=d[i]; } return max; } */ int main(){ scanf("%d", &n); for(int i=0;i int f(){ . . . } · 또, 배열에 저장 되어있는 값 중 가장 큰 값을 출력하는 것이므로, max 변수를 선언해 int 범위 중 가장 작은 수로 설정한 후, 배열의 모든 값을 탐색하며 만일 그 값이 max값보다 크면 max_num값을 탐색한 배열의 인덱스값로 정하며 최댓값의 위치를 구했다. · 후에 이 max값을 리턴하면 사용자가 입력한 값 중 최댓값을 출력하는 것을 볼 수 있다.

programming 2022.04.11

해커스쿨 lob 1단계 (gate - gate)

- 코드 분석 int main(int argc, char *argv[]) { char buffer[256]; //크기가 256인 char형 배열 buffer 선언 if(argc < 2){ //프로그램에 전달된 인자의 개수가 2이상이라면 printf("argv error\n"); //에러를 출력하고 프로그램 종료 exit(0); } strcpy(buffer, argv[1]); //프로그램에 전달된 첫 번째 인자를 buffer에 복사 printf("%s\n", buffer); //버퍼 출력 } 요약 : "실행 시 전달된 인자를 출력하는 프로그램" 취약점 : "strcpy 함수에서 인자로 전달된 문자열을 길이제한을 걸지 않고 메모리에 모두 복사해버리기 때문에 다른 메모리 영역을 침범할 수 있다" - 페이로드를..

system hacking 2022.04.09