Reversing Native Libraries
Last updated
Last updated
AWS ํดํน ๋ฐฐ์ฐ๊ธฐ ๋ฐ ์ฐ์ตํ๊ธฐ:HackTricks Training AWS Red Team Expert (ARTE) GCP ํดํน ๋ฐฐ์ฐ๊ธฐ ๋ฐ ์ฐ์ตํ๊ธฐ: HackTricks Training GCP Red Team Expert (GRTE)
์์ธํ ์ ๋ณด๋ ๋ค์์ ํ์ธํ์ธ์: https://maddiestone.github.io/AndroidAppRE/reversing_native_libs.html
์๋๋ก์ด๋ ์ฑ์ ์ฑ๋ฅ์ด ์ค์ํ ์์ ์ ์ํด ์ผ๋ฐ์ ์ผ๋ก C ๋๋ C++๋ก ์์ฑ๋ ๋ค์ดํฐ๋ธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค. ์ ์ฑ์ฝ๋ ์ ์์๋ค๋ ์ด๋ฌํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํฉ๋๋ค. ์๋ํ๋ฉด DEX ๋ฐ์ดํธ์ฝ๋๋ณด๋ค ๋ฆฌ๋ฒ์ค ์์ง๋์ด๋ง์ด ๋ ์ด๋ ต๊ธฐ ๋๋ฌธ์ ๋๋ค. ์ด ์น์ ์ ์ด์ ๋ธ๋ฆฌ ์ธ์ด๋ฅผ ๊ฐ๋ฅด์น๋ ๋์ ์๋๋ก์ด๋์ ๋ง์ถ ๋ฆฌ๋ฒ์ค ์์ง๋์ด๋ง ๊ธฐ์ ์ ๊ฐ์กฐํฉ๋๋ค. ํธํ์ฑ์ ์ํด ARM ๋ฐ x86 ๋ฒ์ ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์ ๊ณต๋ฉ๋๋ค.
์๋๋ก์ด๋ ์ฑ์ ๋ค์ดํฐ๋ธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ:
์ฑ๋ฅ ์ง์ฝ์ ์ธ ์์ ์ ์ฌ์ฉ๋ฉ๋๋ค.
C ๋๋ C++๋ก ์์ฑ๋์ด ๋ฆฌ๋ฒ์ค ์์ง๋์ด๋ง์ด ์ด๋ ต์ต๋๋ค.
๋ฆฌ๋
์ค ๋ฐ์ด๋๋ฆฌ์ ์ ์ฌํ .so
(๊ณต์ ๊ฐ์ฒด) ํ์์ผ๋ก ๋ฐ๊ฒฌ๋ฉ๋๋ค.
์ ์ฑ์ฝ๋ ์ ์์๋ ๋ถ์์ ์ด๋ ต๊ฒ ๋ง๋ค๊ธฐ ์ํด ๋ค์ดํฐ๋ธ ์ฝ๋๋ฅผ ์ ํธํฉ๋๋ค.
Java ๋ค์ดํฐ๋ธ ์ธํฐํ์ด์ค (JNI) ๋ฐ ์๋๋ก์ด๋ NDK:
JNI๋ Java ๋ฉ์๋๋ฅผ ๋ค์ดํฐ๋ธ ์ฝ๋๋ก ๊ตฌํํ ์ ์๊ฒ ํฉ๋๋ค.
NDK๋ ๋ค์ดํฐ๋ธ ์ฝ๋๋ฅผ ์์ฑํ๊ธฐ ์ํ ์๋๋ก์ด๋ ์ ์ฉ ๋๊ตฌ ์ธํธ์ ๋๋ค.
JNI์ NDK๋ Java (๋๋ Kotlin) ์ฝ๋๋ฅผ ๋ค์ดํฐ๋ธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์ฐ๊ฒฐํฉ๋๋ค.
๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ก๋ฉ ๋ฐ ์คํ:
๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ System.loadLibrary
๋๋ System.load
๋ฅผ ์ฌ์ฉํ์ฌ ๋ฉ๋ชจ๋ฆฌ์ ๋ก๋๋ฉ๋๋ค.
๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ก๋ฉ ์ JNI_OnLoad๊ฐ ์คํ๋ฉ๋๋ค.
Java์์ ์ ์ธ๋ ๋ค์ดํฐ๋ธ ๋ฉ์๋๋ ๋ค์ดํฐ๋ธ ํจ์์ ์ฐ๊ฒฐ๋์ด ์คํ์ ๊ฐ๋ฅํ๊ฒ ํฉ๋๋ค.
Java ๋ฉ์๋๋ฅผ ๋ค์ดํฐ๋ธ ํจ์์ ์ฐ๊ฒฐํ๊ธฐ:
๋์ ๋งํฌ: ๋ค์ดํฐ๋ธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ํจ์ ์ด๋ฆ์ด ํน์ ํจํด๊ณผ ์ผ์นํ์ฌ ์๋ ๋งํฌ๊ฐ ๊ฐ๋ฅํฉ๋๋ค.
์ ์ ๋งํฌ: RegisterNatives
๋ฅผ ์ฌ์ฉํ์ฌ ๋งํฌํ๋ฉฐ, ํจ์ ์ด๋ฆ ๋ฐ ๊ตฌ์กฐ์ ์ ์ฐ์ฑ์ ์ ๊ณตํฉ๋๋ค.
๋ฆฌ๋ฒ์ค ์์ง๋์ด๋ง ๋๊ตฌ ๋ฐ ๊ธฐ์ :
Ghidra ๋ฐ IDA Pro์ ๊ฐ์ ๋๊ตฌ๊ฐ ๋ค์ดํฐ๋ธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ถ์์ ๋์์ ์ค๋๋ค.
JNIEnv
๋ JNI ํจ์ ๋ฐ ์ํธ์์ฉ์ ์ดํดํ๋ ๋ฐ ์ค์ํฉ๋๋ค.
๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ก๋ฉ, ๋ฉ์๋ ๋งํฌ ๋ฐ ๋ค์ดํฐ๋ธ ํจ์ ์๋ณ์ ์ฐ์ตํ ์ ์๋ ์ฐ์ต๋ฌธ์ ๊ฐ ์ ๊ณต๋ฉ๋๋ค.
ARM ์ด์ ๋ธ๋ฆฌ ๋ฐฐ์ฐ๊ธฐ:
๊ธฐ๋ณธ ์ํคํ ์ฒ์ ๋ํ ๊น์ ์ดํด๋ฅผ ์ํด ๊ถ์ฅ๋ฉ๋๋ค.
Azeria Labs์ ARM Assembly Basics๋ฅผ ์ถ์ฒํฉ๋๋ค.
JNI ๋ฐ NDK ๋ฌธ์:
๋ค์ดํฐ๋ธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋๋ฒ๊น :
AWS ํดํน ๋ฐฐ์ฐ๊ธฐ ๋ฐ ์ฐ์ตํ๊ธฐ:HackTricks Training AWS Red Team Expert (ARTE) GCP ํดํน ๋ฐฐ์ฐ๊ธฐ ๋ฐ ์ฐ์ตํ๊ธฐ: HackTricks Training GCP Red Team Expert (GRTE)