hacktricks/mobile-pentesting/android-app-pentesting/reversing-native-libraries.md

10 KiB

Reversing Native Libraries

{% hint style="success" %} Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Support HackTricks
{% endhint %}

WhiteIntel

WhiteIntel рдПрдХ рдбрд╛рд░реНрдХ-рд╡реЗрдм рджреНрд╡рд╛рд░рд╛ рд╕рдВрдЪрд╛рд▓рд┐рдд рд╕рд░реНрдЪ рдЗрдВрдЬрди рд╣реИ рдЬреЛ рдореБрдлреНрдд рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛рдПрдБ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ рддрд╛рдХрд┐ рдпрд╣ рдЬрд╛рдВрдЪрд╛ рдЬрд╛ рд╕рдХреЗ рдХрд┐ рдХреНрдпрд╛ рдХреЛрдИ рдХрдВрдкрдиреА рдпрд╛ рдЙрд╕рдХреЗ рдЧреНрд░рд╛рд╣рдХ рд╕рдВрдкрд░реНрдХрд┐рдд рд╣реБрдП рд╣реИрдВ рдЪреЛрд░реА рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдорд╛рд▓рд╡реЗрдпрд░ рджреНрд╡рд╛рд░рд╛ред

WhiteIntel рдХрд╛ рдкреНрд░рд╛рдердорд┐рдХ рд▓рдХреНрд╖реНрдп рдЬрд╛рдирдХрд╛рд░реА-рдЪреЛрд░реА рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдорд╛рд▓рд╡реЗрдпрд░ рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдЦрд╛рддрд╛ рдЕрдзрд┐рдЧреНрд░рд╣рдг рдФрд░ рд░реИрдирд╕рдорд╡реЗрдпрд░ рд╣рдорд▓реЛрдВ рд╕реЗ рд▓рдбрд╝рдирд╛ рд╣реИред

рдЖрдк рдЙрдирдХреА рд╡реЗрдмрд╕рд╛рдЗрдЯ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЙрдирдХреЗ рдЗрдВрдЬрди рдХреЛ рдореБрдлреНрдд рдореЗрдВ рдЖрдЬрдорд╛ рд╕рдХрддреЗ рд╣реИрдВ:

{% embed url="https://whiteintel.io" %}


рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП рджреЗрдЦреЗрдВ: https://maddiestone.github.io/AndroidAppRE/reversing_native_libs.html

рдПрдВрдбреНрд░реЙрдЗрдб рдРрдкреНрд╕ рдкреНрд░рджрд░реНрд╢рди-рдХреНрд░рд┐рдЯрд┐рдХрд▓ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЖрдорддреМрд░ рдкрд░ C рдпрд╛ C++ рдореЗрдВ рд▓рд┐рдЦреА рдЧрдИ рдореВрд▓ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдорд╛рд▓рд╡реЗрдпрд░ рдирд┐рд░реНрдорд╛рддрд╛ рднреА рдЗрди рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рдЗрдиреНрд╣реЗрдВ DEX рдмрд╛рдЗрдЯрдХреЛрдб рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЙрд▓рдЯрдирд╛ рдХрдард┐рди рд╣реЛрддрд╛ рд╣реИред рдпрд╣ рдЕрдиреБрднрд╛рдЧ рдПрдВрдбреНрд░реЙрдЗрдб рдХреЗ рд▓рд┐рдП рдЕрдиреБрдХреВрд▓рд┐рдд рд░рд┐рд╡рд░реНрд╕ рдЗрдВрдЬреАрдирд┐рдпрд░рд┐рдВрдЧ рдХреМрд╢рд▓ рдкрд░ рдЬреЛрд░ рджреЗрддрд╛ рд╣реИ, рди рдХрд┐ рдЕрд╕реЗрдВрдмрд▓реА рднрд╛рд╖рд╛рдПрдБ рд╕рд┐рдЦрд╛рдиреЗ рдкрд░ред рд╕рдВрдЧрддрддрд╛ рдХреЗ рд▓рд┐рдП ARM рдФрд░ x86 рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдкреНрд░рджрд╛рди рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред

