[Android] ์๋๋ก์ด๋ ์ฑ ์ทจ์ฝ์ ์ง๋จ ๋ถ์ ๋๊ตฌ ์๊ฐ
- -

์ทจ์ฝ์ ์ง๋จ ๋ถ์ ๋๊ตฌ ์๊ฐ
์๋๋ก์ด๋ ์ฑ ์ทจ์ฝ์ ์ง๋จ ๋ถ์ ๋๊ตฌ๋ฅผ ์๊ฐํด๋ณด๋๋ก ํ๊ฒ ๋ค.
์ ์ ๋ถ์ ๋๊ตฌ ์๊ฐ
ADB : Android Debug Bridge
- ์๋๋ก์ด๋ ๋จ๋ง๊ธฐ์ ๋ฐ์คํฌํฑ ๊ฐ์ ํต์ ์ ํ ๋ ํ์ํ ๋๊ตฌ.
apktool
- apkํ์ผ์ ๋์ปดํ์ผ ํด์ ์์ค์ฝ๋ ์ถ์ถ (classes.dex)
- ์์ ์์ค์ฝ๋(classes.dex)๋ฅผ ์์ ํ ์ ์๋ค.(patch) ์ด๋ฌํ ์ฝ๋๋ฅผ ๋ค์ apk๋ก ๋ง๋๋ ๊ณผ์ ์ ๋ฆฌํจํค์ง(patched apk file)์ด๋ผํจ.
dex2jar
- dex file to jar
- dex(Dalvik Excutable์ ์ฝ์) file์ jar(java Byte Code) file๋ก ๋ฐ๊พธ์ด ์ฃผ๋ ์ญํ ์ ํจ.
jd-gui
- jar file์ ๋ณผ ์ ์๋ viewer์ญํ
- ๋ณ์ ํ์ ๊ณผ ๋ณ์ ์ด๋ฆ๊น์ง ๋๊ฐ์ด ๋์ค๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ -> ์์ค์ฝ๋ ๋ณด๊ธฐ ํธํด์ง.
Eclipse ADP(Android Developer Toolkit)
- ide(ํตํฉ ๊ฐ๋ฐํ๊ฒฝ) ๊ฐ๋ฐ๋๊ตฌ
๋์ ๋ถ์ ๋๊ตฌ ์๊ฐ
android-Logviewer / adb -d logcat / DDMS
- ๋ก๊ทธ ํ์ธํ๋ ํด
- ์ฑ ๋ถ์(ํฌ๋ํน)์ ์ฉ์ดํ ์ ๋ณด ์ถ๋ ฅ
log ๋ถ์์ ํ๋ ์ด์ ?
์ด๋ค ๊ฐ์ด ์ ๋ฌ ๋๋๋ฐ ๊ทธ ๊ฐ์ ๋ชจ๋ฅผ ๋ --> ๋ก๊ทธ๋ ์ฃผ์์ฒ๋ฆฌ ๋ฑ
Fiddler(ํ๋ก์ ํด)
ํ๋ก์ ํด์, ๋ฒํ์ํธ(burp suite)๋ ๊ฐ๋ฅ.
์์ ๋๊ตฌ๋ค์ ๊ฒ์ํ๋ฉด ๋ค ๋ค์ด๋ฐ์ ์ ์์ต๋๋ค. ํน์ ํ์ํ์๋ค๋ฉด ๋๊ธ ์ฃผ์๋ฉด ๋ฉ์ผ๋ก ์์ ๋๊ตฌ๋ค ๋ค .zip์ผ๋ก ๋ณด๋ด๋๋ฆด๊ป์~~
์๋๋ก์ด๋ ์๋ ๋ถ์ ํด
- QARK
- MobSF
- APPUSE
- Insoeckage
- Androbus
๋ฑ๋ฑ ๋ชจ๋ฐ์ผ ์ฑ ์ ๋ณด๋ฉด ๋ง์, ์ฑ ์ "์๋๋ก์ด๋ ๋ชจ๋ฐ์ผ ์ฑ ๋ชจ์ํดํน"
์ ๋๊ตฌ๋ค์ ๋ด์ฉ์ ๋ํด ์ด๋ฒ ํฌ์คํ ์์ธํ ๋ค๋ฃจ์ง ์๊ณ ๊ต์ฌ ์ค์ต ์ ์ ๋๋ก ํฌ์คํ ํ๋๋ก ํ๊ฒ ์ต๋๋ค.
์๋๋ ์์ ์ค๋ช ํ "์ทจ์ฝ์ ์ง๋จ ๋๊ตฌ(์ ์ & ๋์ )"๋ค์ ๋ํ ์กฐ๊ธ ๋ ์์ธํ ์ค๋ช ์ ๋ค๋ฃฌ ๊ฒ์ ๋๋ค.
๋์ปดํ์ผ ํด
๋์ปดํ์ผ ํด์ด๋?
๊ฐ๋จํ ๋งํด ๋ช๋ช ํ๋ก๊ทธ๋จ๊ณผ apkํ์ผ์ ๊ฐ์ง๊ณ ์๋ณธ ์๋ฐ ์ฝ๋๋ฅผ ๋ณต์ ํ๋ ์์ ์ ํ๋ ๊ฒ.
๋๋ ํ ๋ฑ ๋ณ๋์ ๋ณด์์ด ์ ์ฉ๋์ง ์๋ ํ apk ๋ถํด ๊ฐ๋ฅ
(Jeb2 ์ ๊ฐ์ ์ ๋ฃ ํด์ ์ฌ์ฉํ๋ฉด ๋๋ ํ ํด์ ๊ธฐ๋ฅ์ ํฌํจํ ์ข์ ๊ธฐ๋ฅ๋ค์ด ํฌํจ๋์ด ์์ )
์ข ๋ฅ:
- jadx
- ์๋ ์ฐธ๊ณ ๊ธ ํ์ธํ๊ธฐ
jadx๋ฅผ ์ด์ฉํ APK ํ์ผ ๋ถ์
jadx๋ APK ํ์ผ๊ณผ DEXํ์ผ์ ๋น ๋ฅด๊ฒ ๋์ปดํ์ผ ํด์ค๋ค. ์ด์ ๊น์ง ์๊ฐํ ๋๊ตฌ๋ค ์ค์์ ์ ์ผ ๋น ๋ฅธ ๋์ปดํ์ผ ์๋๋ฅผ ๋ด๊ณ ์๋ค. ByteCodeViewer์ ๋น๊ตํด์ ์๋ก ์ฅ๋จ์ ์ด ์์ง๋ง, ์๋ฐ ์ฝ๋๋ง ๋ถ์์ ํ ๋๋ jadx๋ฅผ ์ถ์ฒํ๋ค.
ํนํ jadx์ ์ฝ๋ ๊ฒ์ ๊ธฐ๋ฅ์ ๋ค๋ฅธ ๋์ปดํ์ผ ๋๊ตฌ๋ณด๋ค ๋งค์ฐ ํ์ํ๋ค. ๊ฒ์ ๊ธฐ๋ฅ์ ํด๋ฆญํ์ ๋ ๋ด๋ถ์ ์ผ๋ก ๋์ปดํ์ผ ์์ ์ด ์์ธํ๊ฒ ์ด๋ฃจ์ด์ง๋ฉด์ ๊ด๋ จ ์ ๋ณด๋ค์ ๋ฏธ๋ฆฌ ํ์ ํ๊ณ , ์ฌ์ฉ์๊ฐ ๊ฒ์ํ ๋ ๋น ๋ฅด๊ฒ ํ์ํด์ค๋ค.
์ฒ์์๋ ๋์ปดํ์ผ๊ณผ ์ธ๋ฑ์ฑ ์์ ์ผ๋ก ๋ค์ ์๊ฐ์ด ์์๋ ์ ์์ง๋ง, โrootโ๋ผ๋ ๋ฌธ์๋ฅผ ํด๋์ค์ ์ฝ๋ ๋ด์์ ๊ฒ์์ ํ ๋ ๋น ๋ฅด๊ฒ ์ฐพ์๋ธ๋ค. ์ทจ์ฝ์ ์ง๋จ์ ํ ๋ ๋ฃจํ ์ฒดํฌํ๋ ๊ฒ์ ํ์ธํ๊ณ ์ด๋ฅผ ์ฐํํ๋ ๊ฒ์ธ ์ฒซ๋ฒ์งธ ์์ ์ด๋ค.
- jd-gui
- bytecodeviewer
- ์๋ฐ, ์๋๋ก์ด๋, DEX, jars ํ์ผ ๋ฑ ์์ค์ฝ๋ ๋ฆฌ๋ฒ์ฑ ๋ถ์ ๋๊ตฌ์ด๋ค.
- ์๋์ฐ์ฆ ํ๊ฒฝ์์ ์๋ฒฝํ๊ฒ ๋์ํ ์ ์๋๋ก ์ง์์ ํ๊ณ ์๋ค.
- ์๋๋ก์ด๋ APKํ์ผ์ ๋์ปดํ์ผํ์ฌ ๋ฐ์ดํธ์ฝ๋ ํํ์ ํด๋์คํ์ผ์ ์๋ฐํ์ผ๋ก ๋ณํํ์ฌ ์์คํ์ผ๋ก ๋ณต์ํ์ฌ ๊ฐ์ด ๋ณด์ฌ์ค๋ค. ์ด์ ๊น์ง ์ฌ์ฉํ ๋๊ตฌ๋ค์ ๊ธฐ๋ฅ์ ๋ชจ๋ ํฉํ๊ฒ๊ณผ ๊ฐ์ ๋๋์ด ๋ค์ ๋๋ก ๊ธฐ๋ฅ์ ์ผ๋ก๋, ์ ๋ฌด ํจ์จ์ ์ผ๋ก๋ ๊ฑฐ๋ํ ๋๊ตฌ์ด๋ค.
- ๋ถ์ ์๋๊ฐ ๋ค๋ฅธ ๋๊ตฌ์ ๋นํด ๋งค์ฐ ๋น ๋ฅด๋ค.
ADB๋ Android Debug Bridge์ ์ฝ์๋ก, Android๋ฅผ ์ํ Debugging Tool์ด๋ค.
Debug Bridge๋ JTAG๊ณผ ์ ์ฌํ ๊ฐ๋ ์ผ๋ก, Android๊ฐ ์ฌ๋ผ๊ฐ๋ Target Board์ Debugging์ ์ฌ์ฉ๋๋ค.
์ฐ๊ฒฐ์ USB Port๋ฅผ ํตํด ์ด๋ฃจ์ด์ง๋ฉฐ, ๋ณดํต ์ฌ์ฉ์๋ค์ด Android ๊ธฐ๋ฐ์ Smart Device์ Rooting( ๋ฃจํ )์ ์ฌ์ฉํ๋ค.
์ฝ๊ฒ ์ค๋ช ํ์๋ฉด, Command Mode( cmd )์์ Android ๊ธฐ๋ฐ์ Device์ ์ฐ๊ฒฐ์ด ๊ฐ๋ฅํ๋ฉฐ,
File Transfer, Application Install, Device Status, Shell ๋ฑ ์ฌ๋ฌ ๊ธฐ๋ฅ์ ์ํํ ์ ์๋ค.
https://sutamu.tistory.com/358 <--์ฐธ๊ณ ํ๊ธฐ
- File Transfer, Application Install, Device Status, Shell ๋ฑ ์ฌ๋ฌ ๊ธฐ๋ฅ์ ์ํํ ์ ์๋ค.
- ์ฐ๊ฒฐ์ USB Port๋ฅผ ํตํด ์ด๋ฃจ์ด์ง๋ฉฐ, ๋ณดํต ์ฌ์ฉ์๋ค์ด Android ๊ธฐ๋ฐ์ Smart Device์ Rooting( ๋ฃจํ )์ ์ฌ์ฉํ๋ค.
- ADB๋ Android Debug Bridge์ ์ฝ์๋ก, Android๋ฅผ ์ํ Debugging Tool์ด๋ค.
์์๋ณด๋, apk โzip ์ผ๋ก ์์ถ โ ๋ค์ ํด์ โ> ์ด์ค class.dex โ class.jar๋ก ๋ณํ ์ด๋ ๊ฒ ๋ณด๋ ๋ฐฉ๋ฒ์ด ์๋คํจ
ํ์ง๋ง ์๋์ ๊ฐ์ด ํ๋ ๊ฒ์ด ์ข์.
Apk ์์ถ ํ๊ธฐ
ํ์ผ์ ์์ ํ๊ณ ์ฌ๋น๋ ํ ๊ณํ์ด๋ผ๋ฉด apk ํ์ผ์ ์์ถ์ ๋จผ์ ํ์ด์ค๋ค. ๋ชฐ๋๋ ์ฌ์ค์ด ์๋๋ฐ, .apk ํ์ผ์ ํ์ฅ์๋ฅผ .zip ์ผ๋ก ์ด๋ฆ์ ๋ณ๊ฒฝํ ํ ์์ถ์ ํ์ด๋ dex ํ์ผ์ด ๋์ค๊ธด ๋์จ๋ค. ๋ค๋ง ๋งค๋ํ์คํธ๋ฅผ ๋น๋กฏํ ๋ค๋ฅธ ๋ฆฌ์์ค ํ์ผ์ด ๊นจ์ ธ๋ฒ๋ฆฐ๋ค. ๊ทธ๋์ ์ฑ์ ๋น๋ ํ๋ ๋ฐฉ์์ ํ ๋๋ก ๋์ปดํ์ผ ํ๋ apktool์ ์ฌ์ฉํด์ ํ์ด์ผ ์ ๋๋ก๋ ๊ฒฐ๊ณผ๋ฅผ ์ป์ ์ ์๋ค.

๋น์ ์ด ์ข์ํ ๋งํ ์ฝํ ์ธ
์์คํ ๊ณต๊ฐ ๊ฐ์ฌํฉ๋๋ค