Security/Reverse Engineering

    IAT (Import Address Table) 함수주소 기록 과정

    맨날 보고 보고 또 봐도 헷갈리는 IAT(Import Address Table) 에 함수주소를 기록하는 과정을 PEView 를 이용하여 하나하나 살펴보도록 하겠습니다.진짜 어려운거 다 집어치우고 핵심 프로세스만 적도록 할게요. 그래도 IAT(Import Address Table) 가 왜 필요한지는 알고가야 되겠죠? IAT 에 함수주소를 기록하는 제일 큰 이유는, DLL 동적라이브러리를 사용하기 위함입니다. DLL을 가져와서 함수를 빌려쓰려고 하는데, DLL이라는 이놈이 항상 똑같은 메모리 공간에 올라가지 않습니다. 그래서 항상 DLL 내 함수 주소도 바뀌죠. 이 바뀐 함수 주소를 프로그램이 실행 될 때, PE 로더가 IAT에 함수주소를 찾아서 기록을 해줍니다. 이 IAT에 함수주소를 기록하는 과정이 꽤나..

    DLL Injection 을 위한 DLL Injector 간단하게 만들기

    간단하게 DLL 인젝션이 무엇인지 알아봅시다! DLL 인젝션이란 말그대로 현재 동작중인 프로세스에 DLL 을 주입하는 것인데요. 보통은 기능추가의 목적으로 많이 사용됩니다. 플러그인이라는 것이 대표적인 인젝션 기법에 속하죠. 그럼 바로 DLL을 인젝션해주는 인젝터를 만들어 볼까요? 먼저 인젝터를 만들기 위한 전체적인 과정과 설명 후에 인젝터를 본격적으로 만들어 보겠습니다. 프로세스에 DLL 을 인젝션 하기 위해서는 해당 프로세스에 대한 제어권이 필요합니다. 프로세스를 제어하는 프로세스 핸들을 얻으면 되는데요 이 핸들을 얻기위해서 프로세스ID가 필요합니다. 여기서 사용되는 함수는 OpenProcess 라는 함수입니다. 프로세스ID는 작업관리자를 통해서 쉽게 확인이 가능합니다. 프로세스의 핸들(제어권) 을 ..

    OllyDbg를 설치해보자 !

    리버서가 되기위한 첫걸음! OllyDbg 디버거를 설치해봅시다. 올리디버거 공식 홈페이지 공식 홈페이지로 이동하시면 이런 메인화면이 뜨게됩니다. 중앙의 VERSION 2.01을 클릭해주세요. OllyDbg를 눌러주시면 다운로드가 시작됩니다. 압축을 풀어주시면 이상한 물감을 쏟은거같은 아이콘이하나 보입니다. Ollydbg.exe 를 실행해줍시다. 설치완료!

    리버싱(Reverse Engineering) 이란 무엇일까요?

    Reverse Engineering 이란? 말그대로 역공학(逆工學). 즉 장치 또는 시스템의 기술적인 원리를 그 구조분석을 통해 역으로 발견하는 과정이에요. 이 리버싱 기술을 통해서 프로그램 내부의 동작원리를 들여다 볼 수 있답니다. 이 과정을 통해서 개발단계에서 발견하지 못한 버그나 취약점들을 파악할 수 있고, 그 취약점들을 직접 패치할 수 있답니다.여기서 하나 ! 패치랑 크랙 두 단어를 구분을 못하시는 분들이 있던데 이 두 단어의 차이점은 중요하므로 짚고 넘어갈게요~ 패치(patch) 이란?프로그램의 파일 혹은 실행중인 프로세스 메모리의 내용을 변경하는 작업을 패치라고 해요. 게임을 하시다보면 "패치한다"는 말을 들어보신적이 있을거에요. 크랙(crack) 이란?크랙은 패치와 같은 개념이지만 패치를하는..