๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
  • 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

๋Œ“๊ธ€