Android рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рдбреЗрдЯрд╛ рдЫрд┐рдкрд╛рдиреЗ рдХреЗ 6 рддрд░реАрдХреЗ

рдирдорд╕реНрддреЗ, рдкреНрд░рд┐рдп рдкрд╛рдардХ, рдореИрдВ рдХрд╛рдлреА рд╕рдордп рд╕реЗ рдореЛрдмрд╛рдЗрд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдЕрдзрд┐рдХрд╛рдВрд╢ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд┐рд╕реА рддрд░рд╣ рд╕реЗ рдЕрдкрдиреА "рдЧреБрдкреНрдд" рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЛ рдореБрдЭрд╕реЗ рдЫрд┐рдкрд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред рдФрд░ рдореИрдВ рдЗрд╕ рд╕рдордп рдЦреБрд╢ рд╣реВрдВ, рдХреНрдпреЛрдВрдХрд┐ рдореБрдЭреЗ рдХрд┐рд╕реА рдХреЗ рдореЛрдЯреЗ рдХреЛрдб рдХрд╛ рдЕрдзреНрдпрдпрди рдирд╣реАрдВ рдХрд░рдирд╛ рд╣реИред


рдЫрд╡рд┐


рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ, рдореИрдВ рдУрдлрд┐рд╕рдХреЗрд╢рди рдХреЗ рдЕрдкрдиреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЛ рд╕рд╛рдЭрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛, рд╕рд╛рде рд╣реА рдПрдирдбреАрдХреЗ рдХреЗ рд╕рд╛рде рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдореЗрдВ рд╡реНрдпрд╛рдкрд╛рд░рд┐рдХ рддрд░реНрдХ рдХреЛ рдЫрд┐рдкрд╛рдиреЗ рдХреА рдПрдХ рджрд┐рд▓рдЪрд╕реНрдк рд╡рд┐рдзрд┐ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░реВрдВрдЧрд╛, рдЬреЛ рдореБрдЭреЗ рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдорд┐рд▓рд╛ред рддреЛ рдЕрдЧрд░ рдЖрдк рдПрдВрдбреНрд░реЙрдЗрдб рдореЗрдВ obfuscated рдХреЛрдб рдХреЗ рд▓рд╛рдЗрд╡ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ - рдореИрдВ рдмрд┐рд▓реНрд▓реА рдХреЗ рд▓рд┐рдП рдкреВрдЫрддрд╛ рд╣реВрдВред


рдЗрд╕ рд▓реЗрдЦ рдХреЗ рдврд╛рдВрдЪреЗ рдореЗрдВ рдмрд╛рдзрд╛ рдХреЗ рддрд╣рдд, рд╣рдо рдПрдВрдбреНрд░реЙрдЗрдб рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдХреЛрдб рдХреЛ рдПрдХ рдРрд╕реЗ рд░реВрдк рдореЗрдВ рдШрдЯрд╛рддреЗ рд╣реИрдВ рдЬреЛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИред рдХреЛрдб рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреЛ рдХрдард┐рди рдмрдирд╛рдиреЗ рдХреЗ рдХрдИ рдХрд╛рд░рдг рд╣реИрдВ:


  1. рдХреЛрдИ рднреА рд╡реНрдпрд╡рд╕рд╛рдп рдЕрдкрдиреЗ "рдЗрдирд╕рд╛рдЗрдбреНрд╕" рдореЗрдВ рдЖрд╕-рдкрд╛рд╕ рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИред
  2. рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЕрдЧрд░ рдЖрдкрдХреЗ рдкрд╛рд╕ рдПрдХ рдбрдореА рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╣реИ, рддреЛ рдЖрдк рд╣рдореЗрд╢рд╛ рджрд┐рд▓рдЪрд╕реНрдк рдЪреАрдЬреЗрдВ рд╡рд╣рд╛рдВ рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВ ( рдЗрдВрд╕реНрдЯрд╛рдЧреНрд░рд╛рдо рдХреЗ рд╕рд╛рде рдПрдХ рдЙрджрд╛рд╣рд░рдг)ред

рдмрд╣реБрдд рд╕реЗ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдкреНрд░реЙрдмреНрд▓рдо рдХреЙрдиреНрдлрд┐рдЧрд░ рдХреЛ рдХреЗрд╡рд▓ рдлреЛрд░реНрдХ рдХрд░рдХреЗ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рдорд╛рдзрд╛рди рдХрд░рддреЗ рд╣реИрдВред рдпрд╣ рдбреЗрдЯрд╛ рдХреА рд╕реБрд░рдХреНрд╖рд╛ рдХрд╛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реИ (рдпрджрд┐ рдпрд╣ рдЖрдкрдХреА рдкрд╣рд▓реА рдмрд╛рд░ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рд╕реБрдирд╡рд╛рдИ рд╣реИ, рддреЛ рд╡рд┐рдХреА рджреЗрдЦреЗрдВ)ред


рдореИрдВ рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдПрдХ рдорд╛рдорд▓рд╛ рджреЗрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ, рдХреНрдпреЛрдВ рдкреНрд░реЛрдЧрд╛рд░реНрдб рдХреЗ рд╕рд╛рде рдХрдерд┐рдд "рд╕рдВрд░рдХреНрд╖рдг" рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред Google рдирдореВрдиреЗ рд╕реЗ рдХреЛрдИ рднреА рд╕рд░рд▓ рдЙрджрд╛рд╣рд░рдг рд▓реЗрдВред


