ํ‹ฐ์Šคํ† ๋ฆฌ ๋ทฐ

๊ฐœ์š”

Frida๋ž€ Ole๊ฐ€ ๊ฐœ๋ฐœํ•œ DBI(Dynamic Binary Instrumentation) ํ”„๋ ˆ์ž„์›Œํฌ์ž…๋‹ˆ๋‹ค. ํŒŒ์ด์ฌ ๊ธฐ๋ฐ˜์œผ๋กœ ๋งŒ๋“ค์–ด์ง„ ํˆด์ด๊ธฐ์— ํŒŒ์ด์ฌ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ฃผ๋กœ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ ์—ฐ๊ฒฐ๋œ ๋‹จ๋ง์— ๋Œ€ํ•œ ๋ถ„์„์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•ด์„  ๋””๋ฐ”์ด์Šค์— Frida ์„œ๋ฒ„๋ฅผ ์ถ”๊ฐ€์ ์œผ๋กœ ๊ตฌ์ถ•ํ•ด๋‘์–ด์•ผ ์›ํ™œํ•˜๊ฒŒ ์ž‘๋™์ด ๋ฉ๋‹ˆ๋‹ค.

*Instrumentation ์ด๋ž€ ๋‹จ์–ด๋Š” "์‹คํ–‰ ์ค‘์ธ ์•ฑ์— ํŠน์ • Javascript ์ฝ”๋“œ๋ฅผ Injectionํ•ด์„œ ๋ถ„์„ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋„์™€์ฃผ๋Š” ๊ฒƒ์„ ์˜๋ฏธ"

 

๋””๋ฒ„๊น… ์ด์™ธ์— Frida ๊ธฐ๋Šฅ

- ํ•จ์ˆ˜ ํ›„ํ‚น(๋ฐ˜ํ™˜ ๊ฐ’ ๋ณ€๊ฒฝ)
- ์‹คํ–‰์ค‘์ธ ์•ฑ์˜ ๋‚ด๋ถ€ ํ•จ์ˆ˜๋ฅผ ์ˆ˜์ • ๋ฐ ๋””๋ฒ„๊น…
- ํŠธ๋ž˜ํ”ฝ ์Šค๋‹ˆํ•‘
- ์•”ํ˜ธ Decrypt
- ํƒˆ์˜ฅ or ๋น„ ํƒˆ์˜ฅ ๋‹จ๋ง์—์„œ๋„ ์‚ฌ์šฉ ๊ฐ€๋Šฅ

๋กœ์ปฌ PC์— ํ”„๋ฆฌ๋‹ค ํŒจํ‚ค์ง€๋ฅผ ์„ค์น˜ํ•˜๊ธฐ ์œ„ํ•ด ์•„๋‚˜์ฝ˜๋‹ค ํ™˜๊ฒฝ์„ ์ด์šฉํ•˜๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ์•„๋‚˜์ฝ˜๋‹ค๋ฅผ ๊ตฌ์ถ•ํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ํ•˜๋‹จ์˜ ๋งํฌ๋ฅผ ํ†ตํ•ด ๊ตฌ์ถ•ํ•ด์ฃผ์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค.

https://guleum-zone.tistory.com/136

 

์•„๋‚˜์ฝ˜๋‹ค(Anaconda) ์„ค์น˜

๊ฐœ์š” Anaconda๋Š” ์ˆ˜๋ฐฑ ๊ฐœ์˜ ํŒจํ‚ค์ง€๋ฅผ ํฌํ•จํ•˜๊ณ  ์žˆ๋Š” ๋ฐฐํฌํŒ์œผ๋กœ ๊ธฐ์กด์˜ ํŒŒ์ด์ฌ์—์„œ๋Š” pip๋ผ๋Š” ์†Œ์ˆ˜์˜ ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์ง€๋งŒ Anaconda๋ฅผ ์ด์šฉํ•˜๋ฉด ์ด์™ธ์˜ scipy, pandas, numpy ๋“ฑ ๋จธ์‹ ๋Ÿฌ๋‹, ๋ฐ์ดํ„ฐ ๋ถ„

guleum-zone.tistory.com

pip install frida
pip install frida-tools
๋˜๋Š”
pip install frida==14.2.13
pip install frida-tools==9.2.1

frida ๋ช…๋ น์œผ๋กœ๋งŒ install ํ•  ๊ฒฝ์šฐ ๊ฐ€์žฅ ๊ธฐ๋ณธ์ ์ธ ๊ฒƒ๋“ค๋งŒ ์„ค์น˜๋˜์–ด bat ๊ด€๋ จ ํŒŒ์ผ๋“ค์ด ์กด์žฌํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ๊ฐ€ ์กด์žฌํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿด ๊ฒฝ์šฐ frida-tools๋ฅผ ์ž…๋ ฅํ•˜์—ฌ ์ถ”๊ฐ€์ ์œผ๋กœ ์„ค์น˜ํ•ด์ฃผ์‹œ๋ฉด ํ•„์š”ํ•œ ํŒŒ์ผ๋“ค์ด ๋ชจ๋‘ ์„ค์น˜๋ฉ๋‹ˆ๋‹ค.

 

