함수 인자 전달 레지스터(64bit) 32bit에서는 스택을 이용하지만64bit에서는 레지스터를 이용하여 함수 인자를 전달한다고 한다 어떠한 레지스터가 함수 인자를 전달하는데 쓰이고, 우선순위는 어떠한지 알아보자 Window(PE)의 경우인자1 -> rcx인자2 -> rdx인자3 -> r8인자4 -> r9인자의 개수가 4개가 넘어가면 스택을 사용한다 Linux(ELF)의 경우인자1 -> rdi인자2 -> rsi인자3 -> rdx인자4 -> rcx인자5 -> r8인자6 -> r9인자의 개수가 6개가 넘어가면 스택을 사용한다. Study/reversing 7년 전
ELF란? 해킹대회를 나가면 매번 확장자가 없는 파일이 주어진다. 이를 분석해보면 ELF형식의 파일임을 알 수 있다. 하지만 이에 대해 검색하면 정말 엘프(ELF)밖에 나오지 않는다. ELF파일이란? 윈도우의 exe파일과 비슷한 유닉스 계열 시스템들의 표준 바이너리 파일형식이다. Executable and Linkable Format의 약자이며 해석하면 실행가능하고 링크가 가능한 포맷이라고 이해할 수 있다. 이 포맷의 구조는 아래와 같다고 한다. ELF 헤더 프로그램 헤더(세그먼트) .text섹션(코드영역) .rodata섹션(ReadOnlyDATA) .data섹션 .got섹션 .symtab섹션 .strtab섹션 섹션 헤더(섹션) 아직은 모르는게 있지만 내가 직접 짠 간단한 코드를 가지고 공부해보면서 하나씩 터득해야.. ETC/knowledge 8년 전