-
[2021/09/16][짤막한 이야기 - 임포트 주소 테이블]짤막한 이야기 2021. 9. 16. 06:22728x90반응형
[2021/09/16][짤막한 이야기 - 임포트 주소 테이블]
"임포트 주소 테이블(Import Address Table, IAT)"은 Windows 실행파일(.exe)에서 사용할 함수 주소를 저장하는 테이블이다.
함수 주소와 함께 함수명도 확인할 수 있기 때문에, 정적 분석을 적용할 때 이 오브젝트를 확인함으로써 대략적인 기능성을 유추할 수 있다.
예를 들어, "FileOpen"이라는 함수의 주소가 IAT에 저장되어 있다면 이 프로그램은 특정 파일을 열어서 처리를 한다고 짐작하는 것이다.
그런데 패킹된 프로그램에서는 IAT가 상당부분 훼손된다.
물론 패킹된 코드가 언패킹 완료되기 전에는 프로그램 실행이 불가능한 것처럼, 훼손된 IAT만으로는 원본 프로그램의 기능성을 다 할수 없다.
따라서 언패킹을 연구할 때에는 반드시 IAT를 복원하는 방법론을 함께 연구하게 된다.
복원 방법론에 대하여 언급하기에 앞서, IAT에는 함수 주소를 저장하는 테이블이라고 하였는데, 반드시 주소만을 저장하는 것은 아니다.
IAT를 구성할 수 있는 방법은 최소한 3가지가 있다.
함수 주소, 함수 이름, 함수 서수(Ordinal)로 구성하는 방법이다.
아래 그림은 함수 이름으로 IAT를 구성하는 방법이며, 위 그림은 이를 핀툴로 추출한 결과이다.
각각의 구성 방법에 대해서는 다음 포스트에서 연계하여 설명한다.
[관련된 문서 - 핀툴 프로그래밍 기본서[제3부. 핀툴로 UPX 언패킹하기]]
#이야기 #루니프 #핀 #핀툴 #패킹 #언패킹 #UPX #패킹된코드 #훼손된IAT #원본오브젝트
[2021/09/16][Short story - Import Address Table]
"Import Address Table (IAT)" is a table that stores function addresses to be used in Windows executable files (.exe).
Since the function name can be checked along with the function address, the approximate functionality can be inferred by checking this object when applying static analysis.
For example, if the address of a function called "FileOpen" is stored in IAT, it is assumed that this program opens a specific file and processes it.
However, in a packed program, the IAT is significantly damaged.
Of course, just as the program cannot be executed until the packed code is unpacked, damaged IAT alone cannot fulfill the functionality of the original program.
Therefore, when studying unpacking, the methodology for restoring IAT must be studied together.
Before mentioning the restoration methodology, IAT said that it is a table that stores function addresses, but it does not necessarily store only addresses.
There are at least three ways you can configure the IAT.
This is a method of composing the function address, function name, and function ordinal.
Below figure is about IAT configuration method by using function name, and above figure is result of extracting IAT with PinTool.
Each configuration method will be described in connection with the following post.
[Related Documents - Basic Book for PinTool Programming[Part3. Unpacking UPX with PinTool]]
#Story #LootNiP #Pin #PinTool #Packing #Unpacking #UPX #PackedCode #DamagedIAT #OriginalObject728x90반응형'짤막한 이야기' 카테고리의 다른 글
[2021/09/23][짤막한 이야기 - 임포트 주소 테이블 복원(방법론)] (0) 2021.09.23 [2021/09/17][짤막한 이야기 - 임포트 주소 테이블(구성)] (0) 2021.09.17 [2021/09/15][짤막한 이야기 - 언패킹(개념)] (0) 2021.09.15 [2021/09/14][짤막한 이야기 - 최소 공통 조상(개선)] (0) 2021.09.14 [2021/09/13][짤막한 이야기 - 최소 공통 조상] (0) 2021.09.13