Key Points:

  • рдПрдВрдбреНрд░реЙрдЗрдб рдРрдкреНрд╕ рдореЗрдВ рдореВрд▓ рдкреБрд╕реНрддрдХрд╛рд▓рдп:
  • рдкреНрд░рджрд░реНрд╢рди-рдЧрд╣рди рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
  • C рдпрд╛ C++ рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛, рдЬрд┐рд╕рд╕реЗ рд░рд┐рд╡рд░реНрд╕ рдЗрдВрдЬреАрдирд┐рдпрд░рд┐рдВрдЧ рдЪреБрдиреМрддреАрдкреВрд░реНрдг рд╣реЛ рдЬрд╛рддреА рд╣реИред
  • .so (рд╢реЗрдпрд░ рдХреА рдЧрдИ рд╡рд╕реНрддреБ) рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рдкрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рд▓рд┐рдирдХреНрд╕ рдмрд╛рдЗрдирд░реА рдХреЗ рд╕рдорд╛рди рд╣реИред
  • рдорд╛рд▓рд╡реЗрдпрд░ рдирд┐рд░реНрдорд╛рддрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреЛ рдХрдард┐рди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдореВрд▓ рдХреЛрдб рдХреЛ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рджреЗрддреЗ рд╣реИрдВред
  • рдЬрд╛рд╡рд╛ рдиреЗрдЯрд┐рд╡ рдЗрдВрдЯрд░рдлреЗрд╕ (JNI) рдФрд░ рдПрдВрдбреНрд░реЙрдЗрдб NDK:
  • JNI рдЬрд╛рд╡рд╛ рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рдореВрд▓ рдХреЛрдб рдореЗрдВ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
  • NDK рдореВрд▓ рдХреЛрдб рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдВрдбреНрд░реЙрдЗрдб-рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЙрдкрдХрд░рдгреЛрдВ рдХрд╛ рдПрдХ рд╕реЗрдЯ рд╣реИред
  • JNI рдФрд░ NDK рдЬрд╛рд╡рд╛ (рдпрд╛ рдХреЛрдЯрд▓рд┐рди) рдХреЛрдб рдХреЛ рдореВрд▓ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рд╕рд╛рде рдЬреЛрдбрд╝рддреЗ рд╣реИрдВред
  • рдкреБрд╕реНрддрдХрд╛рд▓рдп рд▓реЛрдбрд┐рдВрдЧ рдФрд░ рдирд┐рд╖реНрдкрд╛рджрди:
  • рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЛ System.loadLibrary рдпрд╛ System.load рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдореЗрдореЛрд░реА рдореЗрдВ рд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
  • рдкреБрд╕реНрддрдХрд╛рд▓рдп рд▓реЛрдбрд┐рдВрдЧ рдкрд░ JNI_OnLoad рдирд┐рд╖реНрдкрд╛рджрд┐рдд рд╣реЛрддрд╛ рд╣реИред
  • рдЬрд╛рд╡рд╛-рдШреЛрд╖рд┐рдд рдореВрд▓ рд╡рд┐рдзрд┐рдпрд╛рдБ рдореВрд▓ рдХрд╛рд░реНрдпреЛрдВ рд╕реЗ рд▓рд┐рдВрдХ рд╣реЛрддреА рд╣реИрдВ, рдЬрд┐рд╕рд╕реЗ рдирд┐рд╖реНрдкрд╛рджрди рд╕рдХреНрд╖рдо рд╣реЛрддрд╛ рд╣реИред
  • рдЬрд╛рд╡рд╛ рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рдореВрд▓ рдХрд╛рд░реНрдпреЛрдВ рд╕реЗ рд▓рд┐рдВрдХ рдХрд░рдирд╛:
  • рдбрд╛рдпрдирд╛рдорд┐рдХ рд▓рд┐рдВрдХрд┐рдВрдЧ: рдореВрд▓ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдореЗрдВ рдХрд╛рд░реНрдп рдирд╛рдо рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкреИрдЯрд░реНрди рд╕реЗ рдореЗрд▓ рдЦрд╛рддреЗ рд╣реИрдВ, рдЬрд┐рд╕рд╕реЗ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд▓рд┐рдВрдХрд┐рдВрдЧ рдХреА рдЕрдиреБрдорддрд┐ рдорд┐рд▓рддреА рд╣реИред
  • рд╕реНрдЯреЗрдЯрд┐рдХ рд▓рд┐рдВрдХрд┐рдВрдЧ: рд▓рд┐рдВрдХрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП RegisterNatives рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдХрд╛рд░реНрдп рдирд╛рдордХрд░рдг рдФрд░ рд╕рдВрд░рдЪрдирд╛ рдореЗрдВ рд▓рдЪреАрд▓рд╛рдкрди рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред
  • рд░рд┐рд╡рд░реНрд╕ рдЗрдВрдЬреАрдирд┐рдпрд░рд┐рдВрдЧ рдЙрдкрдХрд░рдг рдФрд░ рддрдХрдиреАрдХреЗрдВ:
  • Ghidra рдФрд░ IDA Pro рдЬреИрд╕реЗ рдЙрдкрдХрд░рдг рдореВрд▓ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддреЗ рд╣реИрдВред
  • JNIEnv JNI рдХрд╛рд░реНрдпреЛрдВ рдФрд░ рдЗрдВрдЯрд░реИрдХреНрд╢рди рдХреЛ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред
  • рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЛ рд▓реЛрдб рдХрд░рдиреЗ, рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рд▓рд┐рдВрдХ рдХрд░рдиреЗ рдФрд░ рдореВрд▓ рдХрд╛рд░реНрдпреЛрдВ рдХреА рдкрд╣рдЪрд╛рди рдХрд░рдиреЗ рдХрд╛ рдЕрднреНрдпрд╛рд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡реНрдпрд╛рдпрд╛рдо рдкреНрд░рджрд╛рди рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред

