본문 바로가기

Reversing/개념

[DreamHack] 5강 : hello-world.exe로 배우는 x64dbg 사용법

벌써 5강 :)

오늘은 실습이라서 함께 따라하면서 하려고한다.

실습에서는 x64dbg와 visual studio 2019를 사용하였다. 

 

 


 

첫번째로 visual studio 2019를 이용하여, "hello world!"를 출력하는 프로그램을 사용했다

프로그램명은 hello-world.exe 이며, 64비트 릴리즈 모드로 컴파일 하고, 옵션에서 임의 기준 주소를 아니오로 바꾸었다.

{임의 기준 주소 설정 : 실행될 때 마다 프로그램의 주소가 항상 같도록 설정)

 

 

프로그램이 준비되면, x64dbg로 hello-world.exe 파일을 열어준다. 

 

 

파일을 열고, 설정-환경설정에서 시스템 중단점을 해제해준다.

그렇게 되면 아래의 사진과 같이 hello-world.exe의 시작 지점에서 멈춘 상태로 디버깅이 시작된다.

 

이제 mian 함수를 찾아보겠다.

main 함수를 찾는 방법에는 세가지가 있다.

정해진 패턴으로 찾는 방법 / 문자열 검색으로 찾는 방법 / 임포트한 함수(모듈간 호출 찾기)로 찾는 방법

 

참고로 정해진 패턴으로 찾는 경우는 visual studio 2019 64비트 릴리즈 모드를 통해 컴파일 된 바이너리에 대해서만 사용할 수 있는 방법이라고 한다.

자세하게 main 함수를 찾는 방법에 대해서는 쓰지 않고, main 함수를 찾은 결과는 아래와 같다.

 


여기까지가 5강에 포함된 내용이다. 생각보다 간단하고 짧게 끝났다.

오늘 실습하면서 느꼈던 점은, 정말 어렵다,,,

무슨 내용인지도 잘 모르겠고, 확실히 간단하게 설명되어 있어서 그런지 리버싱 바보인 나로써는 많이 부족한 느낌이 들었다.

main함수도 강의에 나와있는 것과는 다르게 구성되어있고, 어디가 시작인지, 어디가 끝인지 등등,,, 따라는 했지만 내가 얻은 지식은 100 중에서 8 정도인것같다,,,

지난번에 우연하게 리버싱 책을 사왔는데, 아무래도 책으로 공부하는 편이 나을 것 같다.

6,7강은 난이도도 높고 고급 실습인 것 같은데, 그래도 남았으니, 끝까지는 해야겠다.

책으로 공부한 후에, 다시 DreamHack 강의를 보면 이해가 잘 될수도 있을 것 같다.