рдЫрд╡рд┐


ProGuard рдХреЛ рдЗрд╕рдХреЗ рдорд╛рдирдХ рдорд╛рдирдХ рдХреЗ рд╕рд╛рде рдЬреЛрдбрд╝рдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдореЗрдВ рдПрдХ рдХреЛрдб рд╡рд┐рдШрдЯрд┐рдд рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ:


рдЫрд╡рд┐


"рдУрд╣реНрд╣, рдХреБрдЫ рднреА рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИ," рд╣рдо рдХрд╣рддреЗ рд╣реИрдВ рдФрд░ рд╢рд╛рдВрдд рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рдмреАрдЪ рд╕реНрд╡рд┐рдЪ рдХрд░рдиреЗ рдХреЗ рдХреБрдЫ рдорд┐рдирдЯ рдмрд╛рдж, рд╣рдореЗрдВ рдХреЛрдб рдХреЗ рд╕рдорд╛рди рдЯреБрдХрдбрд╝реЗ рдорд┐рд▓рддреЗ рд╣реИрдВ:


рдЫрд╡рд┐


рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛрдб рдХрдордЬрд╝реЛрд░ рд▓рдЧрддрд╛ рд╣реИ (рдбреЗрдЯрд╛ рд▓реЙрдЧрд┐рдВрдЧ, рд╡реАрдбрд┐рдпреЛ рдХреИрдкреНрдЪрд░ рдмрдирд╛рдирд╛), рдЗрд╕рд▓рд┐рдП рдореВрд▓ рдХреЛрдб рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдХреБрдЫ рддрд░реАрдХреЛрдВ рдХреЛ рдкреНрд░реЛрдЧрд╛рд░реНрдб рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рд╕рд╛рде рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рдмрд╛рдж рднреА рдЖрд╕рд╛рдиреА рд╕реЗ рд╕рдордЭрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред


рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдХреЛрдЯрд▓рд┐рди рдореЗрдВ рдбреЗрдЯрд╛ рдХрдХреНрд╖рд╛рдУрдВ рдкрд░ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓реЗрдВред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдбреЗрдЯрд╛ рд╡рд░реНрдЧ "toString" рд╡рд┐рдзрд┐ рдмрдирд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдЙрджрд╛рд╣рд░рдг рдЪрд░ рдХреЗ рдирд╛рдо рдФрд░ рд╕реНрд╡рдпрдВ рд╡рд░реНрдЧ рдХрд╛ рдирд╛рдо рд╣реЛрддрд╛ рд╣реИред


рд╕реНрд░реЛрдд рдбреЗрдЯрд╛ рд╡рд░реНрдЧ:


рдЫрд╡рд┐


рдпрд╣ рдПрдХ рд░рд┐рд╡рд░реНрд╕ рдХреЗ рд▓рд┐рдП рдПрдХ рдЯрд┐рдбрдмрд┐рдЯ рдореЗрдВ рдмрджрд▓ рд╕рдХрддрд╛ рд╣реИ:


рдЫрд╡рд┐
(рдХреЛрдЯрд▓рд┐рди рдореЗрдВ рд╕реНрдЯреНрд░реЛрд╕реНрдЯрд┐рдВрдЧ рд╡рд┐рдзрд┐ рдХреА рдСрдЯреЛ-рдкреАрдврд╝реА)


рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ ProGuard рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд╕рднреА рд╕реНрд░реЛрдд рдХреЛрдб рд╕реЗ рдмрд╣реБрдд рджреВрд░ рдЫрд┐рдкрддрд╛ рд╣реИред


рдЕрдЧрд░ рдореИрдВрдиреЗ рдЕрднреА рднреА рдЖрдкрдХреЛ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдХреЛрдб рдХреЛ рдмрдЪрд╛рдиреЗ рдХреА рдЕрдХреНрд╖рдорддрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЖрд╢реНрд╡рд╕реНрдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ, рддреЛ рдЖрдЗрдП рд╣рдорд╛рд░реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ ".source" рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЛ рдЫреЛрдбрд╝рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВред


-keepattributes SourceFile 

рдпрд╣ рд▓рд╛рдЗрди рдХрдИ рдУрдкрдирд╕реЛрд░реНрд╕ рдкреНрд░реЛрдЬреЗрдХреНрдЯреНрд╕ рдореЗрдВ рд╣реИред рдпрд╣ рдЖрдкрдХреЛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдХреНрд░реИрд╢ рд╣реЛрдиреЗ рдкрд░ StackTrace рджреЗрдЦрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, рд╕реНрдорд╛рд▓реА рдХреЛрдб рд╕реЗ ".source" рдХреЛ рдЦреАрдВрдЪрддреЗ рд╣реБрдП, рд╣рдореЗрдВ рдкреВрд░реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рдкрджрд╛рдиреБрдХреНрд░рдо рдкреВрд░реЗ рд╡рд░реНрдЧ рдХреЗ рдирд╛рдо рдХреЗ рд╕рд╛рде рдорд┐рд▓рддреЗ рд╣реИрдВред


