어셈블리어 함수

2025. 9. 17. 16:58보안 컨설팅/기술적 취약점 점검

어셈블리어 함수
명령어 의미 예제 비고
mov 레지스터 값 복사 mov x8, x0 64비트 레지스터
sub 뺄셈 sub x8, x8, x9 64비트 연산
add 덧셈 add x29, sp, #0x30 64비트 연산
stur 레지스터 → 스택 저장 stur x8, [x29, #-0x20] offset 스택 접근
ldur 스택 → 레지스터 로드 ldur x8, [x29, #-0x28] offset 스택 접근
stp / ldp 두 레지스터 동시 저장/로드 stp x29,x30,[sp,#0x30] 함수 prologue/epilogue
bl 함수 호출(branch with link) bl _objc_storeStrong x30(LR)에 반환 주소 저장
b unconditional branch b LAB_1001165d4 무조건 분기
tbnz 특정 비트가 1이면 분기 tbnz w8,#0,LAB 인증 체크 패턴 자주 등장
tbz 특정 비트가 0이면 분기 tbz w8,#0,LAB 인증 우회 때 tbz로 바꿔서 조건 무시 가능
cset 조건에 따라 w0~w31 세팅 cset w8, ne 조건 코드 사용
subs 뺄셈 후 상태 플래그 업데이트 subs x8,x8,x9 다음 cset과 연계됨