snd-reversingwithlena-tutorial20.tutorial

min_fo·2023년 6월 14일
0

기본적인 용어

EP : entry point
OEP : origin entry point
PEP : packed entryl point

언패킹은 OEP를 찾는 것이다.

scylla 사용 방법

  1. 언패킹 후 덤프를 뜨는 것이 목적이라면 먼저 OEP 까지 진입하자.
  1. 현재 EIP가 OEP에 위치한다면 플러그인 탭에서 Scylla를 선택한다.
  1. 중간 왼쪽 부분을 보면 현재 EIP 주소에 맞게 OEP가 자동으로 설정되어 있을테니 굳이 추가할 필요는 없고 바로 오른쪽을 보면 "IAT Autosearch"라는 버튼이 있다. 이것을 클릭한다. 클릭 후 두 개 정도의 확인 버튼이 팝업된다.
  1. 다음으로는 바로 아래의 버튼인 "Get Imports" 버튼을 클릭한다.
  1. 이후 오른쪽의 "Dump" 버튼을 클릭하면 덤프된 exe를 저장시킬 위치를 선택할 수 있다. 기본적으로 원본 exe 이름 뒤에 "_dump"라는 이름이 붙어서 저장되는 것을 볼 수 있을 것이다. 저장된 결과물은 간단하게 덤프한 것으로서 IAT가 복구되지 않아서 실행되지 않을 것이다.
  1. 이제 바로 아래의 "Fix Dump" 버튼을 클릭한다. 그리고 방금 전 저장했던 덤프한 exe 파일을 불러온다. 그러면 또 다른 실행 파일이 생성되며 (이름 뒤에 "_SCY"가 붙는다) 최종 결과물로서 실행까지 되는 것을 확인할 수 있다.

OEP를 찾는법

  1. 패커에 따라 언패킹하는 방식은 모두 다르다.

  2. 하지만, 기본적으로 프로그램이 실행되기 위해서 상대 메모리 주소가 패킹 이전과 같아야 한다.

  3. 코드 영역으로 들어가면 그 것이 OEP라고 의심할 수 있다.

profile
포렌식을 공부하는 학생입니다.

0개의 댓글