2011년 10월 19일 수요일

p1) PE의 IAT 테이블

There are different Microsoft Windows operating systems, 윈도우즈 운영체제는 여러 종류가 있습니다.


(XP, win7..., server, ....)

and they all have different addresses for their API functions, 그리고 구조가 달라서 API 함수들의 주소도 다릅니다.

because of different structured DLL's. When an application starts, 어플이 시작될 때

it has a list of all functions that aren't originally a part of the application. 어플의 가상 주소의 리스트를 가지고

있습니다. These functions, called imports, 이 함수들은 imports 라고 불리고

are located in the operating systems DLL's 운영체제의 시스템 DLL에 위치합니다.

but the application doesn't know where. 그런데 어플은 그게 어딨는지 모르죠.

Every win32 executable application has an Import Address Table (IAT) 모든 윈32 실행가능한 어플은 IAT라는 놈을

residing inside the program. 가지고 있습니다.

The IAT is used as a lookup table API function. IAT는 API 함수를 찾는데 쓰이죠.

So before starting, the windows loader has to find each address of each API that the program wants to call and


"constructs" an IAT with them. 그래서 시작될 때 윈도우 로더는 각각 다른 API에서 주소를 찾습니다. 프로그램은 그 주소로

When the program is running and it wants to call an API, 호출하고 고걸로 IAT 테이블을 구성하는거죠.

it simply looks in the IAT and thus finds immediately the address IAT 테이블 보고 주소를 찾는건 쉽습니다.

it needs to go in the DLL! 찾는건 DLL로 가는게 필요합니다. When an executable has been packed or protected the reverse


engineer must recover the original executable file 팩이 되어 있거나 방어되어 있으면 리버서는 실재 파일을 복구해야 합니


다. because a lot of packers/protectors destroy the IAT 왜냐면 IAT를 망가뜨려버리거든요.

(while taking care of findidng the API's for the program). 프로그램의 API를 찾는 동안

The import address table needs to be either rebuilt or fixed to allow for the executable to run properly. Import


rebuilding is the 임포트된 주소테이블은 재생성되어야 하거나 제대로 실행되도록 고쳐져야 합니다.reconstruction of the


Import address table(IAT). 임포트된 재생성물은 다시 만들어진 IAT테이블 입니다.

So far a short overview of the problem. 지금까지 짧은 개요의 요지는

To understand all better and to be able to rebuild the IAT, IAT 테이블을 다시 만드는 것을 이해하는 겁니다.

it will be necessary dig a little deeper in the theory. 이론은 좀 더 깊게 팔 필요가 있습니다.

However, 그러나

I will only tell you 우리랑 관계없는건 다 빼고 이해하기 위해 정말 뭐가 필요한지만 말하겠습니다.here what's really


necessary to understand and I'll skip those parts that are of no concern for us.

댓글 2개:

  1. ah. thank you very much. i couldn't type hangul because of windows8(consumer edition) problems...

    답글삭제

국정원의 댓글 공작을 지탄합니다.

UPBIT is a South Korean company, and people died of suicide cause of coin investment.

 UPBIT is a South Korean company, and people died of suicide cause of coin. The company helps the people who control the market price manipu...