λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
  • Welcome.
:: BoB 11기 🚩/Topics

[ λͺ¨λ°”일 μ•…μ„±μ½”λ“œ ] - [μ•ˆλ“œλ‘œμ΄λ“œ μ•±μ˜ 4λŒ€ ꡬ성 μš”μ†Œ, apk 파일 κ΅¬μ„±μš”μ†Œ, flutter, Smali code, Android entry point]

by EunBird 2022. 7. 3.

https://kairo96.gitbooks.io/android/content/ch2.7.html

 

μ½˜ν…νŠΈ ν”„λ‘œλ°”μ΄λ” μ‚΄νŽ΄λ³΄κΈ° · [μ΅œμ‹ ] 예제둜 λ°°μš°λŠ” μ•ˆλ“œλ‘œμ΄λ“œ ANDROID

 

kairo96.gitbooks.io

  • [μ°Έκ³  λΈ”λ‘œκ·Έ]

 

  • android application fundamental
    • build an app
    • fundamentals review
    • dalvik & smail
    • application entry points
  • getting started with analyzing android apps
    • where do i get mallicious apps?
    • static, dynamic analysis

< μ•ˆλ“œλ‘œμ΄λ“œ μ•±μ˜ 4λŒ€ ꡬ성 μš”μ†Œ >

  1. μ•‘ν‹°λΉ„ν‹°
    • μ‚¬μš©μž μΈν„°νŽ˜μ΄μŠ€ 화면을 κ΄€λ¦¬ν•˜λŠ” μ»΄ν¬λ„ŒνŠΈ.
    • μ•‘ν‹°λΉ„ν‹° 역할을 ν•˜κΈ° μœ„ν•΄μ„œλŠ” Activity 클래슀λ₯Ό 상속해야 ν•œλ‹€.
    • μ•‘ν‹°λΉ„ν‹°κ°€ 기본적으둜 가지고 μžˆλŠ” 생λͺ…μ£ΌκΈ° λ©”μ†Œλ“œλ₯Ό μž¬μ •μ˜ν•΄μ„œ μ›ν•˜λŠ” κΈ°λŠ₯을 κ΅¬ν˜„ν•΄μ•Ό ν•œλ‹€.
  2. μ„œλΉ„μŠ€
    • νŠΉμ • 앑티비티와 상관 없이 λ°±κ·ΈλΌμš΄λ“œμ—μ„œ μ‹€ν–‰λ˜λŠ” μ»΄ν¬λ„ŒνŠΈ.
    • μ§€μ†μ μœΌλ‘œ μž₯μ‹œκ°„ λ™μž‘ν•΄μ•Ό ν•˜λŠ” κΈ°λŠ₯이 μžˆλ‹€λ©΄ μ„œλΉ„μŠ€μ— κ΅¬ν˜„ν•œλ‹€.
    • Service 클래슀λ₯Ό μƒμ†ν•œ ν›„, 생λͺ…μ£ΌκΈ° λ©”μ†Œλ“œλ₯Ό μž¬μ •μ˜ν•΄μ„œ μ›ν•˜λŠ” κΈ°λŠ₯을 κ΅¬ν˜„ν•œλ‹€.
  3. λΈŒλ‘œλ“œμΊμŠ€νŠΈ μˆ˜μ‹ κΈ°(Broadcast receiver)
    • νŠΉμ • λΈŒλ‘œλ“œμΊμŠ€νŠΈμ— λ°˜μ‘ν•˜λŠ” μ»΄ν¬λ„ŒνŠΈ.
    • μ‚¬μš©μž μΈν„°νŽ˜μ΄μŠ€λ₯Ό 가지고 μžˆμ§€ μ•Šλ‹€.
    • μ‹œκ°„λŒ€ λ³€κ²½, 배터리 λΆ€μ‘±, μ–Έμ–΄ μ„€μ • λ³€κ²½ 등이 μžˆλ‹€.
    • μ΄λŸ¬ν•œ λΈŒλ‘œλ“œμΊμŠ€νŠΈλ₯Ό λ°›μœΌλ©΄ 이λ₯Ό μ²˜λ¦¬ν•˜κ³  λ‹€μ‹œ λŒ€κΈ° λͺ¨λ“œλ‘œ μ§„μž…ν•œλ‹€.
    • 10초 μ΄λ‚΄μ˜ μž‘μ—…λ§Œμ„ 보증.
    • BroadcastReceiver 클래슀λ₯Ό μƒμ†ν•œ λ‹€μŒμ— onReceive() λ©”μ†Œλ“œμ— μ›ν•˜λŠ” κΈ°λŠ₯을 μž‘μ„±.
  4. μ½˜ν…μΈ  제곡자(content provider)
    • μ• ν”Œλ¦¬μΌ€μ΄μ…˜ κ°„μ˜ 데이터 곡유λ₯Ό μœ„ν•΄ ν‘œμ€€ν™”λœ μΈν„°νŽ˜μ΄μŠ€λ₯Ό μ œκ³΅ν•˜λŠ” μ»΄ν¬λ„ŒνŠΈ.
    • μ½˜ν…νŠΈ ν”„λ‘œλ°”μ΄λ”κ°€ μ œκ³΅ν•˜λŠ” μ‹€μ œ λ°μ΄ν„°λŠ” 파일 μ‹œμŠ€ν…œμ΄λ‚˜ λ°μ΄ν„°λ² μ΄μŠ€ 등에 μžˆμ„ 수 μžˆλ‹€.
    • μ½˜ν…νŠΈ ν”„λ‘œλ°”μ΄λ”μ—λŠ” 읽기, μ“°κΈ°, μˆ˜μ •ν•˜κΈ°, μ‚­μ œν•˜κΈ° κΈ°λŠ₯을 μž‘μ„±ν•  수 μžˆλ‹€.

