안경잡이개발자

728x90
반응형

  기드라(Ghidra)미국 국가 안보국(NSA)에서 만들어 오픈 소스로 공개한 역어셈블리어 프레임워크입니다. 기드라를 이용하면 기존에 작성되어 있는 프로그램을 효과적으로 디버깅하고 분석할 수 있습니다. IDA Pro에 대적할 수 있는 무료 프로젝트라고 알려져 있습니다.

 

  ▶ 기드라(Ghidra) 공식 홈페이지: https://ghidra-sre.org/

 

  기드라는 공식 홈페이지에서 매우 간단하게 설치할 수 있습니다.

 

 

  기드라는 JDK 11 버전 이상을 요구합니다. 따라서 기드라를 정상적으로 이용하기 위해서는 사전에 JDK가 설치되어 있는지 확인해주셔야 합니다. JDK 11 이상이 설치되어 있지 않다면, JDK 11이 설치된 폴더를 입력하라는 박스가 나오게 됩디다. 혹시 JDK 11이 존재하지 않으시는 분은 아래 경로에서 설치하실 수 있습니다.

 

  ▶ JDK 11 홈페이지: https://www.oracle.com/technetwork/java/javase/downloads/jdk11-downloads-5066655.html

 

 

  이제 Windows 사용자의 경우, Ghidra 배치 파일을 실행하여 프로그램을 동작시킬 수 있습니다.

 

 

  Ghidra를 처음 실행한 분이라면 다음과 같이 [Ghidra Help] 창이 등장할 겁니다. 이 문서를 참고하여 Ghidra를 어떻게 사용할 수 있는지 공부해 보시는 것을 추천합니다. 이 창을 닫더라도 [F1]을 누르면 다시 등장합니다.

 

 

  기드라를 실행한 뒤에 프로젝트를 생성하여, 특정한 프로그램에 대한 분석이 가능합니다.

 

 

  [Ctrl + N]을 눌러서 하나의 프로젝트를 새롭게 만들어 주겠습니다.

 

 

  저는 다음과 같이 Test라는 이름으로 하나의 프로젝트를 생성해 보았습니다.

 

 

  이제 분석을 하고자 하는 프로그램 파일을 프로젝트 이름이 적힌 곳으로 Drag & Drop하여 놓으면 파일을 열어서 분석할 수 있게 됩니다. 이후에 프로그램은 어떠한 Format으로 열 것인지 설정할 수 있는데, 기본 설정 그대로 프로그램을 열 수 있습니다.

 

 

  프로그램이 열린 이후에는 자신이 새롭게 연 프로그램에 대하여 요약 된 정보를 보여줍니다.

 

 

  또한 특정한 옵션에 따라서 분석해주는 기능이 존재합니다.

 

 

  [Yes] 버튼을 눌러서 기본 옵션 그대로 분석(Analysis)을 진행할 수 있습니다.

 

 

  또한 자주 많이 사용하는 기능으로는 문자열(String) 검색이 있습니다.

 

 

  문자열을 어떤 방식으로 분석할 지 설정할 수 있는데, 기본 설정 그대로 하면 길이가 5 이상은 문자열을 추출합니다.

 

 

  다음과 같이 특정한 문자열을 검색하여, 해당 문자열이 어디에서 등장하는지 확인할 수 있습니다.

 

 

  저는 해당 문자열이 나온 부분을 확인하여, 이 문자열이 어떤 함수에서 참조되는지 확인해보았습니다.

 

 

  특정한 함수의 소스코드 부분을 클릭하면, 자동으로 [Decompile] 영역에 디컴파일 된 소스코드 내용이 출력됩니다. IDA Pro의 Hex-Ray와 흡사하게 동작한다고 이해할 수 있습니다.      

 

 

  그리고 역어셈블리어 도구라고 하면, 플로우 그래프를 그려주는 기능을 빼놓을 수 없습니다. 저는 [Function Graph] 창을 한 번 열어보았습니다.

 

 

  이후에 Main 함수를 검색하여, 해당 함수를 [Function Graph]로 확인하면 다음과 같습니다.

 

 

  이상으로 Ghidra의 기본적인 기능을 확인해보았습니다.

728x90
반응형