디버깅 (4) 썸네일형 리스트형 Reversing Theory- abex' crackme #1 *올리디버거 1.1 버전으로 사용합니다. 소스코드 없이, exe파일로 디버깅을 해보겠습니다. 우선 예제 파일을 열어볼게요. 해당 파일은 크랙연습용 공개파일입니다. 이렇게 확인을 누르면, 에러메시지창이 뜹니다. 올리디버거로 열어보겠습니다. 해당 코드윈도우부분을 보시면 매우 간단한 것을 알 수 있습니다. 이 아래부분은 00,,, 밖에 없습니다. 코드가 간단하니 이해하기도 상대적으로 쉬울 것이라고 예상해봅니다. stub code가 없는것으로 보아 이 파일은 어셈블리로만 작성이 된 코드입니다. 맨처음에 실행되는 것은 messagebox A 함수입니다. 실행시에 첫 화면이 뜨고, 이후 에러메시지가 뜬 창이 하나 더 있었으니 메시지박스 함수가 하나 더 있겠죠 아래를 보니 두개가 더 있네요. 파란네모부분은 기존에 보.. 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에서 사용하기 위해 한가지를 설치해주.. 이전 1 다음