рдкрд░рд┐рднрд╛рд╖рд╛ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдЖрдХреНрд╖реЗрдк "рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░ рдХреЗ рд░рд┐рд╕реЗрдкреНрд╢рди рдХрд╛ рдкреНрд░рддрд┐рдХрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд░реЛрдд рдХреЛрдб рдХреЛ рдПрдХ рдЕрдкрдардиреАрдп рд░реВрдк рдореЗрдВ рд▓рд╛рдирд╛" рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, ProGuard (рдЬрдм рдПрдХ рдорд╛рдирдХ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рд╕рд╛рде рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ) рдХреЛрдб рдХреЛ рдЕрдкрдардиреАрдп рдирд╣реАрдВ рдмрдирд╛рддрд╛ рд╣реИ - рдпрд╣ рдПрдХ рдорд┐рдиреАрдлрд╝рд╛рдпрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдирд╛рдореЛрдВ рдХреЛ рд╕рдВрдкреАрдбрд╝рд┐рдд рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЕрддрд┐рд░рд┐рдХреНрдд рдХрдХреНрд╖рд╛рдУрдВ рдХреЛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд╛рд▓рддрд╛ рд╣реИред


ProGuard рдХрд╛ рдЗрд╕ рддрд░рд╣ рдХрд╛ рдЙрдкрдпреЛрдЧ рдПрдХ рдЖрд╕рд╛рди рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдЪреНрдЫреЗ obfuscation рдХреЗ рд▓рд┐рдП рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЙрдкрдпреБрдХреНрдд рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рд╣реИред рдПрдХ рдЕрдЪреНрдЫреЗ рдбреЗрд╡рд▓рдкрд░ рдХреЛ рдкреБрдирд░реНрд╡рд┐рдХреНрд░реЗрддрд╛ (рдпрд╛ рд╣рдорд▓рд╛рд╡рд░) рдХреЛ "рдЪреАрдиреА рдкрд╛рддреНрд░реЛрдВ" рд╕реЗ рдбрд░рд╛рдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рд╣реЛрддреА рд╣реИ, рдЬреЛ рдХрд┐ рджреЛрд╖рдкреВрд░реНрдг рдХрд░рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИред


рдпрджрд┐ рдЖрдк ProGuard рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрд╛рдирдиреЗ рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ, рддреЛ рдореИрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЬрд╛рдирдХрд╛рд░реАрдкреВрд░реНрдг рд▓реЗрдЦ рдХрд╛ рдкреНрд░рд╕реНрддрд╛рд╡ рдХрд░рддрд╛ рд╣реВрдВред


рд╣рдо рдХреНрдпрд╛ рдЫреБрдкрд╛ рд░рд╣реЗ рд╣реИрдВ


рдЕрдм рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рдЖрдорддреМрд░ рдкрд░ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдореЗрдВ рдХреНрдпрд╛ рдЫрд┐рдкрд╛ рд╣реЛрддрд╛ рд╣реИред


  • рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди рдХреБрдВрдЬреА:

рдЫрд╡рд┐


  • рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рддрд░реНрдХ:

рдЫрд╡рд┐


рдХреБрдЫ рдФрд░ рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рдЕрдХреНрд╕рд░ рдХреЛрдб рдореЗрдВ рдЫрд┐рдкрд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ (рд╡реНрдпрдХреНрддрд┐рдЧрдд рдЕрдиреБрднрд╡ рд╕реЗ рдЕрд╡рд▓реЛрдХрди), рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:


  • рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдбреЗрд╡рд▓рдкрд░ рдирд╛рдо
  • рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХрд╛ рдкреВрд░рд╛ рд░рд╛рд╕реНрддрд╛
  • Oauth2 рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХреЗ рд▓рд┐рдП Client_secret
  • рдкреАрдбреАрдПрдл рдкреБрд╕реНрддрдХ "рдПрдВрдбреНрд░реЙрдЗрдб рдХреЗ рд▓рд┐рдП рдХреИрд╕реЗ рд╡рд┐рдХрд╕рд┐рдд рдХрд░реЗрдВ" (рд╢рд╛рдпрдж рд╣рдореЗрд╢рд╛ рд╣рд╛рде рдореЗрдВ рд░рд╣рдиреЗ рдХреЗ рд▓рд┐рдП)

рдЕрдм рд╣рдо рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдПрдВрдбреНрд░реЙрдЗрдб рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рдХреНрдпрд╛ рдЫрд┐рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдЗрд╕ рдбреЗрдЯрд╛ рдХреЛ рдЫрд┐рдкрд╛рдиреЗ рдХреЗ рддрд░реАрдХреЛрдВ рдХреЗ рд▓рд┐рдП рдореБрдЦреНрдп рдЪреАрдЬрд╝ рдкрд░ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред


рдбреЗрдЯрд╛ рдЫрд┐рдкрд╛рдиреЗ рдХреЗ рддрд░реАрдХреЗ


рд╡рд┐рдХрд▓реНрдк 1: рдХреБрдЫ рднреА рдЫрд┐рдкрд╛рдПрдВ рдирд╣реАрдВ, рд╕рдм рдХреБрдЫ рджреГрд╖реНрдЯрд┐ рдореЗрдВ рдЫреЛрдбрд╝ рджреЗрдВ


рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдореИрдВ рдЖрдкрдХреЛ рдпрд╣ рддрд╕реНрд╡реАрд░ рджрд┐рдЦрд╛рддрд╛ рд╣реВрдВ :)


"рджрд╢рд╛ рдХреЛ рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ рддрд░реНрдХ рдЦреЛрдЬрдиреЗ рдореЗрдВ рдорджрдж рдХрд░реЗрдВ"


