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
- Check the subscription plans!
- Join the ЁЯТм Discord group or the telegram group or follow us on Twitter ЁЯРж @hacktricks_live.
- Share hacking tricks by submitting PRs to the HackTricks and HackTricks Cloud github repos.
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:
- ARM рдЕрд╕реЗрдВрдмрд▓реА рд╕реАрдЦрдирд╛:
- рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдХреА рдЧрд╣рд░реА рд╕рдордЭ рдХреЗ рд▓рд┐рдП рд╕реБрдЭрд╛рдпрд╛ рдЧрдпрд╛ред
- Azeria Labs рд╕реЗ ARM Assembly Basics рдХреА рд╕рд┐рдлрд╛рд░рд┐рд╢ рдХреА рдЬрд╛рддреА рд╣реИред
- JNI рдФрд░ NDK рджрд╕реНрддрд╛рд╡реЗрдЬрд╝:
- Oracle рдХрд╛ JNI рд╡рд┐рдирд┐рд░реНрджреЗрд╢рди
- рдПрдВрдбреНрд░реЙрдЗрдб рдХреЗ JNI рдЯрд┐рдкреНрд╕
- NDK рдХреЗ рд╕рд╛рде рд╢реБрд░реБрдЖрдд рдХрд░рдирд╛
- рдореВрд▓ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХрд╛ рдбрд┐рдмрдЧрд┐рдВрдЧ:
- JEB рдбрд┐рдХрдВрдкрд╛рдЗрд▓рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдВрдбреНрд░реЙрдЗрдб рдореВрд▓ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХрд╛ рдбрд┐рдмрдЧрд┐рдВрдЧ
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
- Check the subscription plans!
- Join the ЁЯТм Discord group or the telegram group or follow us on Twitter ЁЯРж @hacktricks_live.
- Share hacking tricks by submitting PRs to the HackTricks and HackTricks Cloud github repos.