굳이 이것을 주제로 블로그에 글을 쓰는 것은 디버깅 중 덤프를 뜨는 것과 관련된 자료들이 대부분 오래된 것들이고 복잡하기도 하며 요즘에는 통하지 않는 경우도 많기 때문이다. 예를들어 요즘 공부하면서 디버거로 덤프를 떠보려고 한다면 가장 많은 자료를 확인할 수 있는 OllyDbg를 이용할 것이며 이와 관련된 LoadPE, ImportREC, OllyDump, OllyDumpEx 등과 관련된 자료를 찾아볼 것이다. 더 나아가 자료들 중에서 상당 수가 OllyDbg 1.x 기준이라는 것을 확인할 수 있을 것이고 얼마 되지 않는 OllyDbg 2.x 자료를 찾아봐야 할 것이다.



  x64dbg를 사용할 경우 디폴트로 존재하는 기본 플러그인 "Scylla"를 사용해서 쉽게 덤프를 뜰 수 있다. 물론 덤프 뿐만 아니라 Import Table 복구 등 모든 과정을 Scylla 하나로 간단하게 수행할 수 있다.



1. 언패킹 후 덤프를 뜨는 것이 목적이라면 먼저 OEP 까지 진입하자. 


2. 현재 EIP가 OEP에 위치한다면 플러그인 탭에서 Scylla를 선택한다. 


3. 중간 왼쪽 부분을 보면 현재 EIP 주소에 맞게 OEP가 자동으로 설정되어 있을테니 굳이 추가할 필요는 없고 바로 오른쪽을 보면 "IAT Autosearch"라는 버튼이 있다. 이것을 클릭한다. 클릭 후 두 개 정도의 확인 버튼이 팝업된다. 


4. 다음으로는 바로 아래의 버튼인 "Get Imports" 버튼을 클릭한다. 


5. 이후 오른쪽의 "Dump" 버튼을 클릭하면 덤프된 exe를 저장시킬 위치를 선택할 수 있다. 기본적으로 원본 exe 이름 뒤에 "_dump"라는 이름이 붙어서 저장되는 것을 볼 수 있을 것이다. 저장된 결과물은 간단하게 덤프한 것으로서 IAT가 복구되지 않아서 실행되지 않을 것이다. 


6. 이제 바로 아래의 "Fix Dump" 버튼을 클릭한다. 그리고 방금 전 저장했던 덤프한 exe 파일을 불러온다. 그러면 또 다른 실행 파일이 생성되며 (이름 뒤에 "_SCY"가 붙는다) 최종 결과물로서 실행까지 되는 것을 확인할 수 있다.



  이렇게 몇 번의 클릭 만으로 덤프 및 IAT 복구가 가능한데 검색하다 보면 수 많은 삽질들을 할 수 밖에 없는 방식들이 대부분이라서 굳이 블로그 글로 남기려고 한다. 원리를 아는 것도 중요하지만 결과도 그만큼 중요하기 때문에.



'악성코드 분석' 카테고리의 다른 글

TotalCommand 자동화  (0) 2018.12.16
x64dbg 분석 팁  (0) 2018.12.15
[Tool] ejExtractor  (0) 2018.12.10
윈도우의 서비스  (0) 2018.11.03
악성 행위에 사용될 수 있는 시스템 유틸리티  (0) 2018.09.30
Posted by SanseoLab

블로그 이미지
Malware Analyst
SanseoLab

태그목록

공지사항

Yesterday
Today
Total

달력

 « |  » 2024.3
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31

최근에 올라온 글

최근에 달린 댓글

글 보관함