본문 바로가기

728x90

study/악성코드분석&리버싱

(22)
악성코드 분석- 기초 정적 분석, PE 파일 윈도우에서 가장 많이 악성코드로 제작되어 배포되는 PE 파일에 대해 알아보겠습니다. PE(Portable Excutable)파일 - win32 기본 파일형식 - exe, scr, sys, dll ... PE파일의 실행과정은 다음과 같습니다. 1. PE파일 실행 2. 헤더 정보를 메모리에 매핑 3. 실제 프로그램 코드로 분기 PE파일을 분석하는 방법은 헥사 에디터를 통하면 되는데요, 이전 글에서 사용했던 PEview를 사용하면 더 쉽게 보실 수 있습니다. 컴퓨터에 다 있는 메모장! 을 활용해서 한번 분석해보겠습니다. notepad.exe 를 PEviewer로 분석을 할 것입니다. notepad.exe 의 위치는 C:\Windows\System32에 가시면 확인 가능합니다. PEview로 notepad.ex..
Reversing Theory- abex' crackme #1 *올리디버거 1.1 버전으로 사용합니다. 소스코드 없이, exe파일로 디버깅을 해보겠습니다. 우선 예제 파일을 열어볼게요. 해당 파일은 크랙연습용 공개파일입니다. 이렇게 확인을 누르면, 에러메시지창이 뜹니다. 올리디버거로 열어보겠습니다. 해당 코드윈도우부분을 보시면 매우 간단한 것을 알 수 있습니다. 이 아래부분은 00,,, 밖에 없습니다. 코드가 간단하니 이해하기도 상대적으로 쉬울 것이라고 예상해봅니다. stub code가 없는것으로 보아 이 파일은 어셈블리로만 작성이 된 코드입니다. 맨처음에 실행되는 것은 messagebox A 함수입니다. 실행시에 첫 화면이 뜨고, 이후 에러메시지가 뜬 창이 하나 더 있었으니 메시지박스 함수가 하나 더 있겠죠 아래를 보니 두개가 더 있네요. 파란네모부분은 기존에 보..
Reversing Theory- little endian 악성코드를 분석할 때, 소스코드를 모르는 상태에서 분석해야하는 것이 대부분입니다. 리버싱 또한, 소스와 결과물 없이 분석을 해야합니다. 앞으로 우리는 디셈블 코드를 주로 보게 될겁니다. 그런데 이 디셈블 코드도 없이! 오직 헥사코드로만 분석을 해야하는 경우가 있습니다. 바이트 오더링: 컴퓨터에서 메모리에 데이터를 저장하는 방식입니다. 두가지의 방법이 있는데, Big Endian과 Little Endian이 있습니다. Big Endian- 순서대로 표기 Little Endian- 역순으로 표기 여기서 우리가 주목해야할 방법은 Little Endian 이 되겠습니다. 리틀에디언 방식은 윈도우계열에서 사용이 되기때문에 알아두어야겠죠? 우선 예제 코드를 보겠습니다. #include "windows.h" BYTE..
Reversing Basic- helloworld.exe *ollydbg 2.0, 윈도우 10에서 진행하고 있습니다. 앞에서 작성한 helloworld 코드를 다시 보겠습니다. #include "windows.h" #include "tchar.h" int _tmain(int argc, TCHAR* argv[]) { MessageBox(NULL, L"Hello World!", L"www.reversecore.com", MB_OK); return 0; } 저희가 작성한 메인은 아주 짧은데요. 이 메인함수를 찾아보겠습니다. 첫번째 방법은 F8(step over)를 이용하는 것입니다. 계속 누르다보면 창이 하나 뜨게됩니다. visual studio에서 창이 뜨도록 코딩을 해놓았기 때문이죠! 여기서 주목해야할 점은 CALL 00401000 이 호출되고, main함수로 ..
Reversing Basic- ollydbg 기본 명령어 올리디버거를 사용하기전에, 왜 사용하는지! 디버깅이 무엇인가요? 우리가 기본적으로 작성한 소스코드(cpp)를 컴파일하면 exe파일로 나타나게 됩니다. 그렇게 되면, 당연히 제작자는 exe파일이 어떻게 동작하는지 압니다. 소스코드를 직접 작성했으니까요. 앞에서 helloworld를 작성한 것은 아주 간단하게 메시지 창을 띄워주는 프로그램이었습니다. 만약에 소스코드 없이, exe파일만 가지고 있다면 이게 어떤 파일인지 알 수 없겠죠? 우리의 코드는 창을 띄워주어서 실행한다면 알 수 있지만, 보여지는 것 없이 뒤에서 작업이 되는 파일이라면 알 수가 없겠죠. 그래서 디버깅 툴을 사용하는 것입니다. 어셈블리 언어로 번역해서 보여주는 것이죠! 그래서 우리가 사용할 디버거는 올리디버거입니다. 제일 많이 쓰고, 무료니..
Reversing Basic- ollydbg install+ setting 리버싱을 하기위해 우선 필요한 프로그램들을 먼저 말씀드리겠습니다. 1. visual studio - 코딩을 해야하니까요. - 비주얼 스튜디오에 대한 것은 리버싱을 하려고 하시는 분이라면 다들 기본적으로 설치되었을거라고 생각합니다. - 코딩 하시는 분들이라면 이미 다 설치되어있겠죠..? 설명 생략하겠습니다! 2. ollydbg - 실제 분석을 위해 올리디버거가 필요합니다. - 올리디버거는 1.1 버전(32bit) ,2.0버전(64bit). - 아래 설명은 1.1 버전을 64bit에서 사용하기위한 세팅입니다. 3. helloworld.exe - 샘플용으로 작성할 파일입니다. http://www.ollydbg.de/ 에서 파일을 받아 설정을 하겠습니다. 1. 우선 64bit에서 사용하기 위해 한가지를 설치해주..

728x90
반응형