-
[2021/09/17][짤막한 이야기 - 임포트 주소 테이블(구성)]짤막한 이야기 2021. 9. 17. 06:34728x90반응형
[2021/09/17][짤막한 이야기 - 임포트 주소 테이블(구성)]
IAT의 구성 방법 중 하나는 함수 이름으로 IAT를 구성하는 것이다.
이를 위해서는 사용할 함수의 이름을 프로그램 내에 별도로 저장하여야 하며, 해당 함수 이름이 저장된 주소를 IAT에 넣어주면 된다.
함수 이름이 정확하게 입력되었다면, 프로그램의 실행 과정 중 (함수 이름의 주소였던) IAT의 값이 함수의 시작 주소로 자동 변환된다.
다른 구성 방법은 함수 주소(함수의 시작 주소)를 IAT 위치에 저장하는 것이다.
가장 일반적으로 알려진 구성 방법이다.
마지막은 꽤 생소할 것인데, 함수의 서수를 IAT에 입력하는 것이다.
서수는 "첫번째, 두번째, 세번째..." 등을 의미하며, 여기서는 "특정 라이브러리의 X번째 함수"를 IAT에 표기하는 것이다.
그러면 앞에서와 마찬가지로 프로그램의 실행 과정 중 (함수의 서수였던) IAT의 값이 함수의 시작 주소로 자동 변환되는 것이다.
서수 표기법은 이름/주소 표기법과 달리 MSB(Most Significant Bit)를 1로 셋팅함으로써 현재 표기법이 서수 표기법임을 프로그램에 알려주어야 한다.
즉, 서수 표기법으로 IAT가 구성되는 경우 그 IAT의 원소들은 "0x8000..."으로 시작하게 된다.
[관련된 문서 - 핀툴 프로그래밍 기본서[제3부. 핀툴로 UPX 언패킹하기]]
#이야기 #루니프 #핀 #핀툴 #패킹 #언패킹 #IAT #구성 #이름 #주소 #서수
[2021/09/17][Short story - Import Address Table(Construct)]
One of the methods of constructing IAT is to construct the IAT with a function name.
To do this, the name of the function to be used must be stored in the program, and the address where the function name is stored is put into the IAT.
If the function name is entered correctly, the value of IAT (which was the address of the function name) is automatically converted to the start address of the function.
Another construction method is to store the function address (the start address) in the IAT.
This is the most commonly known method.
The last one, which may be unfamiliar, is to input the ordinal of the function in the IAT.
Ordinal numbers mean "first, second, third...", etc. Here, "Xth function of a library" is stored in the IAT.
Then, as before, the value of IAT (which was the ordinal number of the function) is automatically converted to the starting address of the function.
Unlike the name/address method, the ordinal method has to inform the program that the current method is the ordinal by setting the Most Significant Bit (MSB) to 1.
That is, when the IAT is constructed with the ordinal, the elements of the IAT start with "0x8000...".
[Related Documents - Basic Book for PinTool Programming[Part3. Unpacking UPX with PinTool]]
#Story #LootNiP #Pin #PinTool #Packing #Unpacking #IAT #Construct #Name #Address #Ordinal728x90반응형'짤막한 이야기' 카테고리의 다른 글
[2021/09/24][짤막한 이야기 - 임포트 주소 테이블 복원(예시)] (0) 2021.09.24 [2021/09/23][짤막한 이야기 - 임포트 주소 테이블 복원(방법론)] (0) 2021.09.23 [2021/09/16][짤막한 이야기 - 임포트 주소 테이블] (0) 2021.09.16 [2021/09/15][짤막한 이야기 - 언패킹(개념)] (0) 2021.09.15 [2021/09/14][짤막한 이야기 - 최소 공통 조상(개선)] (0) 2021.09.14