최신목록

2015년 8월 28일 금요일

[OllyDbg]main함수 찾는 방법(API 검색)

OllyDbg에서 내가 원하는 코드를 찾는 방법(OllyDbg110)
간단한 프로그램 실행중 Win32 API가 추측이 되면 검색하여 코드를 찾는 방법입니다.

여러가지가 있지만 일단 제가 사용하는 방법을 공유합니다.

먼저 lv.exe 바이너리를 open하면 바로 lv.exe의 entry point로 이동하는것이 아니라 시스템 영역(ntdll)에서 시작합니다.

 여기서 일단 lv 코드 영역으로 이동을 해야합니다.
F7을 눌러서 코드영역에 lv 모듈로 넘어갈때까지 진행하셔도 되고 Memory Map을 이용하셔서 바로 이동해도 됩니다.
코드 영역에서 Alt+M을 클릭하면 Memory Map이 나오고 lv의 text 영역의 시작주소를 확인하여 코드영역을 선택한 후 Ctrl+G를 이용하여 해당 주소로 이동하면 됩니다.

module lv 영역으로 진입후
코드 영역의 마우스 우클릭 메뉴에서 Search for > All intermodular calls 를 선택합니다.
아래와 같이 사용하고 있는 API 목록이 오른쪽에 보여집니다.

위는 printf 함수를 보여주고 있습니다.
이를 더블클릭하면 원하는 곳으로 이동합니다.


댓글 2개:

  1. 질문잇음다 .위처럼 일부프로그램들이 올리로 열면 바로 메인이뜨는게 아니고 dll이나 이상한게 메인에 뜨던데 이유가 먼가여? 생초봅니다

    답글삭제
    답글
    1. 위에 글처럼 프로그램을 실행하면 메인이 바로 뜨지 않고 ntdll 과 같은 시스템 영역에서 시작합니다. 그래서 윗 글처럼 메모리맵이나 함수 이름등을 이용해서 메인을 찾아야 해요~ 그방법을 설명한 글입니다~

      삭제