Helloworld.exe 올리디버그로 어셈코드를 분석!
HUJ
귀엽당..ㅎ
Helloworld.c를 컴파일해서 올리디버그로 각각 어셈코드를 분석해보겠습니다~
이쁜 Visual Studio 열어서 Hello world! 가 출력되게 다음과 같이 작성해줍니다.
#include <stdio.h>
int main()
{
printf("Hello world!\n");
return 0;
}
F5를 눌려서 디버깅을 해줍니다.
만약, Ctrl+F5를 눌려서 디버깅않고 시작해주면 다음 그림처럼 뜨게 되겠쥬
그럼 빠져나와서 Helloworld 프로젝트 저장한곳을 찾아줍니다. 그다음 Debug파일에 들어가셔서 다음그림처럼 Helloworld.exe를 찾으면 됩니다.
찾기어려우시면
[시작 - 검색창에 Helloworld.exe (자신이 만든 프로젝트이름)] 치고 오른쪽 클릭하셔서 파일위치열기 누르시면 나옵니다.~
다음 올리디버그를 열어주시고, 저 파일을 찾아 open 해줍니다.
그럼 다음과 같이 뜨게될껍니다.
(이제 그림밑에 설명써야징)
64bit컴퓨터에 버전 110을 사용하시면 저 하얀창 뒤엔 요렇게..ㅜ
그래서 전 다시 220을 깔고 다시 환경설정했습니다.ㅜㅜ
이제 안나타나고 잘실행되네요>< 본격적으로 분석해보겠습니다.
일단 처음해보는 분석이니, F7을 누르면서 하나하나 살펴보고, int main에 해당하는 부분을 찾아봅니다.
이것저것 보는중..ㅋㅋㅋ
일단 윗 그림처럼 찾기 쉬운, ASCII 코드로 되어있을 "Hello world!" 라고 출력될 코드를 찾아봅시다. 컨트롤 에프 눌려서 찾고싶다만.. 안됨...ㅠㅠ
제가 찾아본 방법은 이렇습니다.
CPU 창에서 오른쪽 클릭! 문자열string 일테니, [Search for - All referenced Strings] 으로 들어가 봅시당
창이 뜸과 동시에, ASCII 코드로 표시된 "Hello world!" 발견!!! 저 빨간상자를 눌려주시면 해당 주소로 알아서 찾아가줍니다ㅎㅎㅎ
ㅎㅎㅎㅎ발견ㅎㅎㅎ
거기서 F2로 BreakPoint설정하고 F7을 누르니, 스택 창보시면 comment에도 가리키는걸 보실수있습니다.
이제 return 0;의 어셈코드를 보고싶었는데,, 스택창 comment에서 return 같은게 있네요
이건 더 배우고 와야될듯ㅜ
ㅃㅃ
'Reversing' 카테고리의 다른 글
Reversing Microsoft Visual C++ <클래스, 메소드 및 RTTI> 정리 (0) | 2014.09.30 |
---|---|
Hello_8UG.exe 디버깅 하기!! (1) | 2014.09.24 |
올리디버거(Ollydbg) 설치 및 사용법 (2) | 2014.09.22 |