[iOS] - 어셈블리어 명령어

어셈블리어 연산자

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