frida --version

ํ”„๋ฆฌ๋‹ค ๋ฒ„์ „์ด ๋‚˜ํƒ€๋‚˜๋ฉด ์ œ๋Œ€๋กœ ์„ค์น˜๋œ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋ฒ„์ „์„ ํ™•์ธํ•˜์‹ค ์ˆ˜ ์—†๋‹ค๋ฉด frida-tools๋ฅผ ์„ค์น˜ํ•ด์ฃผ์…”์•ผ ํ•ฉ๋‹ˆ๋‹ค.

 

Frida ์–ธ์ธ์Šคํ†จ ๋ฐ ๋ฒ„์ „์ง€์ •

์ฐธ๊ณ ๋กœ ์ž์‹ ์˜ frida ๋ฒ„์ „์ด ๋งž์ง€ ์•Š์•„ uninstall ํ›„ ๋‹ค์‹œ ์„ค์น˜ํ•˜๋ ค๊ณ  ํ•œ๋‹ค๋ฉด dependency ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ์œผ๋‹ˆ uninstall ํ›„์—๋Š” ์ƒˆ๋กœ์šด ํ„ฐ๋ฏธ๋„์„ ์—ด์–ด์„œ ์ง„ํ–‰ํ•˜์‹œ๋Š” ๊ฑธ ์ถ”์ฒœ ๋“œ๋ฆฝ๋‹ˆ๋‹ค. ๋งˆ์ง€๋ง‰์œผ๋กœ "objection"์„ ์‚ฌ์šฉํ•˜์‹ ๋‹ค๋ฉด ์„ค์น˜ ์‹œ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒ๋  ์ˆ˜ ์žˆ์œผ๋‹ˆ ํ”„๋ฆฌ๋‹ค ๋จผ์ € ํ™˜๊ฒฝ์„ ๊ตฌ์ถ• ํ•˜์‹  ํ›„ ์„ค์น˜ํ•ด๋ณด์‹œ๊ธฐ ๋ฐ”๋ž๋‹ˆ๋‹ค.

์„ค์น˜๋œ pip ํŒจํ‚ค์ง€๋“ค ํ™•์ธ
pip freeze

์„ค์น˜๋œ Frida ์‚ญ์ œ
pip uninstall frida-tools==14.1.3
or
pip uninstall frida-tools

 

iOS ๊ธฐ๋ฐ˜ ํ™˜๊ฒฝ๊ตฌ์ถ•

ํ•˜๋‹จ์˜ ์ฃผ์†Œ์—์„œ ํ”„๋ฆฌ๋‹ค ์„œ๋ฒ„๋ฅผ ๋‹ค์šด๋กœ๋“œ ํ›„ ๋ถ„์„ํ•˜๊ณ ์ž ํ•˜๋Š” ๋””๋ฐ”์ด์Šค์— ๋„ฃ์–ด์ค˜์•ผ ๋ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ ์ค‘์š”ํ•œ ์ ์€ ๋กœ์ปฌ PC์— ๊ตฌ์ถ•๋œ ํ”„๋ฆฌ๋‹ค ํŒจํ‚ค์ง€์™€ ๋™์ผํ•œ ๋ฒ„์ „์˜ ์„œ๋ฒ„๋ฅผ ์„ค์น˜ํ•ด์ฃผ์…”์•ผ์ง€ ๋‚˜์ค‘์— ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

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

 ์ €๋Š” ์•„์ดํฐ SE์— ํ”„๋ฆฌ๋‹ค ์„œ๋ฒ„๋ฅผ ๊ตฌ์ถ•ํ•  ๊ฒƒ์ด๊ธฐ์— frida-server-14.1.3-ios-arm64.xz๋ฅผ ๋‹ค์šด๋กœ๋“œํ–ˆ์Šต๋‹ˆ๋‹ค.

 

๋‹ค์šด๋กœ๋“œํ•œ ํ”„๋ฆฌ์„œ๋ฒ„ ์••์ถ•ํŒŒ์ผ์„ ํ•ด์ œํ›„ ์ด๋ฆ„์„ ์‹๋ณ„ํ•˜๊ธฐ ์‰ฝ๊ฒŒ "frida-server"๋กœ ๋ณ€๊ฒฝํ–ˆ์Šต๋‹ˆ๋‹ค.

