64bit 파라미터 전달
[windows - PE]
Parameter 1 – RCX
Parameter 2 – RDX
Parameter 3 – R8
Parameter 4 – R9
[Linux - ELF]
Parameter 1 - rdi
Parameter 2 - rsi
Parameter 3 - rdx
Parameter 4 - rcx
Parameter 5 - r8
Parameter 6 - r9
Parameter 7 - (%rsp)
Parameter 8 - 0x8(%rsp)
system call - %rax
[*] ARM 레지스터 추가
레지스터 | APCS | 역활 |
r0 | a1 | 함수 인자1/결과 값 전달 범용 스크레치 레지스터 |
r1 | a2 | 함수 인자2/범용 스크래치 레지스터 |
r2 | a3 | 함수 인자3/범용 스크래치 레지스터 |
r3 | a4 | 함수 인자4/범용 스크레치 레지스터 |
r4 | v1 | 변수용 레지스터 1 |
r5 | v2 | 변수용 레지스터 2 |
r6 | v3 | 변수용 레지스터 3 |
r7 | v4 | 변수용 레지스터 4 |
r8 | v5 | 변수용 레지스터 5 |
r9 | v6/sb | 변수용 레지스터 6 RWPI로 컴파일할 때 베이스 주소 저장 |
r10 | v7/sl | 변수용 레지스터 7 스택 리미트 체크 스택의 리미트 주소 저장 |
r11 | fp | 이전 버전의 ARM 컴파일러에서 프레임 포인터로사용 |
r12 | ip | 범용 스크래치 레지스터 |
r13 | sp | 스택의 현재 위치를 저장하고 있는 레지스터 |
r14 | lr | 링크 레지스터, 복귀할 주소를 저장하고 있는 레지스터 |
r15 | pc | 프로그램 카운터 |
[출처
] ARM 컴파일러의 레지스터의 사용|작성자 사랑인
'Reversing > Reversing' 카테고리의 다른 글
Ollydbg - Exception시 SEH 처리 확인하기 (0) | 2014.02.08 |
---|---|
code injection에서 shellcode to exe (0) | 2014.01.15 |
IDA로 C++ 클래스의 가상함수를 볼 때 (0) | 2013.12.15 |
IDA - 변수에 따른 데이터 영역 정리 (0) | 2013.12.14 |
무료 .NET Decompiler (1) | 2013.11.04 |