рдЫрд╡рд┐


рдпрд╣ рд▓рд╛рдЧрдд рдкреНрд░рднрд╛рд╡реА рдФрд░ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдореБрдХреНрдд рд╕рдорд╛рдзрд╛рди рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рд╣реИ:


  • рд╕рд░рд▓ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдЬреЛ рдиреЗрдЯрд╡рд░реНрдХ рдХреЗ рд╕рд╛рде рдмрд╛рддрдЪреАрдд рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рд╕рдВрд╡реЗрджрдирд╢реАрд▓ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЬрд╛рдирдХрд╛рд░реА рд╕рдВрдЧреНрд░рд╣реАрдд рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ;
  • рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдЬреЛ рдХреЗрд╡рд▓ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ API рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред

рд╡рд┐рдХрд▓реНрдк 2: рд╕рд╣реА рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЗ рд╕рд╛рде рдкреНрд░реЛрдЧрд╛рд░реНрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ


рдпрд╣ рдирд┐рд░реНрдгрдп рдЕрднреА рднреА рдЬреАрд╡рди рдХрд╛ рдЕрдзрд┐рдХрд╛рд░ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐, рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдпрд╣ рд╕рд░рд▓ рдФрд░ рд╕реНрд╡рддрдВрддреНрд░ рд╣реИред рдЙрдкрд░реЛрдХреНрдд рдиреБрдХрд╕рд╛рди рдХреЗ рдмрд╛рд╡рдЬреВрдж, рдЗрд╕рдХрд╛ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдкреНрд▓рд╕ рд╣реИ: рдпрджрд┐ рдкреНрд░реЛрдЧрд╛рд░реНрдб рдирд┐рдпрдореЛрдВ рдХреЛ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рддреЛ рдЖрд╡реЗрджрди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЕрд╕реНрдкрд╖реНрдЯ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред


рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЖрдкрдХреЛ рдпрд╣ рд╕рдордЭрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдХреЗ рдмрд╛рдж рдЗрд╕ рддрд░рд╣ рдХреЗ рд╕рдорд╛рдзрд╛рди рдХреЗ рд▓рд┐рдП рдбреЗрд╡рд▓рдкрд░ рдХреЛ рд╡рд┐рдШрдЯрд┐рдд рдХрд░рдиреЗ рдФрд░ рдЬрд╛рдВрдЪрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рд╕рдм рдХреБрдЫ рдареАрдХ рд╣реИред рдПрдкреАрдХреЗ рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд░рдиреЗ рдореЗрдВ рдХрдИ рдорд┐рдирдЯ рдмрд┐рддрд╛рдП рдЬрд╛рдиреЗ рдХреЗ рдмрд╛рдж, рдбреЗрд╡рд▓рдкрд░ (рдФрд░ рдЙрд╕рдХреА рдХрдВрдкрдиреА) рдЕрдкрдиреЗ рдЙрддреНрдкрд╛рдж рдХреА рд╕реБрд░рдХреНрд╖рд╛ рдореЗрдВ рдЕрдзрд┐рдХ рд╡рд┐рд╢реНрд╡рд╛рд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред


рдПрдкреАрдХреЗ рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдЕрдзреНрдпрдпрди рдХреИрд╕реЗ рдХрд░реЗрдВ

рд╕реНрдердЧрди рдХреЗ рд▓рд┐рдП рдЖрд╡реЗрджрди рдХреА рдЬрд╛рдБрдЪ рдХрд░рдирд╛ рдХрд╛рдлреА рд╕рд░рд▓ рд╣реИред


рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╕реЗ рдПрдкреАрдХреЗ-рдлрд╛рдЗрд▓ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдХрдИ рддрд░реАрдХреЗ рд╣реИрдВ:


  • рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рд╕реЗ рд▓реЗрдВ (рдПрдВрдбреНрд░реЙрдЗрдб рд╕реНрдЯреВрдбрд┐рдпреЛ рдореЗрдВ, рдЖрдорддреМрд░ рдкрд░ рдлрд╝реЛрд▓реНрдбрд░ рдХрд╛ рдирд╛рдо "рдмрд┐рд▓реНрдб" рд╣реИ);
  • рдЕрдкрдиреЗ рд╕реНрдорд╛рд░реНрдЯрдлреЛрди рдкрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░реЗрдВ рдФрд░ "рдПрдк рдПрдХреНрд╕реНрдЯреНрд░реЗрдХреНрдЯрд░" рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдкреАрдХреЗ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВред

