๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

Security/Mobile

[Android / iOS] Frida ์„ค์น˜ ๋ฐ ์‹คํ–‰

๐Ÿ’ก Frida๋ž€?

DBI(Dynamic Binary Instrumentation)๋„๊ตฌ

์ฆ‰, ๋ฐ”์ด๋„ˆ๋ฆฌ๋ฅผ ๋™์ ์œผ๋กœ ์‹คํ–‰ํ•˜๋ฉด์„œ ๋ถ„์„ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” ์ง„๋‹จ ๋„๊ตฌ์ด๋‹ค.


STEP 1) ํŒŒ์ด์ฌ ๋‹ค์šด๋กœ๋“œ (Python3 ๋ฒ„์ „)

 

https://www.python.org/downloads/

 

Download Python

The official home of the Python Programming Language

www.python.org

- Python 2.7.6 ๋ฒ„์ „ ์ด์ƒ๋ถ€ํ„ฐ ์„ค์น˜์‹œ pip๊ฐ€ ์ž๋™์œผ๋กœ ์„ค์น˜๋˜๋ฏ€๋กœ, pip๋Š” ๋ณ„๋„๋กœ ์„ค์น˜ํ•˜์ง€ ์•Š์•„๋„ ๋œ๋‹ค.


STEP 2) Frida ์„ค์น˜

 

C:\> pip install frida

 

pip๋ฅผ ์ด์šฉํ•ด frida๋ฅผ ์„ค์น˜ํ•ด์ค€๋‹ค.

์œ„์™€ ๊ฐ™์ด ๋ณ„๋„๋กœ ๋ฒ„์ „์„ ์ง€์ •ํ•˜์—ฌ ์„ค์น˜ํ•˜๋Š” ๊ฒƒ๋„ ๊ฐ€๋Šฅํ•˜๋‹ค.

 

 

์ด๋ฏธ ์„ค์น˜๊ฐ€ ๋˜์—ˆ๋‹ค๋ฉด ์œ„์™€ ๊ฐ™์€ ๋ฉ”์‹œ์ง€๊ฐ€ ์ถœ๋ ฅ๋œ๋‹ค.


STEP 3) Frida Tools ์„ค์น˜

 

์ตœ์‹  frida ๋ฒ„์ „์—์„œ๋Š” frida์™€ frida-tools์ด ๋ถ„๋ฆฌ๋˜์–ด ์žˆ๋‹ค.

๋”ฐ๋ผ์„œ, frida-tools๋ฅผ ์ถ”๊ฐ€๋กœ ์„ค์น˜ํ•ด์•ผ frida ๋ฐ frida-ps ๋“ฑ์˜ ๊ธฐ๋Šฅ์„ ์ด์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

 

C:\> pip install frida-tools

 


STEP 4-1) Frida-server ๋‹ค์šด๋กœ๋“œ(1)

 

https://github.com/frida/frida/releases

 

Releases · frida/frida

Clone this repo to build Frida. Contribute to frida/frida development by creating an account on GitHub.

github.com

์œ„์˜ ๋งํฌ์—์„œ ๊ธฐ๊ธฐ ํƒ€์ž…์— ๋งž๋Š” frida-server ๋ฅผ ๋‹ค์šด๋กœ๋“œํ•œ๋‹ค.

- ํŒŒ์ผ๋ช…: frida-server-[๊ธฐ๊ธฐ CPU ํƒ€์ž…]

 

๐Ÿ“ŒTIP) ๋ชจ๋ฐ”์ผ ๊ธฐ๊ธฐ CPU ํƒ€์ž… ํ™•์ธ ๋ฐฉ๋ฒ•

 - Bit : adb shell getprop ro.product.cpu.abi

 - Type : adb shell getprop ro.product.cpu.abi2


STEP 4-2) Frida-server ๋‹ค์šด๋กœ๋“œ(2)

 

ํŽธ์˜๋ฅผ ์œ„ํ•ด ๋‹ค์šด๋กœ๋“œ ๋ฐ›์€ ์••์ถ• ํŒŒ์ผ(*.xz)๋ช…์„ ๋ณ€๊ฒฝํ•œ ๋’ค, ์••์ถ• ํ•ด์ œํ•œ๋‹ค.

 

     frida-server-15.1.8-android-arm64.xz   (๋ณ€๊ฒฝ ์ „)
     โ‡ข frida-server.xz   (๋ณ€๊ฒฝ ํ›„)
     โ‡ข frida-server   (์••์ถ• ํ•ด์ œ ํ›„)

STEP 5) ๋ชจ๋ฐ”์ผ ๊ธฐ๊ธฐ๋กœ ํŒŒ์ผ ์ด๋™

 

adb ๋ช…๋ น์–ด๋ฅผ ์ด์šฉํ•ด ๋ชจ๋ฐ”์ผ ๊ธฐ๊ธฐ์— ํ•ด๋‹น ํŒŒ์ผ์„ ์˜ฎ๊ธด๋‹ค.

 

C:\> adb push frida-server /data/local/tmp

STEP 6) ๊ถŒํ•œ ๋ถ€์—ฌ ๋ฐ ์†Œ์œ ์ž ๋ณ€๊ฒฝ

 

๊ทธ ๋’ค, adb ์ ‘์† ํ›„ /data/local/tmp ๋””๋ ‰ํ† ๋ฆฌ๋กœ ์ด๋™ํ•˜์—ฌ frida-server ์— ์‹คํ–‰๊ถŒํ•œ์„ ๋ถ€์—ฌํ•œ๋‹ค.

 

@root:/ # cd /data/local/tmp
@root:/ # chmod 777 frida-server
@root:/ # chown root.root frida-server

STEP 7) Frida-server ์‹คํ–‰

 

๋ฐฑ๊ทธ๋ผ์šด๋“œ๋กœ frida-server๋ฅผ ์‹คํ–‰ํ•ด์ค€๋‹ค.

 

C:\> ./ frida-server &

STEP 8) device์˜ ํ”„๋กœ์„ธ์Šค ๋ชฉ๋ก ํ™•์ธ

 

์ƒˆ ์ฐฝ์„ ์—ด๊ณ  "frida-ps -U" ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด usb๋กœ ์—ฐ๊ฒฐ๋œ device์˜ ํ”„๋กœ์„ธ์Šค ๋ชฉ๋ก์„ ํ™•์ธํ•œ๋‹ค.

 


๐Ÿค™ Frida ๊ด€๋ จ ์ถ”ํ›„ ๊ณ„ํš

 

     - SSL ํ”ผ๋‹ ์šฐํšŒ ์ •๋ฆฌ

     - FridaLab ๋ฌธ์ œ ํ’€์ด ๋ฐ ์ •๋ฆฌ