전체 글

전체 글

    bash 기초 문법을 배워보자 - Hello World! 부터 함수와 반복문까지

    이번 게시글에서는 UNIX나 Linux에서 기본 쉘로 많이 사용되는 bash 쉘에서 스크립트를 작성하는 방법에 대해 다루어 볼 것이다. 물론 bash 쉘 환경을 준비해 놓았다는 가정 아래에서이다. 참고로 글쓴이는 Kali Linux 2018.4-amd64 환경에서 vim 편집기로 실습을 했다. Hello, World! 프로그래밍 언어를 배우는 사람이라면 수도 없이 본 Hello, World!를 여기서도 한 번 출력해 보자. 12#!/bin/bashecho "Hello, World!"cs 파일 이름은 HelloWorld.sh로 저장하였다. 이때 유의해야 할 것은 방금 작성한 스크립트를 실행하려면 실행 권한을 부여해야 한다는 것이다. 아래와 같이 입력하여 실행할 수 있는 파일로 만들어주자. 1chmod u+..

    [SW Expert Academy] 1984. 중간 평균값 구하기

    푼 날짜 : 2019.01.16사용 언어 : Python난이도 : D2문제 링크 : https://www.swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV5Pw_-KAdcDFAUq 1234567avg = []for t in range(int(input())): l = list(map(int, input().split())) l.pop(l.index(max(l))) l.pop(l.index(min(l))) avg.append(str(round(sum(l) / len(l))))for i in range(len(avg)): print("#" + str(i + 1) + " " + avg[i])cs 1행에서 각 테스트 케이스의 정답을 ..

    [SW Expert Academy] 1926. 간단한 369 게임

    푼 날짜 : 2019.01.16사용 언어 : Python난이도 : D2문제 링크 : https://www.swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV5PTeo6AHUDFAUq 123456for c in [str(x) for x in range(1, int(input()) + 1)]: count = c.count('3') + c.count('6') + c.count('9') if count: print('-' * count, end =" ") else: print(c, end =" ")cs 1부터 입력받은 숫자까지의 자연수를 리스트로 저장하여 반복문으로 리스트의 각 요소를 str형으로 형변환한 후 검사한다. 이때 count..

    쉘 스크립트 개요 - 쉘, 스크립트, 그리고 쉘 스크립트란?

    침투 테스트에서 사용하기를 원하는 다른 프로그래밍 언어나 개발 툴과는 다르게, 거의 모든 시스템에는 쉘이 설치되어 있다. 물론 원하는 쉘을 항상 사용할 수는 없어도, 보통 작업을 진행할 수 있는 쉘이 있기 마련이다. 쉘이란 쉘은 사용자와 운영체제 사이에 있는 인터페이스로, 프로그램을 실행하고, 파일 처리 및 기타 여러 작업들을 할 수 있게 해 준다. 모든 운영체제에서는 쉘을 사용하고 있는데, 크게 텍스트 기반과 그래픽 기반으로 나눌 수 있다. 많은 운영체제가 두 가지 기반의 쉘 모두를 제공하며, 각각 다른 장점이 있다. Microsoft Window 데스크톱 인터페이스, 리눅스의 GNOME와 KDE와 같은 GUI 환경의 쉘은 화려한 그래픽 기반의 메뉴를 사용할 수 있다. 파일 또한 그래픽 아이콘으로 표시..

    Python에서 Win32 API 활용하기 - ctypes 모듈

    개요 Python으로 Windows OS에서 제공되는 강력한 기능을 활용하려면 Win32 API를 활용해야 한다.이를 위해 Python용 외부 함수(foreign function) 라이브러리인 ctypes를 활용해 보자.ctypes는 C 호환 데이터형을 제공하며, DLL 또는 공유 라이브러리에 있는 함수를 호출할 수 있다.또한 Windows, Linux, Unix, OS X, Android 등 다양한 운영체제에서 지원하는 Native Library를 사용할 수 있는 강력한 도구이기도 하다. ctypes는 동적 라이브러리 호출 절차를 단순화하고, 복잡한 C 데이터 형을 지원하며 Low Level 함수를 제공한다는 장점이 있다. DLL 로딩 ctypes는 cdll, windll, oldell 호출 규약을 지..