рдЙрд╕рдХреЗ рдмрд╛рдж, Apktool рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рд╣рдореЗрдВ Smali рдХреЛрдб рдорд┐рд▓рддрд╛ рд╣реИ (рдпрд╣рд╛рдБ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрджреЗрд╢ https://ibotpeaches.imtqy.com/Apktool/documentation ) рдФрд░ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреА рдкрдВрдХреНрддрд┐рдпреЛрдВ рдореЗрдВ рдХреБрдЫ рд╕рдВрджрд┐рдЧреНрдз рддрд░реАрдХреЗ рд╕реЗ рдкрдврд╝рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВред рд╡реИрд╕реЗ, рдкрдардиреАрдп рдХреЛрдб рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк рдкреВрд░реНрд╡-рдирд┐рд░реНрдорд┐рдд рдмреИрд╢ рдХрдорд╛рдВрдб рдХреЗ рд╕рд╛рде рд╕реНрдЯреЙрдХ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред


рдпрд╣ рд╕рдорд╛рдзрд╛рди рдЗрд╕рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рд╣реИ:


  • рдЦрд┐рд▓реМрдирд╛ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ, рдСрдирд▓рд╛рдЗрди рд╕реНрдЯреЛрд░ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ, рдЖрджрд┐;
  • рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдЬреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдкрддрд▓реЗ рдЧреНрд░рд╛рд╣рдХ рд╣реИрдВ, рдФрд░ рд╕рднреА рдбреЗрдЯрд╛ рд╕рд░реНрд╡рд░ рдХреА рддрд░рдл рд╕реЗ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЖрддреЗ рд╣реИрдВ;
  • рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдЬреЛ рдЙрдирдХреЗ рд╕рднреА рдмреИрдирд░реЛрдВ рдкрд░ рдирд╣реАрдВ рд▓рд┐рдЦрддреЗ рд╣реИрдВ "рд╕реБрд░рдХреНрд╖рд┐рдд рдПрдкреНрд▓реАрдХреЗрд╢рди рдирдВрдмрд░ 1"ред

рд╡рд┐рдХрд▓реНрдк 3: рдУрдкрди рд╕реЛрд░реНрд╕ рдУрдмреНрд╕реЗрд╕реБрд▓реЗрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ


рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдореИрдВ рдореЛрдмрд╛рдЗрд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд▓рд┐рдП рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЕрдЪреНрдЫреЗ рдореБрдлреНрдд рдкрд░реНрдпрд╡реЗрдХреНрд╖рдХ рдирд╣реАрдВ рдЬрд╛рдирддрд╛ рд╣реВрдВред рдФрд░ рдиреЗрдЯрд╡рд░реНрдХ рдкрд░ рдкрд╛рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдСрдмрдлрд╕рдХреЗрдЯрд░ рдЖрдкрдХреЛ рдмрд╣реБрдд рд╕рд┐рд░рджрд░реНрдж рд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рдПрдкреАрдЖрдИ рдХреЗ рдирдП рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдЗрд╕ рддрд░рд╣ рдХреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рдЗрдХрдЯреНрдард╛ рдХрд░рдирд╛ рдмрд╣реБрдд рдореБрд╢реНрдХрд┐рд▓ рд╣реЛрдЧрд╛ред


рдРрддрд┐рд╣рд╛рд╕рд┐рдХ рд░реВрдк рд╕реЗ, рдореМрдЬреВрджрд╛ рд╢рд╛рдВрдд рдУрдлрд╝реНрдлрд╝реБрд╕реНрдХреЗрдЯрд░ рдорд╢реАрди рдХреЛрдб (рд╕реА / рд╕реА ++ рдХреЗ рд▓рд┐рдП) рдХреЗ рддрд╣рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рдЕрдЪреНрдЫреЗ рдЙрджрд╛рд╣рд░рдг:



рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, Movfuscator рд╕рднреА opcodes рдХреЛ movs рд╕реЗ рдмрджрд▓ рджреЗрддрд╛ рд╣реИ, рд╕рднреА рд╢рд╛рдЦрд╛рдУрдВ рдХреЛ рд╣рдЯрд╛рддреЗ рд╣реБрдП, рдХреЛрдб рдХреЛ рд░реИрдЦрд┐рдХ рдмрдирд╛рддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдХрд┐рд╕реА рдХреЙрдореНрдмреИрдЯ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдСрдмрдлреНрдпреВрдЬрд╝реЗрд╢рди рдХреЗ рдЗрд╕ рддрд░реАрдХреЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рд╣рддреЛрддреНрд╕рд╛рд╣рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рддрдм рдХреЛрдб рдмрд╣реБрдд рдзреАрдорд╛ рдФрд░ рднрд╛рд░реА рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред


рдпрд╣ рд╕рдорд╛рдзрд╛рди рдЙрди рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рд╣реИ рдЬрд╣рд╛рдВ рдХреЛрдб рдХрд╛ рдореБрдЦреНрдп рднрд╛рдЧ NDK рд╣реИред


рд╡рд┐рдХрд▓реНрдк 4: рдПрдХ рдорд╛рд▓рд┐рдХрд╛рдирд╛ рд╕рдорд╛рдзрд╛рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ


рдорд╛рд▓рд┐рдХрд╛рдирд╛ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдХреЗ рд░реВрдк рдореЗрдВ, рдЧрдВрднреАрд░ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдпрд╣ рд╕рдмрд╕реЗ рд╕рдХреНрд╖рдо рд╡рд┐рдХрд▓реНрдк рд╣реИ:
рдХ) рд╕рдорд░реНрдерд┐рдд;
b) рд╣рдореЗрд╢рд╛ рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рд░рд╣реЗрдЧрд╛ред


рдЗрд╕ рддрд░рд╣ рдХреЗ рд╕рдорд╛рдзрд╛рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рдореЛрдЯреЗ рдХреЛрдб рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг:


рдЫрд╡рд┐


