[해킹] What is Reverse Engineering?

이 글들을 읽을땐 C나 Asm에 대한 약간의 지식이나 API에 대한 사전 지식은 도움이 됩니다.


What is Reverse Engineering?
리버스 엔지니어링이란 무엇인가?
Written by A #Dual_Root

서론

이 글에서는 Reverse Engineering이란 무엇이며,
왜 하는가에 대해서 다룰 것입니다.

필요한 도구들

당신의 지식과 열정 – 이번글에서는 툴은 필요치 않습니다.

대상 프로그램 링크

이번글에서는 대상 프로그램도 필요치 않습니다.

본문


What is Reverse Engineering?

재가 생각하는 Reverse Engineering 이란..
자신 또는 사람들이 원하는 것들을 얻기 위하여 프로그램을 분석하여,
원하는 결과를 얻어 가는 과정이라고 생각합니다.

우리는 컴퓨터를 하면서 알게 모르게 RE를 통해 얻게된 것들을 많이 보게 됩니다.
가장 흔한것이 키젠,시디키 생성기,노시디 패치 같은 것들입니다.
많은 사람들이 RE를 통해 만들어진 것들을 사용해봤지만, 만들줄은 모릅니다.
그렇다면, Reverse Engineering은 도대체 어떻게 하는 것일까요?

컴퓨터의 CPU에는 명령어 세트가 저장되어 있습니다. 이 명령어 세트를
기계어 라고 부릅니다. 모든 프로그램은 전부 기계어로 되어 있습니다.
하지만 이 기계어는 0과1의 단순한 규칙 조합이기에
사람이 이것을 가지고 프로그래밍 한다는 것은 상당히 난해 합니다.
그래서 이 기계어를 보기 쉬운 기호로 나타낸것이 어셈블리어 입니다.
어셈블리어는 텍스트 에디터로 작성됩니다. 그리고 그것을 Assembler에게
번역 하라고 하면 Assembler는 우리가 짠 어셈블리어 코드를 기계어 코드로
변환 시키어 줍니다. 이 변환되어 만들어진 OBJ 파일을 Linker에 넣어주면
Linker는 이를 우리가 컴퓨터를 하며 제일 많이 보게 되는 PE파일(ex: EXE 파일)로
만들어 줍니다.

반대로 Disassembler 라는것이 있습니다. Disassembler란
이미 Assembler와 Linker를 거쳐 생성된 PE파일을 다시 어셈블리어 코드로 바꾸어
주는 프로그램 입니다.우리는 이 Disassembler를 이용하여 프로그램을 역분석
할수 있습니다. 이런 Disassembler툴 중에 필자가 추전할만한 것은 역시
사람들이 가장 많이 애용하는 W32DASM 이나 IDA 혹은 PVDasm 입니다.
그러나 PVDasm은 9x계열에서만 작동함으로, 별로이고 IDA는 초보자에겐
너무나도 복잡하게 느껴질수도 있음으로 간단한 인터페이스를 가지고 있는
W32DASM을 추천 하겠습니다.

그럼 이 Disassembler 만으로 우리는 모든 RE작업을 할수 있을까요?
대답은 아니올시다 입니다. 물런 간단한 작업들이야
그냥 Disassembler만 가지고 할수 있을 것입니다.
그러나 Disassembler 만으로는 불가능 할때가 있습니다.

이런 우리의 갈등을 해결할수 있도록 해주는 것이 Debugger입니다.
원래 Debugger는 프로그램의 Bug를 잡기위해서 만들어진 프로그램 입니다.
그러나 우리는 이 Debugger를 Bug를 잡기 위해 사용하는 것이 아니라,
프로그램에 Break Point를 걸어 원하는 부분을 찾거나,
한줄씩 Step by Step 으로 실행해 가거나 값을 조금씩 바꿔 가며 Input 하여
OutPut 되는 값들을 보는 피드백의 과정을 위해 사용 합니다.
이런 Debugger 중에 추천을 하라면 역시 거의 모든 분들이 최고로 뽑는
SoftIce와 OllyDbg를 뽑겠습니다. SoftIce는 역시 기능적인 면에서는 좋으나
Dos 인터페이스는 초보자에게 거부감을 느끼게 할수도 있습니다.
OllyDbg는 GUI 인터페이스를 가진 Win32 툴이기 떄문에 저는
초보자 분들에게는 OllyDbg를 더 추천 합니다.

앞으로의 글들은 Disassembler와 Debugger 를 가지고 진행 될것입니다.
앞으로의 글들을 통해서 많은 RE기술을 터득하시기 바랍니다.

출처: http://dualpage.muz.ro/

Advertisements

답글 남기기

아래 항목을 채우거나 오른쪽 아이콘 중 하나를 클릭하여 로그 인 하세요:

WordPress.com 로고

WordPress.com의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Twitter 사진

Twitter의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Facebook 사진

Facebook의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Google+ photo

Google+의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

%s에 연결하는 중