3 uTools ๋„๊ตฌ๋ฅผ ์‹คํ–‰ ํ›„ ๋‹จ๋ง๊ธฐ์— ์—ฐ๊ฒฐํ•˜๊ณ  /usr/sbin/ ๋””๋ ‰ํ† ๋ฆฌ์— frida-serverํŒŒ์ผ์„ ๋„ฃ์–ด์ฃผ์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค.

 

cd /usr/sbin/
chmod 777 frida-server #๋ชจ๋‘์—๊ฒŒ ์ฝ๊ธฐ, ์“ฐ๊ธฐ, ์‹คํ–‰ ๊ถŒํ•œ ๋ถ€์—ฌ
./frida-server & #ํ”„๋ฆฌ๋‹ค ์„œ๋ฒ„๊ฐ€ ๋ฐฑ๊ทธ๋ผ์šด๋“œ ํ˜•ํƒœ๋กœ ์‹คํ–‰๋˜๊ธฐ

์ด์ œ ๊ถŒํ•œ์„ ์ˆ˜์ •ํ•ด์ฃผ์…”์•ผ ๋ฉ๋‹ˆ๋‹ค. /usr/sbin/ ๊ฒฝ๋กœ๋กœ ์˜ฌ๋ผ๊ฐ€ firda-server์— ๋ชจ๋“  ๊ถŒํ•œ์„ ์ˆ˜์ •ํ•ด์ฃผ์‹œ๊ณ  ๋ฐฑ๊ทธ๋ผ์šด๋“œ๋กœ ์‹คํ–‰๋˜๋„๋ก ํ•ด์ฃผ์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค.

 

ps -ef |grep frida-server #ํ”„๋ฆฌ๋‹ค ์„œ๋ฒ„๊ฐ€ ์‹คํ–‰ ์ค‘์ธ์ง€ ํ™•์ธ

ํ”„๋ฆฌ๋‹ค ์„œ๋ฒ„๊ฐ€ ์ •์ƒ์ ์œผ๋กœ ๊ตฌ๋™๋˜๋Š”์ง€ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด ํ˜„์žฌ์˜ ํ”„๋กœ์„ธ์Šค ์ƒํƒœ ์ •๋ณด๋ฅผ ํ™•์ธํ•ด๋ณด๋ฉด ์ •์ƒ์ ์œผ๋กœ ๊ตฌ๋™๋˜๊ณ  ์žˆ์Œ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. grep ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜๋ฉด ์ข€ ๋” ๋น ๋ฅด๊ฒŒ ์ฐพ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

frida-ps -U
-U: ์—ฐ๊ฒฐ๋œ USB ์žฅ์น˜๋ฅผ ํ™•์ธํ•˜์—ฌ ๋””๋ฐ”์ด์Šค๋ฅผ ์ธ์‹ํ•˜๊ฒ ๋‹ค๋Š” ์˜๋ฏธ

 

Android ๊ธฐ๋ฐ˜ ํ™˜๊ฒฝ๊ตฌ์ถ•

ํ”„๋ฆฌ๋‹ค ์„œ๋ฒ„ ๋ฒ„์ „์ด ์œ„์™€ ์กฐ๊ธˆ ์ƒ์ดํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์„ค์น˜ ์‹œ PCํ™˜๊ฒฝ์— ๊ตฌ์ถ•๋œ frida ๋ฒ„์ „๋ณด๋‹ค ๋‚ฎ์ง€๋งŒ ์•Š์œผ๋ฉด ์‹คํ–‰์ด ๋˜์—ˆ๊ธฐ์— ์•ˆ๋“œ๋กœ์ด๋“œ๋Š” ์ƒ์œ„ ๋ฒ„์ „์„ ์„ค์น˜ํ–ˆ์Šต๋‹ˆ๋‹ค.

 

์••์ถ•ํ•ด์ฃผ์‹œ๋ฉด ์•ˆ๋“œ๋กœ์ด๋“œ์— ์„ค์น˜๋  ํŒŒ์ผ์ด ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค. ์ €๋Š” Nox(๊ฐ€์ƒ ๋””๋ฐ”์ด์Šค ํ™˜๊ฒฝ)์— ํ”„๋ฆฌ๋‹ค ์„œ๋ฒ„๋ฅผ ๊ตฌ์ถ•ํ•˜์—ฌ PC์™€ ํ†ต์‹ ํ•˜๋„๋ก ํ•ด์ฃผ๊ฒ ์Šต๋‹ˆ๋‹ค.

 

nox_adb push <Firda ๊ฒฝ๋กœ> <์„ค์น˜ํ•  ๊ฒฝ๋กœ>
or
adb push <Frida ๊ฒฝ๋กœ> <์„ค์น˜ํ•  ๊ฒฝ๋กœ>
adb push "su -c 'chmod 777 /data/local/tmp;'" <Frida ๊ฒฝ๋กœ> <์„ค์น˜ํ•  ๊ฒฝ๋กœ>