рдЗрд╕ рдХреЛрдб рд╕реНрдирд┐рдкреЗрдЯ рдореЗрдВ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ:


  1. рдЪрд░реЛрдВ рдХреЗ рд╕рдмрд╕реЗ рдЕрд╕рдВрдЧрдд рдирд╛рдо (рд░реВрд╕реА рдкрддреНрд░реЛрдВ рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдХреЗ рд╕рд╛рде);
  2. рд▓рд╛рдЗрдиреЛрдВ рдореЗрдВ рдЪреАрдиреА рд╡рд░реНрдг рдЬреЛ рдпрд╣ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреНрдпрд╛ рд╣реЛ рд░рд╣рд╛ рд╣реИ;
  3. рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдмрд╣реБрдд рд╕рд╛рд░реЗ рдЬрд╛рд▓ рдЬреЛрдбрд╝реЗ рдЧрдП рд╣реИрдВ ("рд╕реНрд╡рд┐рдЪ", "рдЧреЛрдЯреЛ"), рдЬреЛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛрдбрдлреНрд▓реЛ рдХреЛ рдмрд╣реБрдд рдмрджрд▓ рджреЗрддреЗ рд╣реИрдВред

рдпрд╣ рд╕рдорд╛рдзрд╛рди рдЗрд╕рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рд╣реИ:


  • рдмреИрдВрдХреЛрдВ;
  • рдмреАрдорд╛ рдХрдВрдкрдирд┐рдпрд╛рдВ;
  • рдореЛрдмрд╛рдЗрд▓ рдСрдкрд░реЗрдЯрд░, рдкрд╛рд╕рд╡рд░реНрдб рд╕реНрдЯреЛрд░реЗрдЬ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЖрджрд┐ред

рд╡рд┐рдХрд▓реНрдк 5: рд░рд┐рдПрдХреНрдЯ-рдиреЗрдЯрд┐рд╡ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ


рдореИрдВрдиреЗ рдЗрд╕ рдмрд┐рдВрджреБ рдХреЛ рдЙрдЬрд╛рдЧрд░ рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛, рдХреНрдпреЛрдВрдХрд┐ рдХреНрд░реЙрд╕-рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд▓рд┐рдЦрдирд╛ рдЕрдм рдПрдХ рдмрд╣реБрдд рд▓реЛрдХрдкреНрд░рд┐рдп рдЧрддрд┐рд╡рд┐рдзрд┐ рдмрди рдЧрдИ рд╣реИред


рдПрдХ рдмрд╣реБрдд рдмрдбрд╝реЗ рд╕рдореБрджрд╛рдп рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЬреЗрдПрд╕ рдХреЗ рдкрд╛рд╕ рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдЦреБрд▓реЗ рдкрд░реНрдпрд╡реЗрдХреНрд╖рдХ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╡реЗ рдЖрдкрдХреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдЗрдореЛрдЯрд┐рдХреЙрдиреНрд╕ рдореЗрдВ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВ:


рдЫрд╡рд┐


рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЖрдкрдХреЛ рдЗрд╕ рд╕рдорд╛рдзрд╛рди рдкрд░ рд╕рд▓рд╛рд╣ рджреЗрдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛, рд▓реЗрдХрд┐рди рддрдм рдЖрдкрдХрд╛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХрдЫреБрдП рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдмрд╣реБрдд рддреЗрдЬрд╝реА рд╕реЗ рдХрд╛рдо рдХрд░реЗрдЧрд╛ред


рд▓реЗрдХрд┐рди рдХреЛрдб рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЛ рдХрдо рдХрд░рдХреЗ, рд╣рдо рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рд╕рдВрд░рдХреНрд╖рд┐рдд рдкрд░рд┐рдпреЛрдЬрдирд╛ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред рддреЛ google "js obfuscator" рдФрд░ рд╣рдорд╛рд░реА рдЖрдЙрдЯрдкреБрдЯ рдмрдВрдбрд▓ рдлрд╝рд╛рдЗрд▓ рдХреЛ obfuscate рдХрд░рддрд╛ рд╣реИред


рдпрд╣ рд╕рдорд╛рдзрд╛рди рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рд╣реИ рдЬреЛ рд░рд┐рдПрдХреНрдЯ рдиреЗрдЯрд┐рд╡ рдкрд░ рдХреНрд░реЙрд╕-рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реИрдВред


Xamarin

Xamarin рдкрд░ рдкрд░реНрдпрд╡реЗрдХреНрд╖рдХреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдирд╛ рдмрд╣реБрдд рджрд┐рд▓рдЪрд╕реНрдк рд╣реЛрдЧрд╛, рдЕрдЧрд░ рдЖрдкрдХреЛ рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдЕрдиреБрднрд╡ рд╣реИ, рддреЛ рдХреГрдкрдпрд╛ рд╣рдореЗрдВ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрддрд╛рдПрдВред


рд╡рд┐рдХрд▓реНрдк 6: NDK рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ


рдореБрдЭреЗ рд╕реНрд╡рдпрдВ рдЕрдХреНрд╕рд░ рдЕрдкрдиреЗ рдХреЛрдб рдореЗрдВ NDK рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдкрдбрд╝рддрд╛ рдерд╛ред рдФрд░ рдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдХрд┐ рдХреБрдЫ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХрд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ рдХрд┐ рдПрдирдбреАрдХреЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЙрдирдХреЗ рдЖрд╡реЗрджрди рдХреЛ рд░рд┐рд╡рд░реНрд╕рд▓рд░реНрд╕ рд╕реЗ рдмрдЪрд╛рддрд╛ рд╣реИред рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕рдЪ рдирд╣реАрдВ рд╣реИред рдкрд╣рд▓реЗ рдЖрдкрдХреЛ рдпрд╣ рд╕рдордЭрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХрд┐ рдПрдирдбреАрдХреЗ рдХреЗ рд╕рд╛рде рдЫрд┐рдкрд╛рдирд╛ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред


