SDN(Software Defined Network) 환경 구성 소프트웨어 정의 네트워크는 트래픽의 제어를 위해 소프트웨어 기반 컨트롤러나 애플리케이션 프로그래밍 인터페이스(API)를 통해 네트워크를 사용하는 방법이다. 기존의 하드웨어 디바이스를 사용하는 것과 차이가 있으며 네트워크 지능화 기능을 담당하는 응용 평면(Application Plane), 운영체제 기능을 담당하는 제어 평면(Control Plane), 데이터 전송을 담당하는 데이터 평면(Data Plane) 세 가지로 구분되고 각 레이어는 다음과 같은 특징을 가지고 있다. 응용 평면은 소프트웨어를 이용하여 네트워크를 제어하는 레이어이다. 네트워크 통계 정보를 활용하여 소프트웨어를 개발할 수 있는 개방형 영역이다. 제어 평면은 전반적인 네트워..
Digital Watermarking 디지털 워터마킹은 오디오, 비디오, 텍스트 등 멀티미디어 저작물의 불법 복제를 막고 저작권자 보호를 위한 디지털 컨텐츠 저작권 보호 기술이다. 디지털 저작물에 인간의 시각 특성을 고려하여 사용자가 알 수 없는 형태로 저작권 정보를 기록한다. 지폐를 불빛에 비춰보면 은닉된 그림의 형상이 나타나는데 이 마크를 워터마크라 하고, 워터마킹은 위조지폐를 방지하기 위해 지폐 제작과정 중 젖어 있는 상태에서 그림(mark)을 넣는 기술을 말한다. 디지털 워터마킹이라는 용어는 이로부터 유래한다. Steganography 디지털 워터마킹 기술의 일종인 스테가노그래피(Steganography)는 그리스어 합성어로 “감추어져있다“라는 뜻인 ”stegano”와 “쓰다, 그리다”라는 뜻인 ..
[분석환경] Windows 10 Pro 64bit [분석도구] PEiD, Stud_PE, BinText, PEView, OllyDbg 1. DLL(Dynamic Load Library)? 동적 연결 라이브러리의 약자이다. 한번 로딩된 DLL의 코드, 리소스는 Memory Mapping 기술로 여러 Process에서 공유, 업데이트 시 DLL 파일만 교체 실행 환경의 dll버전차이, 호출 함수의 위치(주소) 불확실 등의 이유로 사용한다. 컴파일러 – 함수의 실제 주소가 저장될 위치만 준비 후 CALL PE 로더 – 준비한 위치에 실제 함수의 주소를 입력 코딩할 때 실제 주소를 하드코딩하지 않음 DLL 사용 시 응용프로그램의 모듈화 - 쉬운 기능 업데이트, 재사용의 장점 중복코드 사용의 감소로 적은 리소스 ..
Preview Windows 환경 리버싱 공부 중 안티 리버싱 기법들이 오래된 OS 버전을 기준으로 하고 있어서 Windows 10 x64에도 가능한 기법을 새로 조사, 실습하여 정리한다. 이 포스트는 이전 포스트에서 이어지는 글이다. https://gomguk.tistory.com/45 [분석환경] Windows 10 x64 1903 [개발 & 분석도구] Visual Studio 2012(v110), OllyDbg, IDA Pro CheckRemoteDebuggerPresent() Windows XP 이상부터 꾸준히 사용되는 기법. ZwQueryInformation()을 사용하여 Debug Port 정보를 얻는다. MSDN에서 제공하는 정보는 다음과 같다. 프로세스 핸들과 디버그된 상태를 알려줄 변수 ..
Preview Windows 환경 리버싱 공부 중 안티 리버싱 기법들이 오래된 OS 버전을 기준으로 하고 있어서 Windows 10 x64에도 가능한 기법을 새로 조사, 실습하여 정리한다. [분석환경] Windows 10 x64 1903 [개발 & 분석도구] Visual Studio 2012(v110), OllyDbg, IDA Pro Anti Reversing - 디버깅을 방지하고 분석하지 못하도록 막는기술 - 디버깅 발생 시 프로그램 종료 및 에러를 발생시켜 분석을 방해 - 안티 디버깅 기술의 발전 및 이를 우회하는 기술 또한 함께 발전 안티 디버깅 종류 Static Dynamic 디버깅 시작 시 동작 디버깅하면서 안티디버깅 기법을 만날때마다 해결 디버거 탐지하여 정상적인 실행 불가 디버깅 도중 수시로..
Preview 플라스크는 세션관리 및 암호화를 위해 app.secret_key가 필수적으로 필요하다. 프로젝트 진행 후 코드 공유를 위해 깃헙(github.com)에 코드를 올릴 때 민감정보 노출을 막기 위해 .gitignore 설정이 필요하다. 이를 위해 xml로 키를 관리하는 방법과 .gitignore 파일 설정 방법을 정리한다. keys.xml xml파일은 데이터를 키(key)와 값(value)로 구분하여 구조화하여 전달하기 위해 만들어진 문서 형식이다. 메모장으로 열 수 있고 쉽게 편집, 열람이 가능하다. 파일의 첫 줄에 xml 파일임을 알린다. 사용할 키와 값을 입력한다. 여기서는 플라스크의 secret_key와 SQL DB 접속 패스워드를 예시로 한다. PassWord Flask+Secret+..
Preview 많은 포스트들은 언박싱 후기나, 구매기를 많이 다루고 있다. 1년 동안 맥북프로 16인치를 사용해 보면서 Windows나 Unix환경과 비교하여 느낀점들을 정리해본다. 윈도우 환경에서 맥으로 넘어가기를 고민하고 있는 사용자가 있다면 내가 했던 고민과 지금의 사용기를 참고하면 좋을 것이다. 구매 맥북을 구매하기 전 300만원이 넘는 기기를 구매할 때의 망설임을 아직도 잊을 수 없다. 내가 이 기기를 사서 잘 활용할 수 있을까. 대답은 "잘 활용하면 되지" 뿐이었고 당시 다른 누구처럼 디자인을 해야하거나 업무상 꼭 필요해서 구입한 것은 아니었다. 애플은 매 신학기마다 학생할인과 더불어 사은품을 증정하는 이벤트를 한다. 그래서 헤드폰을 사은품으로 받을 수 있었고 중고장터에 잘 거래되어 맥북의 가..
Preview 플라스크는 파이썬에서 소규모 웹 서버를 구동할 수 있게 하는 웹 어플리케이션 프레임워크이다. 스케일에 상관없이 대규모 서버를 구성할 수도 있으며 Jinja와 Werkzeug를 포함한다. 갤러리 구현을 위해 사진 파일은 웹에서 크롤링한 데이터를 사용했으며 html, css, js, python을 사용했다. Flask 설치 #Flask 설치 pip install flask 시작하기 from flask import Flask, render_template, url_for app = Flask(__name__) app.config['IMG_FOLDER'] = os.path.join('static', 'images') #이미지 파일의 경로 지정 @app.route('/') def index(): r..
코로나가 심해지면서 사회적 거리두기 정책으로 카페에서 테이크 아웃을 제외한 모든 취식 행위가 금지되었다. 노트북 하나와 카페에서 공부를 즐겨했는데 이젠 그러지 못해서 아쉬워하던 중에 지난 9월 방문했던 카페의 사진들을 보면서 분위기를 추억해보고 싶었다. 이태원에 위치한 코지빌라커피 CozyBilla Coffee 카페를 소개한다. 당시 분위기 좋은 이태원 카페를 찾던 중 한 카페가 눈에 들어왔다. 카페를 찾아서 가진 않지만 분위기가 좋다고 이미 소문이 나있는 카페였고 실제로도 조용하고 아늑한 분위기의 카페이다. 위치는 서울특별시 용산구 이태원1동 이태원로20길 32 영업 시간은 수,목 정오 12시 - 오후 10시 금,토 정오 12시 - 오후 11시 일요일 정오 12시 - 오후 10시 휴무일 매주 월,화 연..
Preview 새로운 게시글 알림 봇, Open API를 이용한 업데이트 등 다양한 기능을 할 수 있는 텔레그램 봇을 여러 개 운영하고 있다. 봇을 더 사용자 친화적으로 사용할 수 있는 방법이 없을까 고민하던 중 메시지마다 경험치를 부여하여 채팅을 할수록 레벨업을 하는 기능을 구현해 보았다. 단체 채팅방에서 사용하면 재미있는 기능이며, 텔레그램 메시지 핸들러 사용을 위한 python과 서버 구축을 위한 MySQL을 통해 구현하였다. [동작환경] Raspberry pi 3+ python 3.8 pip install 일반 알림만을 제공하는 Cron데몬을 사용하는 텔레그램 봇과는 다르게 사용자와 상호 작용을 해야 하기 때문에 코드가 서버 상에서 24시간 동작해야 한다. 메시지 갱신여부, 종류 판단(텍스트인지,..