파이썬에 컬러를 입히자 – Colorama

예전에 버그트럭의 오정욱님께서 알려주셨던 Colorama 파이썬 라이브러리를 소개하고자 한다.

파이썬이 텍스트 기반이다보니 출력 부분에서 조금은 무미건조한 부분이 있는데
Colorama 라이브러리를 통해 예전 PC통신 시절 안시(ANSI) 코드와 같은
알록달록한 화면을 아주 쉽게 만들어 낼 수 있다.

먼저 공식 페이지에서 소개하고 있는 샘플 화면을 보자.

windows-demo

아주 훌륭하다.
처음에는 단순히 색만 입히는게 뭐가 대수인가 라고 생각했었는데,
대용량 로그 분석을 할 때 특정 조건을 부여한 후 매칭되는 결과에 대해 색을 강조한다면
아주  괜찮을 것 같아 직접 시도해보기로 했다.

 

라이브러리 설치

공식 페이지 다운로드 링크에서 받은 후 압축을 해제 하면 된다. —> [링크 바로 가기]
pip 또는 easy_install을 통한 설치는 확인하지 못했다.

 

기본 사용법

Colorama 라이브러리를 사용하기 위해서는 아래와 같이 Initializing 과정이 필요하다.

이후 사용법은 긴 설명이 필요없을 정도로 간단한데, 예제와 출력 결과물을 보면 이해하기 쉬울 것이다.

Cap 2014-08-31 22-02-34-166

Windows 운영환경에서는 반드시 init() 과정을 거쳐야 정상적으로 출력이 되므로,
빼먹지 말고 넣어주도록 하자.

주로 사용되는 세가지 모드의 특징은 다음과 같다.

  • Fore : 글자의 색을 변경할 때 사용.
  • Back : 배경 색을 변경할 때 사용.
  • Style : 미리 지정되어 있는 스타일대로 변경할 때 사용

한가지 더 유의해야 할 점은, 한 번 색을 셋팅하고 나면 해당 설정이 계속 유지되므로,
위 코드와 같이 RESET 메서드를 호출해줘야 하는 불편함이 있다.

이러한 삽질을 줄이기 위해 한번의 print당 한 번만 설정이 유효하도록
아래와 같이 init 옵션문을 넣어주면 된다.

그럼 본격적으로 Colorama를 활용한 프로그램을 작성해보자.

 

Colorama + 레지스트리 분석 도구

파이썬 라이브러리 중 “_winreg” 를 사용하면 사용자 PC내 레지스트리 정보에 접근할 수 있다.
이번에 작성한 프로그램은 레지스트리 내에서 기본 사용자 정보와 Recent_MRU 정보,
그리고 WIFI 접속 기록을 출력해주는 프로그램이다.

분석 도구에 대한 상세한 설명은 다른 포스팅에서 할 계획이며,
이번 포스팅에서는 Colorama를 어떻게 활용하는지만 살펴볼 것이다.

전체 코드는 다음과 같으며, 레지스트리 값에 접근하기 위해서는
관리자 모드로 커맨드 창을 열어 실행해야 정상적으로 값이 출력된다.

출력 결과 화면은 다음과 같다. (아무 색도 입히지 않은 옵션 선택시)

Cap 2014-08-31 22-17-46-031

옵션 선택 글씨를 흰색으로 바꾼 것 외에는 별다른 효과를 주지 않았다.

다음은 사용자 정보를 보는 옵션을 선택했을 때 화면이다.

Cap 2014-08-31 22-39-11-642

RegisterdOwner 항목과 ProductName과 같이 분석에 필요한 정보를 미리 패턴 지정한 후,
Back.RED에 의해 백그라운드 색을 붉은색으로 처리했다.
매칭되는 결과를 위와 같이 하이라이트 처리 할 수 있다는 점에서 활용도가 아주 좋다.

특히 대용량의 텍스트 로그를 분석 할 때,  RE 라이브러리를 통해 특정 C&C 서버 IP만
하이라이트 하거나 최종 결과 result를 보여줄 때 사용하면 좋을 것 같다.

다음 프로그래밍을 한다면 Colorama를 한 번 활용해보도록 하자.
당신의 프로그램을 좀 더 화려하고 맛깔나게 만들 수 있을 것이다.

Site Footer

Sliding Sidebar

About Me

About Me

June Park