рдЫрд╡рд┐


рдпрд╣ рдмрд╣реБрдд рд╕рд░рд▓ рд╣реИред рдХреЛрдб рдореЗрдВ рдХреБрдЫ JNI рд╕рдореНрдореЗрд▓рди рд╣реИ рдХрд┐ рдЬрдм рдЖрдк рдХрд┐рд╕реА рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ C / C ++ рдХреЛрдб рдХрд╣рддреЗ рд╣реИрдВ, рддреЛ рдЗрд╕реЗ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред


NativeSummator рдореВрд▓ рдирд┐рд╡рд╛рд╕реА рд╡рд░реНрдЧ:


рдЫрд╡рд┐


рдореВрд▓ рд░рд╛рд╢рд┐ рдкрджреНрдзрддрд┐ рдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди:


рдЫрд╡рд┐


рджреЗрд╢реА рд╕реНрдереИрддрд┐рдХ рдпреЛрдЧ рд╡рд┐рдзрд┐ рдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди:


рдЫрд╡рд┐


рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдореВрд▓ рд╡рд┐рдзрд┐ рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк рдбрд╛рдпрдирд╛рдорд┐рдХ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдореЗрдВ Java_<package name>_<Static?><class>_<method> рдлрд╝рдВрдХреНрд╢рди рдЦреЛрдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред


рдпрджрд┐ рдЖрдк Dalvik / ART рдХреЛрдб рджреЗрдЦрддреЗ рд╣реИрдВ, рддреЛ рд╣рдо рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкрдВрдХреНрддрд┐рдпрд╛рдБ рдкрд╛рдПрдБрдЧреЗ:


рдЫрд╡рд┐


( рд╕реНрд░реЛрдд )


рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╣рдо рдЬрд╛рд╡рд╛ рдСрдмреНрдЬреЗрдХреНрдЯ рд╕реЗ рдирд┐рдореНрди рд▓рд╛рдЗрди Java_<package name>_<class>_<method> рдЙрддреНрдкрдиреНрди рдХрд░реЗрдВрдЧреЗ, рдФрд░ рдлрд┐рд░ рдбрд╛рдпрдиреЗрдорд┐рдХ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдореЗрдВ "рдбреЙрд▓реНрд╕рд┐рдо" рдХреЙрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╡рд┐рдзрд┐ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВрдЧреЗ, рдЬреЛ рдПрдирдбреАрдХреЗ рдореЗрдВ рд╣рдореЗрдВ рдЖрд╡рд╢реНрдпрдХ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдЦреЛрдЬрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдЧрд╛ред


рдЗрд╕реА рддрд░рд╣ рд╕реЗ рдЬреЗрдПрдирдЖрдИ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдЗрд╕рдХреА рдореБрдЦреНрдп рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдЧрддрд┐рд╢реАрд▓ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЛ рд╡рд┐рдШрдЯрд┐рдд рдХрд░рдХреЗ, рд╣рдо рд╕рднреА рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рдкреВрд░реНрдг рджреГрд╖реНрдЯрд┐ рд╕реЗ рджреЗрдЦреЗрдВрдЧреЗ:


рдЫрд╡рд┐


рдЗрд╕рд▓рд┐рдП, рд╣рдореЗрдВ рдЗрд╕ рддрд░рд╣ рдХреЗ рд╕рдорд╛рдзрд╛рди рдХреЗ рд╕рд╛рде рдЖрдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ рддрд╛рдХрд┐ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдкрддрд╛ рдмрд╛рдзрд┐рдд рд╣реЛред


рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рдореИрдВрдиреЗ рд╕реАрдзреЗ рд╣рдорд╛рд░реЗ рдЬреЗрдПрдирдЖрдИ рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рдбреЗрдЯрд╛ рд▓рд┐рдЦрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдПрд╣рд╕рд╛рд╕ рд╣реБрдЖ рдХрд┐ рдПрдПрд╕рдПрд▓рдЖрд░ рддрдВрддреНрд░ рдФрд░ рдПрдВрдбреНрд░реЙрдЗрдб рдХреЗ рд╡рд┐рднрд┐рдиреНрди рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдиреЗ рдореБрдЭреЗ рд╕рднреА рдЙрдкрдХрд░рдгреЛрдВ рдкрд░ рдЗрд╕ рдкрджреНрдзрддрд┐ рдХреЛ рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рджреА рд╣реИред рдлрд┐рд░ рдореИрдВрдиреЗ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ рдХрд┐ рдПрдирдбреАрдХреЗ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ рдХреМрди рд╕реЗ рддрд░реАрдХреЗ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред


рдФрд░, рд▓реЛ рдФрд░ рдирд┐рд╣рд╛рд░рдирд╛ , рдПрдХ "RegisterNatives" рд╡рд┐рдзрд┐ рдереА рдЬреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╣рдореЗрдВ рдЬрд╝рд░реВрд░рдд рд╣реИ (рдЖрдВрддрд░рд┐рдХ рдлрд╝рдВрдХреНрд╢рди DVmRegisterJNIMethod рдХрд╣рддреЗ рд╣реИрдВ )ред


