METHOD AND APPARATUS FOR DETERMINING BINARY FUNCTION ENTRY
바이너리 함수 시작 위치 판단 방법은 바이너리 코드를 파싱(parsing)하여 텍스트 영역 및 예외 처리 영역을 구분하는 단계, 상기 텍스트 영역을 디스어셈블링(disassembling)하여 엔드 브랜치(end branch) 명령어의 주소, 다이렉트 콜 타겟(direct call target)의 주소 및 다이렉트 점프 타겟(direct jump target)의 주소를 판단하는 단계, 상기 엔드 브랜치 명령어의 주소 중에서 인다이렉트 리턴 함수 호출 주소를 판단하는 단계, 상기 엔드 브랜치 명령어의 주소 중에서 예외 처리 블록의 주소...
Saved in:
Main Authors | , , , |
---|---|
Format | Patent |
Language | English Korean |
Published |
07.06.2024
|
Subjects | |
Online Access | Get full text |
Cover
Loading…
Summary: | 바이너리 함수 시작 위치 판단 방법은 바이너리 코드를 파싱(parsing)하여 텍스트 영역 및 예외 처리 영역을 구분하는 단계, 상기 텍스트 영역을 디스어셈블링(disassembling)하여 엔드 브랜치(end branch) 명령어의 주소, 다이렉트 콜 타겟(direct call target)의 주소 및 다이렉트 점프 타겟(direct jump target)의 주소를 판단하는 단계, 상기 엔드 브랜치 명령어의 주소 중에서 인다이렉트 리턴 함수 호출 주소를 판단하는 단계, 상기 엔드 브랜치 명령어의 주소 중에서 예외 처리 블록의 주소를 판단하는 단계, 상기 엔드 브랜치 명령어의 주소로부터 상기 인다이렉트 리턴 함수 호출 주소 및 상기 예외 처리 블록의 주소를 제외하는 단계 및 상기 다이렉트 점프 타겟의 주소 중에서 바이너리 함수 시작 위치에 대응하는 테일 콜(tail call)을 판단하는 단계를 포함한다.
A method for determining a binary function entry includes distinguishing a text section and an exception handling section by parsing a binary code, disassembling the text section to determine an address of an end branch instruction, an address of a direct call target, and an address of a direct jump target, determining an indirect return function call address from the addresses of the end branch instructions, determining an exception handling block address from the addresses of the end branch instructions, excluding the indirect return function call address and the exception handling block address from the addresses of the end branch instructions and determining a tail call corresponding to the binary function entry from the addresses of the direct jump targets. |
---|---|
Bibliography: | Application Number: KR20220162373 |