어셈블리어 연산자
1.데이터 처리
- add : 값을 더한다 . ex) ADD R1, R2, R3 (R1=R2+R3)
- sub : 두 값을 뺀다. ex) SUB R1, R2, R3 (R1=R2-R3)
- orr : 비트 단위 OR 연산. ex) ORR R1, R2, R3 (R1=R2 OR R3)
- lsl : 첫 번째 값의 비트를 왼쪽으로 이동 ex) LSL R1, R2, #2 (R1=R2 << 2)
- lsr : 첫 번째 값의 비트를 오른쪽으로 이동 ex) LSR R1, R2, #2 (R1=R2>>2)
2. 메모리 연산
- ldr : 메모리에서 값을 읽어 레지스터에 저장 ex) LDR R1, [R2] (R1 = R2에 저장된 메모리 값)
- str : 레지스터 값을 메모리에 저장 ex) STR R1, [R2] (R2에 R1의 값 저장)
- ldp : 두 개의 값을 메모리에서 읽어 두 레지스터에 저장 ex) LDP R1, R2, [R3]
- stp : 두 레지스터 값을 메모리에 저장 ex) STP R1, R2, [R3]
3. 조건 분기 ( 명령 수행이 조건에 의해 순차적인 정상 순위에서 벗어나는 )
- b.cond : 특정 조건이 만족될 때 분기 ex)B.EQ LABEL (두 값이 같으면 LABEL로 분기)
- cbnz : 레지스터 값이 0이 아니면 분기 ex) CBNZ R1, LABEL
- cbz : 레지스터 값이 0이면 분기 ex) CBZ R1, LABEL
- tbnz : 특정 비트가 1이면 분기 ex) TBNZ R1, #1, LABEL
- tbz : 특정 비트가 0이면 분기 ex) TBZ R1, #1, LABEL
4. 분기
- b : 무조건 지정된 주소로 분기
- bl : 서브루틴을 호출, 호출 후 복귀할 주소를 LR에 저장
- ret : LR에 저장된 주소로 복귀
5. 시스템 레지스터
- msr : 일반 레지스터 값을 시스템 레지스터로 이동
- mrs : 시스템 레지스터 값을 일반 레지스터로 이동
'앱 진단 > ios' 카테고리의 다른 글
[iOS] DVIA-v2(Jailbreak Detection - 2) (0) | 2025.02.19 |
---|---|
[iOS] - DVIA-v2 (Jailbreak Detection 1) (0) | 2025.02.18 |
[iOS] Frida 문법 (1) | 2025.02.17 |
[iOS] 파일 시스템 (0) | 2025.02.14 |
[iOS] 계층 구조 (0) | 2025.02.14 |