Resources:

WhiteIntel

WhiteIntel рдПрдХ рдбрд╛рд░реНрдХ-рд╡реЗрдм рджреНрд╡рд╛рд░рд╛ рд╕рдВрдЪрд╛рд▓рд┐рдд рд╕рд░реНрдЪ рдЗрдВрдЬрди рд╣реИ рдЬреЛ рдореБрдлреНрдд рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛рдПрдБ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ рддрд╛рдХрд┐ рдпрд╣ рдЬрд╛рдВрдЪрд╛ рдЬрд╛ рд╕рдХреЗ рдХрд┐ рдХреНрдпрд╛ рдХреЛрдИ рдХрдВрдкрдиреА рдпрд╛ рдЙрд╕рдХреЗ рдЧреНрд░рд╛рд╣рдХ рд╕рдВрдкрд░реНрдХрд┐рдд рд╣реБрдП рд╣реИрдВ рдЪреЛрд░реА рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдорд╛рд▓рд╡реЗрдпрд░ рджреНрд╡рд╛рд░рд╛ред

WhiteIntel рдХрд╛ рдкреНрд░рд╛рдердорд┐рдХ рд▓рдХреНрд╖реНрдп рдЬрд╛рдирдХрд╛рд░реА-рдЪреЛрд░реА рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдорд╛рд▓рд╡реЗрдпрд░ рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдЦрд╛рддрд╛ рдЕрдзрд┐рдЧреНрд░рд╣рдг рдФрд░ рд░реИрдирд╕рдорд╡реЗрдпрд░ рд╣рдорд▓реЛрдВ рд╕реЗ рд▓рдбрд╝рдирд╛ рд╣реИред

рдЖрдк рдЙрдирдХреА рд╡реЗрдмрд╕рд╛рдЗрдЯ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЙрдирдХреЗ рдЗрдВрдЬрди рдХреЛ рдореБрдлреНрдд рдореЗрдВ рдЖрдЬрдорд╛ рд╕рдХрддреЗ рд╣реИрдВ:

{% embed url="https://whiteintel.io" %}

{% hint style="success" %} Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Support HackTricks
{% endhint %}