안드로이드 모바일 앱 분석 시 사용하는 Smali code에 대한 설명입니다.
Smali 자료형 타입
I > int
F > float
J > Long
S > short
Z > Boolean
C > char
D > duoble
V > void
Smail 명령어
1. Register 간 데이터 이동
> move, move/from16, move-wide, move-wide/from16
2. 리턴값 세팅 및 처리
> move-result, move-result-wide, return-void, return-object
3. 예외 처리
> throw, move-exceoption
4. 레지스터에 상수 대입
> const/4, const/16, const, const-wide, const-string
5. 동기화
> monitor-enter, monitor-exit
6. 인스턴스 생성
> new-instance
7. 분기
> goto, goto/16, if-eq, if-eqz 등
8. 비교
> cmpl-float, cmpg-float
Smali snippet
1. so 라이브러리 로드
const-string v0, "so_file_name"
invoke-static {v0}, Ljava/lang/System;->loadLibarary{Ljava/lang/String;}V
2. 로그출력
.local v0, "Log":Ljava/lang/String;
const-string v1, "Code Excute"
3. toast 문자열 띄우기
const/4 v0, 0x1
const-string v1, "Modify"
invoke-static {p0, v1, v0}, Landroid/widget/Toast;->makeText(Landroid/content/Context;Ljava/lang/CharSequence;|)Landroid/widget/Toast;
move-result-object v0
invoke-virual {v0}, Landroid/widget/Toast;->show()V
'보안 공부 > 모바일 보안' 카테고리의 다른 글
안드로이드 필수 구성 요소 (0) | 2024.01.29 |
---|---|
iOS 정적분석을 위한 바이너리 추출 (0) | 2023.11.28 |
android permission 설정 설명 (0) | 2023.05.04 |
모바일 보안 취약점 점검 PC세팅 시리즈(3) - frida 설치(android) (0) | 2023.03.20 |
모바일 보안 취약점 점검 PC세팅 시리즈(2) - python 설치 (0) | 2023.03.19 |