{% hint style="success" %} Learn & practice AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ Learn & practice GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
Support HackTricks * Check the [**subscription plans**](https://github.com/sponsors/carlospolop)! * **Join the** πŸ’¬ [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.** * **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
{% endhint %} ## μˆ˜λ™ **λ””μ˜΅μŠ€νλ ˆμ΄μ…˜ 기법** **μ†Œν”„νŠΈμ›¨μ–΄ λ³΄μ•ˆ** λΆ„μ•Όμ—μ„œ, μ½”λ“œμ˜ λ‚œλ…ν™”λ₯Ό 이해할 수 μžˆλ„λ‘ λ§Œλ“œλŠ” 과정인 **λ””μ˜΅μŠ€νλ ˆμ΄μ…˜**은 맀우 μ€‘μš”ν•©λ‹ˆλ‹€. 이 κ°€μ΄λ“œλŠ” λ””μ˜΅μŠ€νλ ˆμ΄μ…˜μ„ μœ„ν•œ λ‹€μ–‘ν•œ μ „λž΅μ„ 닀루며, 정적 뢄석 기법과 λ‚œλ…ν™” νŒ¨ν„΄ 인식에 쀑점을 λ‘‘λ‹ˆλ‹€. λ˜ν•œ, μ‹€μš©μ μΈ μ μš©μ„ μœ„ν•œ μ—°μŠ΅μ„ μ†Œκ°œν•˜κ³ , 더 κ³ κΈ‰ 주제λ₯Ό νƒκ΅¬ν•˜κ³ μž ν•˜λŠ” 이듀을 μœ„ν•œ μΆ”κ°€ 자료λ₯Ό μ œμ•ˆν•©λ‹ˆλ‹€. ### **정적 λ””μ˜΅μŠ€νλ ˆμ΄μ…˜ μ „λž΅** **λ‚œλ…ν™”λœ μ½”λ“œ**λ₯Ό λ‹€λ£° λ•Œ, λ‚œλ…ν™”μ˜ 성격에 따라 μ—¬λŸ¬ 가지 μ „λž΅μ„ μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€: - **DEX λ°”μ΄νŠΈμ½”λ“œ (Java)**: 효과적인 접근법 쀑 ν•˜λ‚˜λŠ” μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ˜ λ””μ˜΅μŠ€νλ ˆμ΄μ…˜ λ©”μ„œλ“œλ₯Ό μ‹λ³„ν•œ ν›„, 이 λ©”μ„œλ“œλ₯Ό Java νŒŒμΌμ— λ³΅μ œν•˜λŠ” κ²ƒμž…λ‹ˆλ‹€. 이 νŒŒμΌμ„ μ‹€ν–‰ν•˜μ—¬ λŒ€μƒ μš”μ†Œμ˜ λ‚œλ…ν™”λ₯Ό λ˜λŒλ¦½λ‹ˆλ‹€. - **Java 및 λ„€μ΄ν‹°λΈŒ μ½”λ“œ**: 또 λ‹€λ₯Έ 방법은 λ””μ˜΅μŠ€νλ ˆμ΄μ…˜ μ•Œκ³ λ¦¬μ¦˜μ„ Pythonκ³Ό 같은 μŠ€ν¬λ¦½νŒ… μ–Έμ–΄λ‘œ λ³€ν™˜ν•˜λŠ” κ²ƒμž…λ‹ˆλ‹€. 이 μ „λž΅μ€ μ£Όμš” λͺ©ν‘œκ°€ μ•Œκ³ λ¦¬μ¦˜μ„ μ™„μ „νžˆ μ΄ν•΄ν•˜λŠ” 것이 μ•„λ‹ˆλΌ 효과적으둜 μ‹€ν–‰ν•˜λŠ” κ²ƒμž„μ„ κ°•μ‘°ν•©λ‹ˆλ‹€. ### **λ‚œλ…ν™” μΈμ‹ν•˜κΈ°** λ‚œλ…ν™”λœ μ½”λ“œλ₯Ό μΈμ‹ν•˜λŠ” 것은 λ””μ˜΅μŠ€νλ ˆμ΄μ…˜ κ³Όμ •μ˜ 첫 번째 λ‹¨κ³„μž…λ‹ˆλ‹€. μ£Όμš” μ§€ν‘œλŠ” λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€: - Java 및 Androidμ—μ„œ **λ¬Έμžμ—΄μ˜ λΆ€μž¬ λ˜λŠ” ν˜Όλž€**이 있으며, μ΄λŠ” λ¬Έμžμ—΄ λ‚œλ…ν™”λ₯Ό μ‹œμ‚¬ν•  수 μžˆμŠ΅λ‹ˆλ‹€. - **μžμ‚° λ””λ ‰ν† λ¦¬μ˜ λ°”μ΄λ„ˆλ¦¬ 파일 쑴재** λ˜λŠ” `DexClassLoader` 호좜이 있으며, μ΄λŠ” μ½”λ“œ μ–ΈνŒ© 및 동적 λ‘œλ”©μ„ μ•”μ‹œν•©λ‹ˆλ‹€. - **식별할 수 μ—†λŠ” JNI ν•¨μˆ˜μ™€ ν•¨κ»˜ λ„€μ΄ν‹°λΈŒ 라이브러리 μ‚¬μš©**이 있으며, μ΄λŠ” λ„€μ΄ν‹°λΈŒ λ©”μ„œλ“œμ˜ λ‚œλ…ν™”λ₯Ό λ‚˜νƒ€λ‚Ό 수 μžˆμŠ΅λ‹ˆλ‹€. ## **λ””μ˜΅μŠ€νλ ˆμ΄μ…˜μ—μ„œμ˜ 동적 뢄석** μ œμ–΄λœ ν™˜κ²½μ—μ„œ μ½”λ“œλ₯Ό μ‹€ν–‰ν•¨μœΌλ‘œμ¨, 동적 뢄석은 **λ‚œλ…ν™”λœ μ½”λ“œκ°€ μ‹€μ‹œκ°„μœΌλ‘œ μ–΄λ–»κ²Œ μž‘λ™ν•˜λŠ”μ§€λ₯Ό κ΄€μ°°ν•  수 있게 ν•΄μ€λ‹ˆλ‹€**. 이 방법은 μ½”λ“œμ˜ μ§„μ •ν•œ μ˜λ„λ₯Ό 숨기기 μœ„ν•΄ μ„€κ³„λœ λ³΅μž‘ν•œ λ‚œλ…ν™” νŒ¨ν„΄μ˜ λ‚΄λΆ€ μž‘λ™μ„ λ°ν˜€λ‚΄λŠ” 데 특히 νš¨κ³Όμ μž…λ‹ˆλ‹€. ### **동적 λΆ„μ„μ˜ μ‘μš©** - **λŸ°νƒ€μž„ λ³΅ν˜Έν™”**: λ§Žμ€ λ‚œλ…ν™” 기법은 λ¬Έμžμ—΄μ΄λ‚˜ μ½”λ“œ μ„Έκ·Έλ¨ΌνŠΈλ₯Ό μ•”ν˜Έν™”ν•˜λ©°, μ΄λŠ” λŸ°νƒ€μž„μ—λ§Œ λ³΅ν˜Έν™”λ©λ‹ˆλ‹€. 동적 뢄석을 톡해 μ΄λŸ¬ν•œ μ•”ν˜Έν™”λœ μš”μ†ŒλŠ” λ³΅ν˜Έν™” μˆœκ°„μ— μΊ‘μ²˜λ˜μ–΄ κ·Έ μ§„μ •ν•œ ν˜•νƒœλ₯Ό λ“œλŸ¬λ‚Ό 수 μžˆμŠ΅λ‹ˆλ‹€. - **λ‚œλ…ν™” 기법 식별**: μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ˜ λ™μž‘μ„ λͺ¨λ‹ˆν„°λ§ν•¨μœΌλ‘œμ¨, 동적 뢄석은 μ½”λ“œ 가상화, 패컀 λ˜λŠ” 동적 μ½”λ“œ 생성과 같은 νŠΉμ • λ‚œλ…ν™” 기법을 μ‹λ³„ν•˜λŠ” 데 도움을 쀄 수 μžˆμŠ΅λ‹ˆλ‹€. - **μˆ¨κ²¨μ§„ κΈ°λŠ₯ 발견**: λ‚œλ…ν™”λœ μ½”λ“œλŠ” 정적 λΆ„μ„λ§ŒμœΌλ‘œλŠ” λͺ…λ°±ν•˜μ§€ μ•Šμ€ μˆ¨κ²¨μ§„ κΈ°λŠ₯을 포함할 수 μžˆμŠ΅λ‹ˆλ‹€. 동적 뢄석은 μ‘°κ±΄λΆ€λ‘œ μ‹€ν–‰λ˜λŠ” λͺ¨λ“  μ½”λ“œ 경둜λ₯Ό κ΄€μ°°ν•˜μ—¬ μ΄λŸ¬ν•œ μˆ¨κ²¨μ§„ κΈ°λŠ₯을 λ°ν˜€λ‚Ό 수 μžˆμŠ΅λ‹ˆλ‹€. ## μ°Έκ³  λ¬Έν—Œ 및 μΆ”κ°€ 읽기 * [https://maddiestone.github.io/AndroidAppRE/obfuscation.html](https://maddiestone.github.io/AndroidAppRE/obfuscation.html) * BlackHat USA 2018: β€œUnpacking the Packed Unpacker: Reverse Engineering an Android Anti-Analysis Library” \[[video](https://www.youtube.com/watch?v=s0Tqi7fuOSU)] * 이 λ°œν‘œλŠ” μ œκ°€ λ³Έ κ°€μž₯ λ³΅μž‘ν•œ μ•ˆν‹° 뢄석 λ„€μ΄ν‹°λΈŒ 라이브러리 쀑 ν•˜λ‚˜λ₯Ό λ¦¬λ²„μŠ€ μ—”μ§€λ‹ˆμ–΄λ§ν•˜λŠ” 과정을 λ‹€λ£Ήλ‹ˆλ‹€. 주둜 λ„€μ΄ν‹°λΈŒ μ½”λ“œμ˜ λ‚œλ…ν™” 기법을 λ‹€λ£Ήλ‹ˆλ‹€. * REcon 2019: β€œThe Path to the Payload: Android Edition” \[[video](https://recon.cx/media-archive/2019/Session.005.Maddie_Stone.The_path_to_the_payload_Android_Edition-J3ZnNl2GYjEfa.mp4)] * 이 λ°œν‘œλŠ” Android 봇넷이 행동을 숨기기 μœ„ν•΄ μ‚¬μš©ν•œ 일련의 λ‚œλ…ν™” 기법을 Java μ½”λ“œμ—μ„œλ§Œ λ‹€λ£Ήλ‹ˆλ‹€. {% hint style="success" %} Learn & practice AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ Learn & practice GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
Support HackTricks * Check the [**subscription plans**](https://github.com/sponsors/carlospolop)! * **Join the** πŸ’¬ [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.** * **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
{% endhint %}