nox_adb push ๋ช…๋ น์„ ํ†ตํ•ด pc์—์„œ ์••์ถ• ํ•ด์ œํ•œ frida-server๋ฅผ ์‚ฝ์ž…ํ•˜์—ฌ ์„ค์น˜์‹œ์ผœ์ฃผ์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค.

 

nox_adb shell
cd /data/local/tmp/ ๊ฒฝ๋กœ์— frida-server ์กด์žฌ ์œ ๋ฌด ํ™•์ธ
chmod 777 frida-serverํŒŒ์ผ

์„ค์น˜๋œ ๊ฒฝ๋กœ๋กœ ๋„˜์–ด๊ฐ€ ๋ณด์‹œ๋ฉด ์‹คํ–‰ ๊ถŒํ•œ์ด ๋น ์ ธ์žˆ์œผ๋‹ˆ ๊ถŒํ•œ์„ ์ถ”๊ฐ€ํ•ด์ฃผ์…”์•ผ ๋ฉ๋‹ˆ๋‹ค.

 

๊ถŒํ•œ์ด ์ˆ˜์ •๋œ ๊ฒƒ์„ ํ™•์ธ

 

./frida-serverํŒŒ์ผ &

๋กœ์ปฌ PC์™€ ๋””์•„๋น„์Šค(Nox) ์ƒํ˜ธ ๊ฐ„์— ํ†ต์‹ ์ด ๊ฐ€๋Šฅํ•œ์ง€ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด ์šฐ์„  ๋ฐฑ๊ทธ๋ผ์šด๋“œ ๋ชจ๋“œ๋กœ ์‹คํ–‰ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

 

์ด์ œ ๋กœ์ปฌ PC์—์„œ ํ”„๋กœ์„ธ์Šค ์ƒํƒœ ์ •๋ณด๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋Š” ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•ด๋ณด๋ฉด pc์™€ ์—ฐ๊ฒฐ๋œ ๋””๋ฐ”์ด์Šค ๋‚ด๋ถ€์˜ ์•ฑ ๋ฆฌ์ŠคํŠธ๋“ค์ด ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค.

 

ํ•˜๋‹จ์˜ ๋ฆฌ์ŠคํŠธ๋“ค์ด ๋‚˜ํƒ€๋‚˜๋ฉด ์ด์ œ ์ถ”๊ฐ€์ ์œผ๋กœ ํŒŒ์ด์ฌ ์ฝ”๋“œ๋ฅผ ๋‹ค์šด๋กœ๋“œํ•˜์—ฌ ๋ถ„์„์ž‘์—…์„ ์ˆ˜ํ–‰ํ•ด์ฃผ์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค.

 


๊ฐ„ํ˜น ๊ฐ€๋‹ค๊ฐ€ ์œ„์™€ ๊ฐ™์€ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์กด์žฌํ•˜๋Š”๋ฐ ์ด๊ฑฐ๋Š” 32Bit ๋˜๋Š” 64Bit๊ฐ€ ๋งž์ง€ ์•Š์•„์„œ ๊ทธ๋ ‡์Šต๋‹ˆ๋‹ค.

 

์ œ ๊ฐ€์ƒ ์•ˆ๋“œ๋กœ์ด๋“œ ํ™˜๊ฒฝ์€ x86์ž…๋‹ˆ๋‹ค.

x86 ํ˜•์‹์œผ๋กœ ๋‹ค์šด๋กœ๋“œ ํ›„ ๊ถŒํ•œ ์กฐ์ •ํ•˜์—ฌ ์‹คํ–‰์‹œ์ผœ์ฃผ๋ฉด ์ด์ „๊ณผ ๊ฐ™์€ ์—๋Ÿฌ ๋ฉ”์‹œ์ง€๋Š” ์‚ฌ๋ผ์ง€๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์ธ ๊ฑฐ์ง€๋งŒ ์€๊ทผ ์ด ๋ถ€๋ถ„์„ ๋†“์ณ ์‹œ๊ฐ„์„ ์†Œ๋ชจํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์ข…์ข… ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

'MOBILE' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[iOS]Jailbreak ํƒ์ง€ ์šฐํšŒ(Frida)  (0) 2021.01.24
[iOS] Keychain Dumper  (0) 2021.01.20
[iOS] ํƒˆ์˜ฅ ํ™˜๊ฒฝ์—์„œ iPA ์„ค์น˜  (0) 2020.12.23
ํ”„๋ฆฌ๋‹ค(Frida) Memory Dump  (0) 2020.12.22
IOS 14.x ํƒˆ์˜ฅ(Jailbreak)  (0) 2020.12.19
๊ณต์œ ํ•˜๊ธฐ ๋งํฌ
Comment