apk 파일 --> zip으둜 ν™•μž₯자λ₯Ό λ°”κΏ”μ„œ μ—΄ 수 있음 --> zip파일과 μœ μ‚¬ ꡬ쑰.

 

https://developer.android.com/guide/topics/manifest/manifest-intro?hl=ko 

 

μ•± λ§€λ‹ˆνŽ˜μŠ€νŠΈ κ°œμš”  |  Android 개발자  |  Android Developers

μ•± λ§€λ‹ˆνŽ˜μŠ€νŠΈ κ°œμš” λͺ¨λ“  μ•± ν”„λ‘œμ νŠΈλŠ” ν”„λ‘œμ νŠΈ μ†ŒμŠ€ μ„ΈνŠΈμ˜ λ£¨νŠΈμ— AndroidManifest.xml 파일(μ •ν™•νžˆ 이 이름)이 μžˆμ–΄μ•Ό ν•©λ‹ˆλ‹€. λ§€λ‹ˆνŽ˜μŠ€νŠΈ νŒŒμΌμ€ Android λΉŒλ“œ 도ꡬ, Android 운영체제 및 Google Play에

developer.android.com

[참고 자료]

 

 

< apk 파일 κ΅¬μ„±μš”μ†Œ >

  1. androidmanifest.xml
    • λͺ¨λ“  μ•± ν”„λ‘œμ νŠΈλŠ” ν”„λ‘œμ νŠΈ μ†ŒμŠ€ μ„ΈνŠΈμ˜ λ£¨νŠΈμ— AndroidManifest.xml νŒŒμΌ(μ •ν™•νžˆ 이 이름)이 μžˆμ–΄μ•Ό ν•œλ‹€.
    • Android λΉŒλ“œ 도ꡬ, Android 운영체제 및 Google Play에 앱에 κ΄€ν•œ ν•„μˆ˜ 정보λ₯Ό μ„€λͺ…ν•œλ‹€.
  2. meta-inf
  3. classes.dex
    • Android 가상 머신인 Dalvik이 인식할 수 μžˆλ„λ‘ Java둜 μ§œμ—¬μ§„ μ½”λ“œκ°€ μ»΄νŒŒμΌλ˜μ–΄ λ°”μ΄νŠΈ μ½”λ“œλ‘œ λ³€ν™˜ 된 μ†ŒμŠ€ 파일.
  4. lib
  5. asset/ & resources/

 

< flutter >

- κ΅¬κΈ€μ—μ„œ 2017λ…„ 5μ›” μΆœμ‹œλœ λͺ¨λ°”일/μ›Ή/λ°μŠ€ν¬ν†± 크둜슀 ν”Œλž«νΌ GUI SDK이닀.
- ν•˜λ‚˜μ˜ μ½”λ“œ 베이슀둜 μ•ˆλ“œλ‘œμ΄λ“œ, 아이폰, λ¦¬λˆ…μŠ€, μœˆλ„μš°μ¦ˆ, λ§₯ 및 μ›Ή λΈŒλΌμš°μ €μ—μ„œ λͺ¨λ‘ λ™μž‘λ˜λŠ” 앱을 μœ„ν•΄ μΆœμ‹œλ˜μ—ˆλ‹€.

- μ‚¬μš©λ˜λŠ” μ–Έμ–΄λŠ” μ—­μ‹œ ꡬ글에 μ˜ν•΄ 제창된 Dartλ₯Ό μ‚¬μš©ν•œλ‹€.

 


< Smali code >

- An assembler/disassembler for Android’s dex format의 μ•½μžλ‘œ DEX λ°”μ΄λ„ˆλ¦¬λ₯Ό μ‚¬λžŒμ΄ 읽을 수 μžˆλ„λ‘ ν‘œν˜„ν•œ μ–Έμ–΄. 
- Dalvik λ°”μ΄νŠΈ μ½”λ“œλ₯Ό μœ„ν•œ μ–΄μ…ˆλΈ”λ¦¬ μ–Έμ–΄

- smaliμ½”λ“œλ₯Ό 해석해 ν”„λ‘œκ·Έλž¨μ˜ 싀행원리λ₯Ό νŒŒμ•… κ°€λŠ₯

 


 

  • < Android entry point >
  • μ•ˆλ“œλ‘œμ΄λ“œ 앱은 λͺ…μ‹œμ μΈ ν˜•νƒœμ˜ Entry Pointκ°€ μ‘΄μž¬ν•˜μ§€ μ•ŠλŠ”λ‹€.
  • λŒ€μ‹ , 4λŒ€ μ»΄ν¬λ„ŒνŠΈκ°€ λͺ¨λ‘ Entry Pointκ°€ 될 수 μžˆλ‹€. 
    • launcher activity
    • services
    • broadcast receivers
    • exported components (Services & Activity)
    • application subclass

μ•ˆλ“œλ‘œμ΄λ“œ μ˜ˆμ‹œ μ•±λ“€

1. virustotal - https://www.virustotal.com/gui/home/upload

 

VirusTotal

 

www.virustotal.com

2. koodous - 유료 …

 

 


apk λ””μ»΄νŒŒμΌλŸ¬ (apk ↔ java(kotlin) ) —> Bytecode

 

 

package

permission

application

 


  • Libs
    • armeabi, x86, x64, λ‚˜λˆ„μ–΄μ Έ 있음.
  • Real world
    • ν˜„μ‹€μ˜ μ•…μ„±μ•±
    • RAT(Remote Access Tool)s
    • Ransomeware
    • Miner
    • VoicePhishing
728x90

λŒ“κΈ€