보안 공부/모바일 보안

Smail code 타입 및 코드 예시

H.J.World 2023. 9. 11. 23:38
728x90
반응형

 

안드로이드 모바일 앱 분석 시 사용하는 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

 

 

728x90
반응형