рд╣рдо рдПрдХ рд╕рд░рдгреА рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рд╣рдорд╛рд░реА рдореВрд▓ рд╡рд┐рдзрд┐ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддреА рд╣реИ:


рдЫрд╡рд┐


рдФрд░ рд╣рдо JNI_OnLoad рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рдЕрдкрдиреА рдШреЛрд╖рд┐рдд рд╡рд┐рдзрд┐ рджрд░реНрдЬ рдХрд░рддреЗ рд╣реИрдВ (рдбрд╛рдпрдиреЗрдорд┐рдХ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЛ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝ рдХрд┐рдП рдЬрд╛рдиреЗ рдХреЗ рдмрд╛рдж рд╡рд┐рдзрд┐ рдХреЛ рдХреЙрд▓ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд╣рдЬрд╛рд░ ):


рдЫрд╡рд┐


рд╣реБрд░реНрд░реЗ, рд╣рдо рдЦреБрдж "рд╣рд┐рдбрдлрд╝рдВрдХ" рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдЫрд┐рдкрд╛рддреЗ рд╣реИрдВред рдЕрдм рд╣рдорд╛рд░реЗ рдкрд╕рдВрджреАрджрд╛ llvm obfuscator рдХреЛ рд▓рд╛рдЧреВ рдХрд░реЗрдВ рдФрд░ рдЕрдкрдиреЗ рдЕрдВрддрд┐рдо рд░реВрдк рдореЗрдВ рдХреЛрдб рдХреА рд╕реБрд░рдХреНрд╖рд╛ рдХрд╛ рдЖрдирдВрдж рд▓реЗрдВред


рдпрд╣ рд╕рдорд╛рдзрд╛рди рдЙрди рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рд╣реИ рдЬреЛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА NDK рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ (NDK рдХреЛ рдЬреЛрдбрд╝рдиреЗ рд╕реЗ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдмрд╣реБрдд рдореБрд╢реНрдХрд┐рд▓реЗрдВ рдЖрддреА рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рд╕рдорд╛рдзрд╛рди рдЧреИрд░-рдПрдирдбреАрдХреЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЗрддрдирд╛ рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рдирд╣реАрдВ рд╣реИ)ред


рдирд┐рд╖реНрдХрд░реНрд╖


рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдХрд┐рд╕реА рднреА рд╕рдВрд╡реЗрджрдирд╢реАрд▓ рдбреЗрдЯрд╛ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рдпрд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдХреЗ рдмрд╛рдж рд╣реА рдЙрдиреНрд╣реЗрдВ рд╕реБрд▓рдн рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдРрд╕рд╛ рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ рддрд░реНрдХ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ рдЖрд╡реЗрджрди рдХреЗ рдЕрдВрджрд░ рдЯреЛрдХрди, рдХреБрдВрдЬреА рдФрд░ рдХреЛрдб рддрд░реНрдХ рдХреЗ рд╡рд┐рд╢рд┐рд╖реНрдЯ рддрддреНрд╡реЛрдВ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдХрд░рддрд╛ рд╣реИред рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдпрд╣ рд▓реЗрдЦ рдЖрдкрдХреА рдорджрдж рдХрд░реЗрдЧрд╛ рдпрджрд┐ рдЖрдк рдЗрд╕ рддрд░рд╣ рдХреЗ рд╕рдВрд╡реЗрджрдирд╢реАрд▓ рдбреЗрдЯрд╛ рдХреЛ рд╕рд╛рдЭрд╛ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдФрд░ рд╕реНрдХреНрд░рд┐рдм рдХреЗ рд▓рд┐рдП рдПрдХ "рдЦреБрд▓реА рдХрд┐рддрд╛рдм" рд╣реИрдВред


рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ рдХрд┐ рдХрд┐рд╕реА рднреА рдЖрдзреБрдирд┐рдХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд╛ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╕рдВрд░рдЪрдирд╛рддреНрдордХ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИ рдУрдлрд╝реНрдпреВрд╕рдХреЗрд╢рдиред


рдХреЛрдб рдЫрд┐рдкрд╛рдиреЗ рдХреЗ рдореБрджреНрджреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕рд╛рд╡рдзрд╛рдиреА рд╕реЗ рд╕реЛрдЪреЗрдВ рдФрд░ рдЖрд╕рд╛рди рддрд░реАрдХреЛрдВ рдХреА рддрд▓рд╛рд╢ рди рдХрд░реЗрдВ! :)


рд╡реИрд╕реЗ, рдХреБрдЫ рдореБрджреНрджреЛрдВ рдореЗрдВ рдорджрдж рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ miproblema рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рдЙрд╕рдХреЗ рдЯреЗрд▓реАрдЧреНрд░рд╛рдо рдЪреИрдирд▓ рдХреА рд╕рджрд╕реНрдпрддрд╛ рд▓реЗрдВ, рдпрд╣ рд╡рд╣рд╛рдВ рджрд┐рд▓рдЪрд╕реНрдк рд╣реИред


рдФрд░ рд▓реЗрдЦ рдХреЛ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рдЙрдирдХреА рдорджрдж рдХреЗ рд▓рд┐рдП sverkunchik рдФрд░ SCaptainCAP рдХреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рднреА рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рджред

Source: https://habr.com/ru/post/hi436908/


All Articles